Bladeren bron

补充结算模块的某些BUG

Zhouzhendong 4 jaren geleden
bovenliggende
commit
5d82497c3f

+ 0 - 10
app/Http/Controllers/RejectedBillItemController.php

@@ -275,9 +275,7 @@ class RejectedBillItemController extends Controller
             if(config('api.jianshang_rejecteds_log_switch'))Controller::logS(__METHOD__,__FUNCTION__,"进入发送方法,但退单已入库,跳出!退单号:{$rejectedBill['logistic_number_return']}",Auth::user()['id']);
             return true;
         }
-//        $rejected=new Rejected();
         $rejected=$rejectedBill->toArray();
-//        $rejected->fill($rejectedBill->toArray());
         $goodses=[];
         $items->each(function(RejectedBillItem $item)use(&$goodses){
             $goodses[]=$item->toArray();
@@ -292,7 +290,6 @@ class RejectedBillItemController extends Controller
             if(config('api.jianshang_rejecteds_log_switch'))Controller::logS(__METHOD__,__FUNCTION__,"发送失败,笕尚取得结果是:{$resultStr}!返回前端。退单号:{$rejectedBill['logistic_number_return']}",Auth::user()['id']);
             return $resultStr;
         }
-        //
         if($resultStr=='storable'){
             if(config('api.jianshang_rejecteds_log_switch'))Controller::logS(__METHOD__,__FUNCTION__,"发送成功,可入,但待推单,笕尚取得结果是:{$resultStr}!返回前端。退单号:{$rejectedBill['logistic_number_return']}",Auth::user()['id']);
             $rejectedBill = RejectedBill::find($rejectedBill['id']);
@@ -304,13 +301,6 @@ class RejectedBillItemController extends Controller
             });
 
             if(config('api.jianshang_rejecteds_log_switch'))Controller::logS(__METHOD__,__FUNCTION__,"标记退单和商品为待推单!退单号:{$rejectedBill['logistic_number_return']}",Auth::user()['id']);
-            //标记WMS所有该退单下的作废(为已上传) 。应检查这里是否正确!
-//            $receives=WMSReflectReceive::where('ASNREFERENCE3',$rejectedBill['logistic_number_return'])->where('is_uploaded',0)->get();
-//            $receives->each(function ($receive){
-//                $receive['is_uploaded']=1;
-//                $receive->save();
-//            });
-//            if(config('api.jianshang_rejecteds_log_switch'))Controller::logS(__METHOD__,__FUNCTION__,"标记退单在WMS映射表为已上传!退单号:{$rejectedBill['logistic_number_return']}",Auth::user()['id']);
         }
         if(config('api.jianshang_rejecteds_log_switch'))Controller::logS(__METHOD__,__FUNCTION__,"处理完成,返回前端入库状态,标记笕尚取得结果是:{$resultStr}!退单号:{$rejectedBill['logistic_number_return']}",Auth::user()['id']);
         return $resultStr;

+ 1 - 178
app/Http/Controllers/TestController.php

@@ -19,6 +19,7 @@ use App\OwnerPriceOperation;
 use App\OrderPackageCountingRecord;
 use App\RejectedBill;
 use App\Services\ForeignHaiRoboticsService;
+use App\Services\OwnerPriceOperationService;
 use App\Services\StationService;
 use App\Services\StorageService;
 use App\Station;
@@ -69,186 +70,8 @@ class TestController extends Controller
 
     public function test()
     {
-        app("CacheShelfService")->_stationCacheLightOff("HAIB1-01-01");
-        app("CacheShelfService")->_stationCacheLightOff("HAIB1-01-02");
-        app("CacheShelfService")->_stationCacheLightOff("HAIB1-02-02");
-        dd(1);
-        $stationTaskMaterialBox = StationTaskMaterialBox::query()->find(70370);
-        DB::beginTransaction();
-        try{
-            $stationTaskMaterialBox->loadMissing("station");
-            //如果为半箱位置 清理原有任务
-            if (!$stationTaskMaterialBox->station)return;
-            if (app("StationService")->isHalfBoxLocation($stationTaskMaterialBox->station)){
-                app("StationService")->locationOccupy($stationTaskMaterialBox->station->code,$stationTaskMaterialBox->material_box_id);
-                //清除海柔库位信息
-                app("StorageService")->clearTask([$stationTaskMaterialBox->station->code]);
-                $stationId = $stationTaskMaterialBox->station_id;
-                $tasks = TaskTransaction::query()->with("materialBox")->where(function ($query)use($stationId){
-                    $query->where("fm_station_id",$stationId)->orWhere("to_station_id",$stationId);
-                })->where("status",0)->get();
-                if ($tasks->count()!=0){
-                    $options = [];
-                    switch ($tasks[0]->mark){
-                        case 1:
-                            $options["title"] = '上架任务';
-                            break;
-                        case 2:
-                            $options["title"] = '出库任务';
-                            break;
-                        default:
-                            $options["title"] = '未知类型';
-                    }
-                    switch ($tasks->count()){
-                        case 1:
-                            $task = $tasks[0];
-                            $options["detail01"] = $task->materialBox->code ?? '';
-                            $options["detail02"] = $task->doc_code ?: '跟踪:‘'.$task->track_num."’ 批次:‘".$task->lot_num."’";
-                            $options["detail03"] = $task->bar_code;
-                            $options["qty01"] = $task->amount;
-                            $options["uomDesc01"] = '件';
-                            $options["qty02"] = $task->bin_number;
-                            $options["uomDesc02"] = '号';
-                            break;
-                        default:
-                            $count = count(array_unique(array_column($tasks->toArray(),"commodity_id")));
-                            if ($count==1){
-                                $options["detail01"] = $tasks[0]->bar_code;
-                                $options["detail02"] = "";
-                                $options["detail03"] = "";
-                                $amount = 0;
-                                foreach ($tasks as $task){
-                                    if (mb_strlen($options["detail02"])>20){
-                                        $options["detail03"] .= $task->bin_number."号-".$task->amount."件,";
-                                    }else $options["detail02"] .= $task->bin_number."号-".$task->amount."件,";
-                                    $amount += $task->amount;
-                                }
-                                $options["detail02"] = rtrim($options["detail02"],",");
-                                $options["detail03"] = rtrim($options["detail03"],",");
-                                $options["qty02"] = $amount;
-                                $options["uomDesc02"] = '件';
-                            }else{
-                                $task = $tasks[0];
-                                $options["detail01"] = $task->materialBox->code ?? '';
-                                $options["detail02"] = "货品过多请自行核对";
-                                $options["detail03"] = "波次:".$task->doc_code ?
-                                    (Order::query()->with("batch")->where("code",$task->doc_code)->first()->batch->code ?? '无') : '无';
-                            }
-                            break;
-                    }
-                    app("CacheShelfService")->lightUp($stationTaskMaterialBox->station->code,'2','0',$options);
-                    Cache::forget("CACHE_SHELF_OCCUPANCY_{$stationTaskMaterialBox->station->id}");//关闭无限亮灯
-                }
-            }else app("StationService")->locationFreed($stationTaskMaterialBox->station->code); //释放库位占用
-            DB::commit();
-            dd("OK");
-        }catch (\Exception $e){
-            DB::rollBack();
-            dd($e->getTrace());
-        }
 
 
-    }
-
-    //快递称重 生成历史数据
-    public function addRecord(Request $request)
-    {
-        ini_set('max_execution_time',-1);
-        OrderPackageCountingRecord::query()->truncate();
-        $start =  Carbon::parse(request("month"))->startOfMonth();
-        $end = Carbon::parse(request('month'))->endOfMonth();
-
-        foreach (CarbonPeriod::create($start,$end) as $date){
-            /** @var $date Carbon */
-            $yesterday = $date->format("Y-m-d");
-            $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);
-            }
-        }
-    }
-
-    public function redis()
-    {
-        $start = 1606752000;$end = 1627747200;
-        $len = ($end - $start) / 86400;
-        for ($i=0; $i <= $len ; $i ++){
-            $date = date("Y-m-d", $start + $i * 86400);
-            Cache::pull('weight.'.$date);
-        }
-    }
-
-    public function delRedis(Request $request)
-    {
-        $date = $request->get('date','');
-        if (empty($date)) return false;
-        Cache::pull('weight.'.$date);
-    }
 
-    public function addDateRecords(Request $request)
-    {
-        $yesterday = $request->get('date','');
-        $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);
-        }
     }
 }

+ 2 - 2
app/Services/OrderService.php

@@ -1185,7 +1185,7 @@ sql
             ];
         };
         foreach ($order->packages as $package){
-            if (!$package->weight)return $default(); //任一包裹不存在重量 放弃所有计算 直接跳出
+            if (!$package->weight || !$province)return $default(); //任一包裹不存在重量 放弃所有计算 直接跳出
             $tax = $fee = null;
             $result["logisticBill"] .= $package->logistic_number.",";
             $result["volume"] += $package->bulk;
@@ -1212,7 +1212,7 @@ sql
             ];
         }
         /* 子母单计算 */
-        if ($isBunched){
+        if ($isBunched && $province){
             $GLOBALS["FEE_INFO"] = $defaultInfo($result["logisticBill"],$result["weight"]);
 
             list($result["logisticFee"],$result["logisticTaxFee"]) =

+ 2 - 2
app/Services/OwnerPriceOperationService.php

@@ -388,12 +388,12 @@ class OwnerPriceOperationService
     private function extractInfo(array $arr, $money, $result, $flip, $taxRate)
     {
         foreach ($arr as $index => $item){
-            $details = [
+            $details = [[
                 "name"      => "单价",
                 "amount"    => $item["amount"] ?? 0,
                 "price"     => 0,
                 "unit_id"   => $flip["件"],
-            ];
+            ]];
             if ($index==0){
                 $feeDescription = "按单计价".($result ? '('.value($result).')' : '').':'.$money.'元';
                 $details[] = [

+ 1 - 1
app/Services/StoreService.php

@@ -374,7 +374,7 @@ class StoreService
             $operation = $defaultInfo;
             foreach ($operation as $key=>$val)if (isset($info[$key]))$operation[$key] = $info[$key];
             $model = OwnerFeeOperation::query()->create($operation);
-            foreach ($info['details'] as &$detail)$detail["owner_fee_operation_id"] = $model->id;
+            if($info['details'])foreach ($info['details'] as &$detail)$detail["owner_fee_operation_id"] = $model->id;
             OwnerFeeOperationDetail::query()->insert($info['details']);
         }
     }