|
@@ -959,4 +959,57 @@ class OaService extends Service
|
|
|
list($status, $msg) = $service->wx_sendMsg($user_id,$type,$state,$menu_id,$order_data);
|
|
|
file_put_contents('msg_result.txt',date('Y-m-d H:i:s') . "结果:" . $msg . PHP_EOL,8);
|
|
|
}
|
|
|
+
|
|
|
+ public function getConstructionOaOrderState($order_no, $user, $menu_id)
|
|
|
+ {
|
|
|
+ $user_id = $user['id'];
|
|
|
+ $return = [];
|
|
|
+ foreach ($order_no as $value){
|
|
|
+ $return[$value] = ['oa_state' => 0];
|
|
|
+ }
|
|
|
+ $detail = OaOrder::whereIn('order_no', $order_no)
|
|
|
+ ->where('channel',$user['depart_top'][0]['depart_id'])
|
|
|
+ ->where('menu_id', $menu_id)
|
|
|
+ ->where('del_time', 0)
|
|
|
+ ->orderBy('id', 'desc')
|
|
|
+ ->get()->toArray();
|
|
|
+ if (empty($detail)) $return;
|
|
|
+ $final_detail = $oa_order = $oa_order2 = $map = [];
|
|
|
+ foreach ($detail as $value){
|
|
|
+ if(! isset($final_detail[$value['order_no']])){
|
|
|
+ $map[$value['id']] = $value['order_no'];
|
|
|
+ if($value['state'] == 2) {
|
|
|
+ $oa_order[] = $value['id'];
|
|
|
+ }else{
|
|
|
+ $oa_order2[] = $value['id'];
|
|
|
+ }
|
|
|
+ $final_detail[$value['order_no']] = $value['id'];
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (count($oa_order) == count($final_detail)) return $return;
|
|
|
+
|
|
|
+ $oa_detail = OaOrderSubEmployee::where('employee_id', $user_id)
|
|
|
+ ->whereIn('oa_order_id', $oa_order2)
|
|
|
+ ->pluck('oa_order_sub_id','oa_order_id')
|
|
|
+ ->toArray();
|
|
|
+ if(empty($oa_detail)) return $return;
|
|
|
+
|
|
|
+ $oa_detail_map = array_flip($oa_detail);
|
|
|
+ $oa_detail_value = array_values($oa_detail);
|
|
|
+ $state = OaOrderSub::whereIn('id', $oa_detail_value)
|
|
|
+ ->where('state', '<>', 2)
|
|
|
+ ->orderBy('sort', 'desc')
|
|
|
+ ->get()->toArray();
|
|
|
+ foreach ($state as $value){
|
|
|
+ $oa_order_id_tmp = $oa_detail_map[$value['id']];
|
|
|
+ $order_no_tmp = $map[$oa_order_id_tmp];
|
|
|
+ if (in_array($value['state'], [0, 2])) {
|
|
|
+ $return[$order_no_tmp] = ['oa_state' => 1, 'oa_id' => $value['id']];
|
|
|
+ }else{
|
|
|
+ $return[$order_no_tmp] = ['oa_state' => 0];
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ return $return;
|
|
|
+ }
|
|
|
}
|