diff --git a/app/api/controller/IndexController.php b/app/api/controller/IndexController.php index e0c128272..8ee827428 100755 --- a/app/api/controller/IndexController.php +++ b/app/api/controller/IndexController.php @@ -204,14 +204,15 @@ class IndexController extends BaseApiController foreach ($cars as $k => $v) { $hasCar = VehicleRent::where('car_id',$v['id'])->findOrEmpty(); if($hasCar->isEmpty()){ + $data[$k]['contract_id'] = $contract['id']; + $data[$k]['company_id'] = $contract['company_b_id']; $data[$k]['car_id'] = $v['id']; $data[$k]['car_license'] = $v['license']; $data[$k]['type'] = 0; $data[$k]['status'] = 0; - $data[$k]['company_id'] = $contract['company_b_id']; - $data[$k]['rent_time'] = 0; + $data[$k]['rent_contract_id'] = 0; $data[$k]['rent_company_id'] = 0; - $data[$k]['contract_id'] = $contract['id']; + $data[$k]['rent_time'] = 0; $data[$k]['create_time'] = strtotime($contract['create_time']); } } @@ -446,9 +447,50 @@ class IndexController extends BaseApiController $vehicleBuyRecord = VehicleBuyRecord::where('contract_id',$contract['id'])->findOrEmpty(); if(!$vehicleBuyRecord->isEmpty()){ //小组公司与镇街公司解约 - if($vehicleBuyRecord['status'] == 1){} + if($vehicleBuyRecord['status'] == 1){ + //获取租赁车辆信息 + $rentCarsInfo = VehicleRent::field('id,type,contract_id')->where('car_id',$cars_ids[0])->findOrEmpty(); + if($rentCarsInfo['type'] == 0){ + //修改租赁车俩状态 + VehicleRent::where('id',$rentCarsInfo['id'])->update(['status'=>0,'rent_time'=>0,'rent_company_id'=>0]); + } + if($rentCarsInfo['type'] == 1){ + //修改租赁车俩状态 + VehicleRent::where('id',$rentCarsInfo['id'])->delete(); + } + //删除原合同 + VehicleContract::where('id',$rentCarsInfo['contract_id'])->delete(); + //修改物流系统车辆租赁信息 + curl_post(env('project.logistic_domain').'/api/Vehicle/delRentUseInfo', [], [ + 'car_id' => $cars_ids[0] + ]); + //发送购买合同给物流系统 + $curl_result = curl_post(env('project.logistic_domain').'/api/signContract',[],[ + 'num' => $vehicleBuyRecord['num'], + 'company_id' => $vehicleBuyRecord['company_id'], + 'company_name' => $vehicleBuyRecord['company_name'], + 'company_code' => $vehicleBuyRecord['company_code'], + 'company_user' => $vehicleBuyRecord['company_user'], + 'company_phone' => $vehicleBuyRecord['company_phone'], + 'company_email' => $vehicleBuyRecord['company_email'], + 'cars_info' => $vehicleBuyRecord['cars_info'], + 'type' => 3 + ]); + if(empty($curl_result)){ + return $this->fail('null return from logistic'); + } + if($curl_result['code'] == 0){ + return $this->fail($curl_result['msg'].' from logistic'); + } + //生成本地合同 + VehicleContract::create($curl_result['data']); + VehicleBuyRecord::where('id',$vehicleBuyRecord['id'])->update(['status'=>4]); + return json(['success' => true, 'msg' => '成功']); + } + //小组公司与镇街公司解约,然后镇街公司与平台公司解约 + if($vehicleBuyRecord['status'] == 2){} //镇街公司与平台公司解约 - if($vehicleBuyRecord['status'] == 2){ + if($vehicleBuyRecord['status'] == 3){ //删除本地租赁信息 VehicleRent::where('car_id','in',$cars_ids)->delete(); //删除物流系统租赁信息 @@ -475,7 +517,7 @@ class IndexController extends BaseApiController } //生成本地合同 VehicleContract::create($curl_result['data']); - VehicleBuyRecord::where('id',$vehicleBuyRecord['id'])->update(['status'=>3]); + VehicleBuyRecord::where('id',$vehicleBuyRecord['id'])->update(['status'=>4]); return json(['success' => true, 'msg' => '成功']); } }else{ diff --git a/app/api/controller/VehicleController.php b/app/api/controller/VehicleController.php index d25e756d1..7e91a1cdd 100644 --- a/app/api/controller/VehicleController.php +++ b/app/api/controller/VehicleController.php @@ -720,7 +720,7 @@ class VehicleController extends BaseApiController 'company_email' => $xzCompany['master_email'], 'cars_info' => json_encode($cars), 'num' => count($cars), - 'status' => 2, + 'status' => 3, 'contract_id' => $res->id, 'create_time' => time() ]); @@ -730,17 +730,18 @@ class VehicleController extends BaseApiController } //如果有租赁车俩和上传自有车辆,但没有购买镇街公司租赁的车辆 则先向镇街公司发起解约合同 if(!$xzRentCars->isEmpty() && $zjRentCars->isEmpty()){ - dump(333);die; - //获取自有车辆或以租赁车辆信息 + //获取镇街公司信息 + $zjCompanyInfo = Company::field('id,company_name,master_name,master_phone,master_email,organization_code')->where('id',$zjCompany['party_a'])->findOrEmpty(); //生成本地解约合同 - VehicleContract::create([ + $res = VehicleContract::create([ 'contract_no' => time(), 'contract_logistic_id' => 0, - 'company_a_name' => $zjCompany['company_name'], - 'company_a_code' => $zjCompany['organization_code'], - 'company_a_user' => $zjCompany['master_name'], - 'company_a_phone' => $zjCompany['master_phone'], - 'company_a_email' => $zjCompany['master_email'], + 'company_a_id' => $zjCompanyInfo['id'], + 'company_a_name' => $zjCompanyInfo['company_name'], + 'company_a_code' => $zjCompanyInfo['organization_code'], + 'company_a_user' => $zjCompanyInfo['master_name'], + 'company_a_phone' => $zjCompanyInfo['master_phone'], + 'company_a_email' => $zjCompanyInfo['master_email'], 'company_b_id' => $xzCompany['id'], 'company_b_name' => $xzCompany['company_name'], 'company_b_code' => $xzCompany['organization_code'], @@ -748,12 +749,26 @@ class VehicleController extends BaseApiController 'company_b_phone' => $xzCompany['master_phone'], 'company_b_email' => $xzCompany['master_email'], 'num' =>1, - 'cars_info' => json_encode($cars), + 'cars_info' => json_encode([['id'=>$xzRentCars['car_id'],'license'=>$xzRentCars['car_license']]]), 'type' => 2, 'status' => 0, 'create_time' => time(), 'update_time' => time(), ]); + //生成关联记录 + VehicleBuyRecord::create([ + 'company_id' => $xzCompany['id'], + 'company_name' => $xzCompany['company_name'], + 'company_code' => $xzCompany['organization_code'], + 'company_user' => $xzCompany['master_name'], + 'company_phone' => $xzCompany['master_phone'], + 'company_email' => $xzCompany['master_email'], + 'cars_info' => json_encode($cars), + 'num' => count($cars), + 'status' => 1, + 'contract_id' => $res->id, + 'create_time' => time() + ]); return $this->success('合同发起成功,等待审核 from task'); } }