Merge pull request 'dev' (#321) from dev into main

Reviewed-on: #321
This commit is contained in:
mkm 2024-11-11 11:33:42 +08:00
commit 05628300f9
7 changed files with 70 additions and 44 deletions

View File

@ -47,7 +47,7 @@ class BeforehandOrderLists extends BaseAdminDataLists implements ListsSearchInte
public function lists(): array public function lists(): array
{ {
return BeforehandOrder::where($this->searchWhere) return BeforehandOrder::where($this->searchWhere)
->field(['id','order_id','store_id','order_type','total_num','total_price','outbound_id','admin_id','create_time', 'status', 'mark','warehousing_id']) ->field(['id','order_id','store_id','order_type','total_num','total_price','outbound_id','admin_id','create_time', 'status', 'mark','warehousing_id','file'])
->limit($this->limitOffset, $this->limitLength) ->limit($this->limitOffset, $this->limitLength)
->order(['id' => 'desc']) ->order(['id' => 'desc'])
->select()->each(function ($item){ ->select()->each(function ($item){

View File

@ -27,6 +27,7 @@ use app\common\service\xlsx\OrderAllocation;
use app\common\service\xlsx\OrderInfo; use app\common\service\xlsx\OrderInfo;
use app\common\service\xlsx\OrderList; use app\common\service\xlsx\OrderList;
use app\common\service\xlsx\OrderOutbound; use app\common\service\xlsx\OrderOutbound;
use DateTime;
use support\exception\BusinessException; use support\exception\BusinessException;
use think\facade\Db; use think\facade\Db;
@ -65,6 +66,7 @@ class BeforehandOrderLogic extends BaseLogic
unset($params['product_arr'][$k]); unset($params['product_arr'][$k]);
continue; continue;
} }
$total_prices=bcmul($v['price'],$v['nums'],2);
$datas[$k]['purchase'] = $v['purchase']; $datas[$k]['purchase'] = $v['purchase'];
$datas[$k]['mark'] = $v['mark'] ?? ''; $datas[$k]['mark'] = $v['mark'] ?? '';
$datas[$k]['product_id'] = $v['product_id']; $datas[$k]['product_id'] = $v['product_id'];
@ -80,12 +82,12 @@ class BeforehandOrderLogic extends BaseLogic
$datas[$k]['accept_num'] = $v['nums']; $datas[$k]['accept_num'] = $v['nums'];
$datas[$k]['price'] = $v['price']; $datas[$k]['price'] = $v['price'];
$datas[$k]['package'] = $v['package'] ?? ''; $datas[$k]['package'] = $v['package'] ?? '';
$datas[$k]['total_price'] = $v['total_price']; $datas[$k]['total_price'] =$total_prices;
$datas[$k]['pay_price'] = $v['total_price']; $datas[$k]['pay_price'] = $total_prices;
$datas[$k]['create_time'] = time(); $datas[$k]['create_time'] = time();
$datas[$k]['update_time'] = time(); $datas[$k]['update_time'] = time();
$total_num += $v['nums']; $total_num += $v['nums'];
$total_price += $v['total_price']; $total_price += $total_prices;
} }
$order = BeforehandOrder::create([ $order = BeforehandOrder::create([
'order_id' => getNewOrderId('YG'), 'order_id' => getNewOrderId('YG'),
@ -102,12 +104,11 @@ class BeforehandOrderLogic extends BaseLogic
'phone' => $params['phone'] ?? '', 'phone' => $params['phone'] ?? '',
'address' => $params['address'] ?? '', 'address' => $params['address'] ?? '',
'mark' => $params['mark'] ?? '', 'mark' => $params['mark'] ?? '',
'arrival_time' => strtotime($params['arrival_time']),
'order_type' => $order_type, 'order_type' => $order_type,
'other_data' => json_encode($params['other_data'], true) 'other_data' => json_encode($params['other_data'], true)
]); ]);
/** 添加审批记录 */ /** 添加审批记录 */
BeforehandOrderRecord::create(['oid'=>$order['id'],'step_id'=>1]); BeforehandOrderRecord::create(['oid' => $order['id'], 'step_id' => 1]);
$product_arr = []; $product_arr = [];
foreach ($datas as $k => $v) { foreach ($datas as $k => $v) {
$datas[$k]['bhoid'] = $order['id']; $datas[$k]['bhoid'] = $order['id'];
@ -308,23 +309,14 @@ class BeforehandOrderLogic extends BaseLogic
{ {
Db::startTrans(); Db::startTrans();
try { try {
BeforehandOrder::where('id', $params['id'])->update([ $find=BeforehandOrder::where('id', $params['id'])->find();
'store_id' => $params['store_id'], $other_data=$find['other_data'];
'order_id' => $params['order_id'], $other_data['arrival_time']=strtotime($params['arrival_time']);
'uid' => $params['uid'], $find->update([
'cart_id' => $params['cart_id'], 'other_data'=>json_encode($other_data, true),
'total_num' => $params['total_num'], 'image' => $params['image'],
'total_price' => $params['total_price'],
'pay_price' => $params['pay_price'],
'deduction_price' => $params['deduction_price'],
'paid' => $params['paid'],
'pay_time' => $params['pay_time'],
'pay_type' => $params['pay_type'],
'source' => $params['source'],
'status' => $params['status'],
'mark' => $params['mark'] 'mark' => $params['mark']
]); ]);
Db::commit(); Db::commit();
return true; return true;
} catch (\Throwable $e) { } catch (\Throwable $e) {
@ -508,8 +500,7 @@ class BeforehandOrderLogic extends BaseLogic
*/ */
public static function detail($params): array public static function detail($params): array
{ {
$res = BeforehandOrder::findOrEmpty($params['id'])->toArray(); $res = BeforehandOrder::where('id',$params['id'])->find()->toArray();
$ids = BeforehandOrderCartInfo::where('bhoid', $params['id'])->column('product_id'); $ids = BeforehandOrderCartInfo::where('bhoid', $params['id'])->column('product_id');
$top_cate_ids = StoreProduct::where('id', 'in', $ids)->column('top_cate_id'); $top_cate_ids = StoreProduct::where('id', 'in', $ids)->column('top_cate_id');
if ($top_cate_ids) { if ($top_cate_ids) {
@ -519,14 +510,13 @@ class BeforehandOrderLogic extends BaseLogic
} }
$res['system_store'] = SystemStore::where('id', $res['store_id'])->value('name'); $res['system_store'] = SystemStore::where('id', $res['store_id'])->value('name');
$res['admin_name'] = Admin::where('id', $res['admin_id'])->value('name'); $res['admin_name'] = Admin::where('id', $res['admin_id'])->value('name');
$record=BeforehandOrderRecord::where('oid',$params['id'])->order('id','desc')->find(); $record = BeforehandOrderRecord::where('oid', $params['id'])->order('id', 'desc')->find();
$res['step_id']=1; $res['step_id'] = 1;
if($record){ if ($record) {
$res['step_id']=$record['step_id']; $res['step_id'] = $record['step_id'];
if($record['check_user_id']>0){ if ($record['check_user_id'] > 0) {
$res['examine_name']=Admin::where('id',$record['check_user_id'])->value('name'); $res['examine_name'] = Admin::where('id', $record['check_user_id'])->value('name');
} }
} }
return $res; return $res;
} }
@ -568,6 +558,19 @@ class BeforehandOrderLogic extends BaseLogic
}); });
$other_data = $order['other_data']; $other_data = $order['other_data'];
unset($order['other_data']); unset($order['other_data']);
$dateTime = new DateTime($order['create_time']);
$hour = (int) $dateTime->format('H');
// 判断时间是否小于18点
if ($hour < 18) {
// 时间小于18点的逻辑
$order['storage_time'] = $dateTime->modify('+60 minutes')->format('Y-m-d H:i:s');
$order['delivery_time'] = $dateTime->modify('+90 minutes')->format('Y-m-d H:i:s');
} else {
// 时间大于或等于18点的逻辑
$order['storage_time'] = $dateTime->modify('+150 minutes')->format('Y-m-d H:i:s');
$order['delivery_time'] = $dateTime->modify('+205 minutes')->format('Y-m-d H:i:s');
}
$order['split_time'] = $dateTime->modify('+10 minutes')->format('Y-m-d H:i:s');
$file_path = $order_allocation->export($data, $order, $other_data); $file_path = $order_allocation->export($data, $order, $other_data);
return $file_path; return $file_path;
} }
@ -609,7 +612,7 @@ class BeforehandOrderLogic extends BaseLogic
$item['store_name'] = $find['store_name']; $item['store_name'] = $find['store_name'];
return $item; return $item;
}); });
$order['system_store_name']=SystemStore::where('id', $order['store_id'])->value('name'); $order['system_store_name'] = SystemStore::where('id', $order['store_id'])->value('name');
$other_data = $order['other_data']; $other_data = $order['other_data'];
unset($order['other_data']); unset($order['other_data']);
$file_path = $order_info->export($data, $order, $other_data); $file_path = $order_info->export($data, $order, $other_data);

View File

@ -292,6 +292,13 @@ class StoreProductLogic extends BaseLogic
if(empty($data)){ if(empty($data)){
throw new BusinessException('商品不存在'); throw new BusinessException('商品不存在');
} }
$data['cate_arr']=[$data['top_cate_id']];
if($data['two_cate_id'] == $data['top_cate_id']){
$data['cate_arr'][]=$data['cate_id'];
}else{
$data['cate_arr'][]=$data['two_cate_id'];
$data['cate_arr'][]=$data['cate_id'];
}
$data['unit_name']=StoreProductUnit::where('id', $data['unit'])->value('name'); $data['unit_name']=StoreProductUnit::where('id', $data['unit'])->value('name');
return $data; return $data;
} }

View File

@ -5,6 +5,7 @@ namespace app\admin\logic\warehouse_product_return;
use app\common\model\warehouse_product_return\WarehouseProductReturn; use app\common\model\warehouse_product_return\WarehouseProductReturn;
use app\common\logic\BaseLogic; use app\common\logic\BaseLogic;
use app\common\model\beforehand_order\BeforehandOrder;
use app\common\model\warehouse_product\WarehouseProduct; use app\common\model\warehouse_product\WarehouseProduct;
use app\common\model\warehouse_product_storege\WarehouseProductStorege; use app\common\model\warehouse_product_storege\WarehouseProductStorege;
use support\exception\BusinessException; use support\exception\BusinessException;
@ -33,8 +34,10 @@ class WarehouseProductReturnLogic extends BaseLogic
try { try {
$find=WarehouseProduct::where('id',$params['id'])->find(); $find=WarehouseProduct::where('id',$params['id'])->find();
if($find){ if($find){
$id=BeforehandOrder::where('id',$find['oid'])->value('id');
WarehouseProductReturn::create([ WarehouseProductReturn::create([
'source_id'=>$params['id'], 'source_id'=>$params['id'],
'bhoid'=>$id??0,
'warehouse_id'=>$find['warehouse_id'], 'warehouse_id'=>$find['warehouse_id'],
'supplier_id'=>$find['supplier_id'], 'supplier_id'=>$find['supplier_id'],
'store_id'=>$find['store_id'], 'store_id'=>$find['store_id'],

View File

@ -55,7 +55,7 @@ class IndexController extends BaseApiController
{ {
d(1); d(1);
$arr=StoreOrder::where('store_id',8)->where('paid',1)->field('id,pay_price')->select()->toArray(); $arr=StoreOrder::where('store_id',3)->where('paid',1)->field('id,pay_price,deduction_price,refund_price')->select()->toArray();
$data=[]; $data=[];
foreach ($arr as $k => $v) { foreach ($arr as $k => $v) {
$total_price=StoreOrderCartInfo::where('oid', $v['id'])->sum('total_price'); $total_price=StoreOrderCartInfo::where('oid', $v['id'])->sum('total_price');

View File

@ -50,13 +50,13 @@ class OrderAllocation
$sheet->setCellValue('A4', '编号'); $sheet->setCellValue('A4', '编号');
$sheet->setCellValue('B4', '品名'); $sheet->setCellValue('B4', '品名');
$sheet->setCellValue('C4', '型号'); $sheet->setCellValue('C4', '数量');
$sheet->setCellValue('D4', '包装'); $sheet->setCellValue('D4', '包装');
$sheet->setCellValue('E4', '毛重'); $sheet->setCellValue('E4', '毛重');
$sheet->setCellValue('F4', '净重(约)'); $sheet->setCellValue('F4', '净重(约)');
$sheet->setCellValue('G4', '单位'); $sheet->setCellValue('G4', '单位');
$sheet->setCellValue('H4', '销售单价'); $sheet->setCellValue('H4', '销售单价');
$sheet->setCellValue('I4', '下单数量'); $sheet->setCellValue('I4', '型号');
$sheet->setCellValue('J4', '下单金额'); $sheet->setCellValue('J4', '下单金额');
$sheet->setCellValue('K4', '发货量'); $sheet->setCellValue('K4', '发货量');
$sheet->setCellValue('L4', '实发量'); $sheet->setCellValue('L4', '实发量');
@ -79,13 +79,13 @@ class OrderAllocation
foreach ($data as $k => $v) { foreach ($data as $k => $v) {
$sheet->setCellValue('A' . ($k + 5), $v['product_id']); $sheet->setCellValue('A' . ($k + 5), $v['product_id']);
$sheet->setCellValue('B' . ($k + 5), $v['store_name']); $sheet->setCellValue('B' . ($k + 5), $v['store_name']);
$sheet->setCellValue('C' . ($k + 5), $v['marques']); $sheet->setCellValue('C' . ($k + 5), $v['cart_num']);
$sheet->setCellValue('D' . ($k + 5), $v['package']); $sheet->setCellValue('D' . ($k + 5), $v['package']);
$sheet->setCellValue('E' . ($k + 5), $v['gross_weight']); $sheet->setCellValue('E' . ($k + 5), $v['gross_weight']);
$sheet->setCellValue('F' . ($k + 5), $v['net_weight']); $sheet->setCellValue('F' . ($k + 5), $v['net_weight']);
$sheet->setCellValue('G' . ($k + 5), $v['unit_name']); $sheet->setCellValue('G' . ($k + 5), $v['unit_name']);
$sheet->setCellValue('H' . ($k + 5), $v['price']); $sheet->setCellValue('H' . ($k + 5), $v['price']);
$sheet->setCellValue('I' . ($k + 5), $v['cart_num']); $sheet->setCellValue('I' . ($k + 5), $v['marques']);
$sheet->setCellValue('J' . ($k + 5), $v['total_price']); $sheet->setCellValue('J' . ($k + 5), $v['total_price']);
$sheet->setCellValue('K' . ($k + 5), $v['accept_num']); $sheet->setCellValue('K' . ($k + 5), $v['accept_num']);
$sheet->setCellValue('L' . ($k + 5),$v['accept_num']); $sheet->setCellValue('L' . ($k + 5),$v['accept_num']);
@ -128,19 +128,17 @@ class OrderAllocation
$sheet->setCellValue('N' . ($count + 8),$other_data->regional_manager??''); $sheet->setCellValue('N' . ($count + 8),$other_data->regional_manager??'');
$sheet->setCellValue('A' . ($count + 9),'接单时间'); $sheet->setCellValue('A' . ($count + 9),'接单时间');
$sheet->setCellValue('B' . ($count + 9),''); $sheet->setCellValue('B' . ($count + 9),$order['create_time']??'');
$sheet->setCellValue('C' . ($count + 9),'分单时间'); $sheet->setCellValue('C' . ($count + 9),'分单时间');
$sheet->setCellValue('D' . ($count + 9),''); $sheet->setCellValue('D' . ($count + 9),$order['split_time']??'');
$sheet->setCellValue('E' . ($count + 9),'入库时间'); $sheet->setCellValue('E' . ($count + 9),'入库时间');
$sheet->setCellValue('F' . ($count + 9),''); $sheet->setCellValue('F' . ($count + 9),$order['storage_time']??'');
$sheet->setCellValue('G' . ($count + 9),' 出库时间'); $sheet->setCellValue('G' . ($count + 9),' 分拣时间');
$sheet->setCellValue('H' . ($count + 9),''); $sheet->setCellValue('H' . ($count + 9),$order['delivery_time']??'');
$sheet->setCellValue('I' . ($count + 9),' 到门店时间'); $sheet->setCellValue('I' . ($count + 9),' 到门店时间');
$sheet->setCellValue('J' . ($count + 9),''); $sheet->setCellValue('J' . ($count + 9),'');
$sheet->setCellValue('K' . ($count + 9),' 下单到货时间'); $sheet->setCellValue('K' . ($count + 9),' 下单到货时间');
$sheet->setCellValue('L' . ($count + 9),''); $sheet->setCellValue('L' . ($count + 9),'');
$sheet->setCellValue('M' . ($count + 9),' 实际到货时间');
$sheet->setCellValue('N' . ($count + 9),'');
// 设置单元格的样式 // 设置单元格的样式
$styleArray = [ $styleArray = [
'font' => [ 'font' => [

View File

@ -546,3 +546,18 @@ function channelLog($data, $type, $title = '更新前')
$log = Log::channel($type); $log = Log::channel($type);
$log->info($title, $data); $log->info($title, $data);
} }
// if (!function_exists('getNewOrderSn')) {
// /**
// * @notes 获取订单号
// * @param $type
// * @return string
// */
// function getNewOrderSn($type)
// {
// list($msec, $sec) = explode(' ', microtime());
// $orderId = $type . date('YmdHis', time());
// return $orderId;
// }
// }