| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- <?php
- namespace App\Console\Commands;
- use App\Order;
- use App\OrderBin;
- use App\OrderPackageCountingRecord;
- use App\Services\BatchService;
- use App\Services\common\BatchUpdateService;
- use App\Services\DocWaveHeaderService;
- use App\Services\LogService;
- use App\ValueStore;
- use Carbon\Carbon;
- use Illuminate\Console\Command;
- use Illuminate\Support\Facades\Cache;
- use Illuminate\Support\Facades\DB;
- class CreateWeightStatistic extends Command
- {
- protected $signature = 'create:weightStatistic';
- protected $description = 'every day create weight statistic data';
- public function handle()
- {
- $yesterday = date("Y-m-d",strtotime("-1 day"));
- $sql = <<<sql
- SELECT DATE_FORMAT(order_packages.created_at,'%Y-%m-%d') date,IFNULL(order_packages.measuring_machine_id, 0) measuring_machine_id,order_packages.owner_id,
- SUM(CASE WHEN order_packages.weighed_at IS NOT NULL THEN 1 ELSE 0 END) AS count,
- COUNT(1) total FROM order_packages LEFT JOIN orders ON order_packages.order_id=orders.id
- WHERE orders.wms_status != '订单取消'
- AND order_packages.created_at BETWEEN '{$yesterday} 00:00:00' AND '{$yesterday} 23:59:59' GROUP BY date,order_packages.measuring_machine_id,order_packages.owner_id
- sql;
- $result = DB::select(DB::raw($sql));
- if (!$result) {
- $obj = [
- "targeted_at" => $yesterday,
- "un_weigh_count" => 0,
- "total_count" => 0,
- "measuring_machine_id" => 0,
- "owner_id" => 0
- ];
- $model = OrderPackageCountingRecord::query()->create($obj);
- Cache::put("weight.".$yesterday, $obj);
- }else{
- $objs = [];
- foreach ($result as $v){
- $obj = [
- "targeted_at" => $v->date,
- "un_weigh_count" => $v->count,
- "total_count" => $v->total,
- "measuring_machine_id" => $v->measuring_machine_id,
- "owner_id" => $v->owner_id
- ];
- $model = OrderPackageCountingRecord::query()->create($obj);
- array_push($objs, $obj);
- }
- Cache::put("weight.".$yesterday, $objs);
- }
- }
- }
|