['warehouse_id', 'store_id'], '%like' => ['code'], 'between_time' => 'create_time' ]; } /** * @notes 获取列表 * @return array * @throws \think\db\exception\DataNotFoundException * @throws \think\db\exception\DbException * @throws \think\db\exception\ModelNotFoundException * @author admin * @date 2025/03/10 11:08 */ public function lists(): array { if ($this->request->get('product_name')) { $product_name = $this->request->get('product_name'); $ids = StoreProduct::where('store_name', 'like', '%' . $product_name . '%')->withTrashed()->column('id'); if ($ids) { $this->searchWhere[] = ['product_id', 'in', $ids]; $this->ids = $ids; } else { return []; } } if ($this->request->get('bar_code')) { $bar_code = $this->request->get('bar_code'); $ids = StoreProduct::where('bar_code', 'like', '%' . $bar_code . '%')->withTrashed()->column('id'); if ($ids) { $this->searchWhere[] = ['product_id', 'in', $ids]; $this->ids = $ids; } else { return []; } } $query = OutboundProduct::where($this->searchWhere); if (isset($this->params['is_group']) && $this->params['is_group'] == 1) { $query->group('product_id')->field(['id', 'code', 'pay_type', 'oid', 'admin_id', 'supplier_id', 'store_id', 'warehouse_id', 'product_id', 'batch', 'sum(nums) nums', 'price', 'purchase', 'cost', 'sum(total_price) total_price', 'manufacture', 'expiration_date', 'status', 'mark', 'create_time', 'is_pay', 'order_type', 'vip_price']); } else { $query->field(['id', 'code', 'pay_type', 'oid', 'admin_id', 'supplier_id', 'store_id', 'warehouse_id', 'product_id', 'batch', 'nums', 'price', 'purchase', 'cost', 'total_price', 'manufacture', 'expiration_date', 'status', 'mark', 'create_time', 'is_pay', 'order_type', 'vip_price']); } return $query ->limit($this->limitOffset, $this->limitLength) ->order(['id' => 'desc']) ->select()->each(function ($item) { $item->store_name = ''; $item->image = ''; $item->price = $item['price'] ?? 0; $item->purchase = $item['purchase'] ?? 0; $item->unit_name = ''; $item->store_info = ''; $item->top_cate_name = ''; $item->order_type_name = ''; if ($item->store_id > 0) { $item->system_store_name = SystemStore::where('id', $item->store_id)->value('name'); } else { $item->system_store_name = ''; } if ($item->status == 0) { $item->status_name = '未确认'; } elseif ($item->status == 1) { $item->status_name = '已确认'; } else { $item->status_name = '库存不足'; } if ($item->admin_id) { $item->admin_name = Admin::where('id', $item->admin_id)->value('name'); } else { $item->admin_name = ''; } if ($item->product_id) { $find = StoreProduct::where('id', $item->product_id)->field('price,purchase,image,store_name,unit,store_info,top_cate_id')->withTrashed()->find(); if ($find) { $item->store_name = $item->product_id . '|' . $find->store_name; $item->image = $find->image; $item->unit_name = StoreProductUnit::where('id', $find->unit)->value('name'); $item->store_info = $find->store_info; $item->top_cate_name = StoreCategory::where('id', $find->top_cate_id)->value('name'); } } if ($item->warehouse_id) { $item->warehouse_name = Warehouse::where('id', $item->warehouse_id)->value('name'); } else { $item->warehouse_name = ''; } if ($item->supplier_id) { $item->supplier_name = Supplier::where('id', $item->supplier_id)->value('name'); } else { $item->supplier_name = ''; } $item->expiration_date = $item->expiration_date ? date('Y-m-d', $item->expiration_date) : ''; $item->manufacture = $item->manufacture ? date('Y-m-d', $item->manufacture) : ''; if (!empty($item['order_type'])) { $item->order_type_name = OrderEnum::getOrderTypeName($item->order_type); } else { $beforehandOrderId = OutboundOrder::where('id', $item['oid'])->value('oid'); if ($beforehandOrderId) { $item->order_type_name = ''; } } if ($item->order_type == 5) { $item->outbound = '无须出库'; } $item->type_name = $item->getTypeName(); }) ->toArray(); } /** * @notes 获取数量 * @return int * @author admin * @date 2025/03/10 11:08 */ public function count(): int { return OutboundProduct::where($this->searchWhere)->count(); } }