excel导入铺货

This commit is contained in:
sjeam 2025-04-07 10:46:37 +08:00
parent d1a4e5acdf
commit e3dc0985bd

View File

@ -4,6 +4,7 @@ namespace app\admin\controller;
use app\admin\logic\beforehand_order_cart_info\BeforehandOrderCartInfoLogic;
use app\admin\logic\product_source_link_info\ProductSourceLinkInfoLogic;
use app\admin\logic\inventory_transfer_order\InventoryTransferOrderLogic;
use app\common\model\beforehand_order\BeforehandOrder;
use app\common\model\beforehand_order_cart_info\BeforehandOrderCartInfo;
use app\common\model\CeshiCopy;
@ -16,6 +17,8 @@ use app\common\model\store_product_group_price\StoreProductGroupPrice;
use app\common\model\StoreProductPriceList;
use app\common\model\warehouse_order\WarehouseOrder;
use app\common\model\warehouse_product\WarehouseProduct;
use app\common\model\store_branch_product\StoreBranchProduct;
use app\common\model\system_store\SystemStore;
use PhpOffice\PhpSpreadsheet\IOFactory;
use support\exception\BusinessException;
use support\Redis;
@ -513,5 +516,62 @@ class LocalController extends BaseAdminController
throw new BusinessException($e->getMessage());
}
}
public function importStorege()
{
$file = $this->request->file('file');
$reader = IOFactory::createReader('Xlsx');
$spreadsheet = $reader->load($file->getRealPath());
$sheets = $spreadsheet->getAllSheets();
$new_params = [];
foreach ($sheets as $sheetIndex => $sheet) {
$rows = $sheet->toArray();
foreach ($rows as $k => $row) {
if ($k < 1 || empty($row[0])) {
continue;
}
$system_store_id = SystemStore::where('name', $row[1])->value('id');
$product = StoreBranchProduct::where('product_id', $row[0])->where('store_id', $system_store_id)->field('id,product_id,stock')->findOrEmpty();
if ($row[10] == $product->stock && $product->stock != 0) {
// 生成铺货单
$params = [];
$params['after_nums'] = '';
$params['before_nums'] = '';
$params['id'] = $row[0];
$params['mark'] = "门店铺货-excel导入";
$params['nums'] = $row[2];
$params['one_id'] = $system_store_id; //门店id
$params['one_name'] = "";
$params['one_type'] = 1; //1门店2仓库
$params['product_arr'] = [
[
'nums' => $row[10],
'product_id' => $product->product_id,
'purchase' => 0,
'total_price' => $product->total_price,
]
];
$params['product_id'] = $row[0];
$params['product_name'] = "";
$params['two_id'] = 1; //1海吉星仓库
$params['two_name'] = "";
$params['two_type'] = 2; //1门店2仓库
$params['types'] = 1; //0减库存 1不减库存
$params['warehouse_name'] = "";
$params['warehouse_name_two'] = "";
InventoryTransferOrderLogic::add($params, $this->adminId);
} else {
$arr = [];
$arr['product_id'] = $row[0];
$arr['store_id'] = $system_store_id;
$arr['nums'] = $row[10] ?? 0;
$arr['stock'] = $product['stock'] ?? 0;
$new_params[] = $arr;
}
}
$dataArray = json_encode($new_params, true);
file_put_contents(public_path() . '/output.text', $dataArray);
}
return $this->success('导入成功');
}
}