|
|
@@ -2771,6 +2771,65 @@ class ItemService extends Service
|
|
|
return [true, $customer];
|
|
|
}
|
|
|
|
|
|
+ public function itemMissionProgressListCommon($data,$user, $field = []){
|
|
|
+ $item_id = $data['item_id'] ?? 0;
|
|
|
+ $item_node_id = $data['item_node_id'] ?? 0;
|
|
|
+ $item_node_mission_id = $data['item_node_mission_id'] ?? 0;
|
|
|
+ $employee_id = $data['employee_id'] ?? 0;
|
|
|
+
|
|
|
+ $model = ItemNodeMission::from('item_node_mission as i');
|
|
|
+ $model = $model->TopAndEmployeeClear($user, $data)
|
|
|
+ ->leftJoin('item_node_mission_content as e', 'i.id', '=', 'e.item_node_mission_id')
|
|
|
+ ->where('i.del_time', 0)
|
|
|
+ ->where('e.del_time', 0)
|
|
|
+ ->when(! empty($item_id),function ($query) use($item_id){
|
|
|
+ return $query->where('item_id', $item_id);
|
|
|
+ })
|
|
|
+ ->when(! empty($item_node_id),function ($query) use($item_node_id){
|
|
|
+ return $query->where('item_node_id', $item_node_id);
|
|
|
+ })
|
|
|
+ ->when(! empty($item_node_mission_id),function ($query) use($item_node_mission_id){
|
|
|
+ return $query->where('item_node_mission_id', $item_node_mission_id);
|
|
|
+ })
|
|
|
+ ->when(! empty($employee_id),function ($query) use($employee_id){
|
|
|
+ return $query->where('data_id', $employee_id);
|
|
|
+ })
|
|
|
+ ->select('e.*')
|
|
|
+ ->orderby('e.id', 'desc');
|
|
|
+
|
|
|
+ return $model;
|
|
|
+ }
|
|
|
+
|
|
|
+ public function itemMissionProgressList($data, $user){
|
|
|
+ $model = $this->itemMissionProgressListCommon($data, $user);
|
|
|
+ $list = $this->limit($model,'',$data);
|
|
|
+ $list = $this->fillItemMissionProgressList($list, $user);
|
|
|
+
|
|
|
+ return [true, $list];
|
|
|
+ }
|
|
|
+
|
|
|
+ public function fillItemMissionProgressList($list, $user){
|
|
|
+ $emp = (new EmployeeService())->getEmployeeMap(array_unique(array_merge_recursive(array_column($list['data'],'data_id'), array_column($list['data'],'crt_id'))));
|
|
|
+
|
|
|
+ $item = $this->getItemMap(array_unique(array_column($list['data'],'item_id')));
|
|
|
+ $itemNode = $this->getItemNodeMap2(array_unique(array_column($list['data'],'item_node_id')));
|
|
|
+ $itemNodeMission = $this->getItemNodeMissionMap(array_unique(array_column($list['data'],'item_node_mission_id')));
|
|
|
+ foreach ($list['data'] as $key => $value){
|
|
|
+ $list['data'][$key]['order_time'] = $value['order_time'] ? date('Y-m-d',$value['order_time']) : '';
|
|
|
+ $list['data'][$key]['crt_time'] = $value['crt_time'] ? date('Y-m-d H:i:s',$value['crt_time']) : '';
|
|
|
+ $list['data'][$key]['crt_name'] = $emp[$value['crt_id']] ?? '';
|
|
|
+ $list['data'][$key]['data_name'] = $emp[$value['data_id']] ?? '';
|
|
|
+ $item_tmp = $item[$value['item_id']] ?? [];
|
|
|
+ $list['data'][$key]['item_title'] = $item_tmp['title'] ?? '';
|
|
|
+ $item_node_tmp = $itemNode[$value['item_node_id']] ?? [];
|
|
|
+ $list['data'][$key]['item_node_title'] = $item_node_tmp['title'] ?? '';
|
|
|
+ $item_node_mission_tmp = $itemNodeMission[$value['item_node_mission_id']] ?? [];
|
|
|
+ $list['data'][$key]['item_node_mission_title'] = $item_node_mission_tmp['title'] ?? '';
|
|
|
+ }
|
|
|
+
|
|
|
+ return $list;
|
|
|
+ }
|
|
|
+
|
|
|
public function itemMissionProgressBoard($data = [], $user = []){
|
|
|
$is_my = $data['is_my'] ?? 0;
|
|
|
$my = $user['id'] ?? 0;
|
|
|
@@ -3169,6 +3228,17 @@ class ItemService extends Service
|
|
|
->toArray();
|
|
|
}
|
|
|
|
|
|
+ public function getItemNodeMap2($ids){
|
|
|
+ $ids = array_filter((array)$ids);
|
|
|
+ if (empty($ids)) return [];
|
|
|
+
|
|
|
+ return ItemNode::whereIn('id', $ids)
|
|
|
+ ->select('id', 'title', 'code')
|
|
|
+ ->get()
|
|
|
+ ->keyBy('id')
|
|
|
+ ->toArray();
|
|
|
+ }
|
|
|
+
|
|
|
public function checkIsDelivery($data, $tableName){
|
|
|
//是否需要交付物完结
|
|
|
if($data['is_delivery_required']){
|