This commit is contained in:
xman 2025-06-08 11:54:14 +08:00
parent cd49b5dab3
commit f87648c09b
4 changed files with 44 additions and 2 deletions

View File

@ -136,6 +136,10 @@ class Dispatchrecord extends Backend
'remark' => '人工跟进,备注内容:'.$params['remark'],
];
Hook::listen('order_dispatch_change', $hookParams);
if($params['rate'] == 10){
$dispatch->got_time = date('Y-m-d H:i:s', time());
}
}
}
$dispatch->follow = 1;

View File

@ -15,7 +15,7 @@ use think\Hook;
class CheckOrderDispatchGotCommand extends Command
{
protected $title = '【自动派单未接单检测,五分钟未接单,重派派单】/【自动派单上门时间已到,未完成上门】,每分钟执行一次';
protected $title = '【自动派单未接单检测,五分钟未接单,重派派单】/【自动派接单五分钟未预约,重新派单】/【自动派单上门时间已到,未完成上门】,每分钟执行一次';
protected function configure()
{
$this->setName('check:dispatch-toget')
@ -25,6 +25,7 @@ class CheckOrderDispatchGotCommand extends Command
protected function execute(Input $input, Output $output){
$this->_toget();
$this->_toplan();
$this->_toarrive();
$output->info('OVER');
}
@ -66,6 +67,42 @@ class CheckOrderDispatchGotCommand extends Command
}
//未预约
private function _toplan(){
try {
$Model = new OrderDispatch();
$now = date('Y-m-d H:i:s', time() - 5 * 60); //创建三十分名以上未接的任务
$OrderLogic = new OrderLogic();
$Model->where('status', OrderDispatch::STATUS_GOTIT)
->where('type', 2)
->where('got_time', '<=', $now)
->chunk(100, function ($list) use ($OrderLogic) {
foreach ($list as $item) {
try {
//取消旧单
$OrderLogic->noWorkerCanGetIt($item);
//自动重派新单
$order = Order::get($item->order_id);
AutoDispatchLogic::autoDispatch($order);
echo 'succ:' . $item->id . PHP_EOL;
} catch (Exception $exception) {
echo $exception->getMessage() . PHP_EOL;
}
}
});
}catch (Exception $exception){
echo $exception->getMessage(). PHP_EOL;
Db::name('debug_log')->insert([
'title' => $this->title,
'content' => '未预约,错误内容:'.$exception->getMessage().',错误行:'. $exception->getLine().',错误文件:'. $exception->getFile(),
'create_time' => date('Y-m-d H:i:s', time())
]);
}
}
//预约时间过了未上门检测
private function _toarrive(){
try {

View File

@ -12,5 +12,5 @@ return [
'sync' => true, //同步
'status' => false, //true启用0关闭
'status' => true, //true启用0关闭
];

View File

@ -155,6 +155,7 @@ class OrderDispatchService extends BaseService
//接单
$orderDispatch->status = $orderDispatchStatus;
$orderDispatch->follow = 1;
$orderDispatch->got_time = date('Y-m-d H:i:s', time());
//拒接原因
if ($type == 'reject') {
if (empty($params['reject_reason'])) {