|
@@ -25,7 +25,7 @@ class downredinvres extends Command
|
|
|
{
|
|
|
$GetOrderInfoAndInvoiceInfo= Cache::store("redis")->get("downredinvres");
|
|
|
if($GetOrderInfoAndInvoiceInfo==1) return '';
|
|
|
- Cache::store("redis")->set("downredinvres",1,60);
|
|
|
+ Cache::store("redis")->set("downredinvres",1,160);
|
|
|
Db::startTrans();
|
|
|
$date= date("Y-m-d H:i:s");
|
|
|
$row =Db::name("invoice_red")->where(["status"=>1,"is_del"=>0])->where("updatetime","<=",date("Y-m-d H:i:s"))
|
|
@@ -41,36 +41,37 @@ class downredinvres extends Command
|
|
|
$invoice=Config::get("invoice");
|
|
|
$Tax =new \TaxInvoice($invoice['appKey'],$invoice['appSecret'],$invoice['entCode']);
|
|
|
if($row['addtime']==$row['updatetime']){
|
|
|
- $pch=randomkeys(26).date("YmdHis");
|
|
|
+ $pch=randomkeys(8).md5(date("YmdHis").$row['id']);
|
|
|
$data['SQBSCQQPCH']=$pch;
|
|
|
- }else{
|
|
|
- $data['SQBSCQQPCH']=$row['SQBSCQQPCH'];
|
|
|
+ $row['SQBSCQQPCH'] =$pch;
|
|
|
}
|
|
|
-
|
|
|
- $result=$Tax->DownloadRedInvoiceApplicationResult($data['SQBSCQQPCH'],$row['XHFSBH'],$row['FPLXDM'],$opendatetime,$opendatetime);
|
|
|
+ $result=$Tax->DownloadRedInvoiceApplicationResult($row['SQBSCQQPCH'],$row['XHFSBH'],$row['FPLXDM'],$opendatetime,$opendatetime);
|
|
|
if(isset($result['ZTDM']) && $result['ZTDM']=='060000'){
|
|
|
if(isset($result['HZSQDXZZXX']) && !empty($result['HZSQDXZZXX'])){
|
|
|
+ $limimt=[];
|
|
|
foreach ($result['HZSQDXZZXX'] as $item){
|
|
|
$resultChild=$item['HZSQDXZTXX'];
|
|
|
+ $temp=[];
|
|
|
+ if(isset($limimt[$resultChild['YFPHM']]) &&$limimt[$resultChild['YFPHM']]['status']==2 ) continue;
|
|
|
+ $temp['YFPDM']=$resultChild['YFPDM'];
|
|
|
+ $temp['YFPHM']=$resultChild['YFPHM'];
|
|
|
+ $temp['XXBBH']=$resultChild['XXBBH'];
|
|
|
+ $temp['remark']=$resultChild['ZTXX'];
|
|
|
+ $temp['updatetime']=date("Y-m-d H:i:s");
|
|
|
if($resultChild['ZTDM']=='060000'){
|
|
|
- $data['status']=2;
|
|
|
- $data['XXBBH']=$resultChild['XXBBH'];
|
|
|
- $data['remark']=$resultChild['ZTXX'];
|
|
|
+ $temp['status']=2;
|
|
|
}elseif($resultChild['ZTDM']=='069999'){
|
|
|
- $data['status']=5;
|
|
|
- $data['XXBBH']=$resultChild['XXBBH'];
|
|
|
- $data['remark']=$resultChild['ZTXX'];
|
|
|
+ $temp['status']=5;
|
|
|
}else{
|
|
|
- $data['status']=1;
|
|
|
- $data['XXBBH']=$resultChild['XXBBH'];
|
|
|
- $data['remark']=$resultChild['ZTXX'];
|
|
|
- }
|
|
|
- $where=["YFPDM"=>$resultChild['YFPDM'],"YFPHM"=>$resultChild['YFPHM'],"status"=>1];
|
|
|
- $row= Db::name("invoice_red")->where($where)->update($data);
|
|
|
- if($row){
|
|
|
- if($data['status']==2)$this->AddRed($resultChild['YFPDM'],$resultChild['YFPHM']);
|
|
|
- if($data['status']==5)$this->updateReturn($resultChild['YFPDM'],$resultChild['YFPHM'],$resultChild['ZTXX']);
|
|
|
+ $temp['status']=1;
|
|
|
}
|
|
|
+ $limimt[$resultChild['YFPHM']] = $temp;
|
|
|
+ }
|
|
|
+ if(empty($limimt)){
|
|
|
+ $data['remark']=$result['ZTXX'];
|
|
|
+ Db::name('invoice_red')->where($row)->update($data);
|
|
|
+ }else{
|
|
|
+ $this->checkData($limimt);
|
|
|
}
|
|
|
}
|
|
|
}else{
|
|
@@ -82,7 +83,7 @@ class downredinvres extends Command
|
|
|
$output->writeln("[$date] ".$row['invRed'].'发票申请表获取成功');
|
|
|
}catch (\Exception $e){
|
|
|
Db::rollback();
|
|
|
- $output->writeln("[$date] ".$row['invRed'].$e->getMessage());
|
|
|
+ $output->writeln("[$date] ".$row['invRed'].$e->getMessage().$e->getLine());
|
|
|
}
|
|
|
|
|
|
}
|
|
@@ -137,7 +138,7 @@ class downredinvres extends Command
|
|
|
"DDMXXX"=>$red['DDMXXX'],
|
|
|
"FPLXDM"=>$red['FPLXDM'],
|
|
|
"DDQQPCH"=>"",
|
|
|
- "DDQQLSH"=>randomkeys(26).date("YmdHis"),
|
|
|
+ "DDQQLSH"=>randomkeys(8).md5(date('YmdHis').$red['id']),
|
|
|
"status"=>"0",
|
|
|
"result"=>"",
|
|
|
"addtime"=>date("Y-m-d H:i:s"),
|
|
@@ -162,4 +163,17 @@ class downredinvres extends Command
|
|
|
if(empty($fp)) throw new \Exception("未找到红票申请信息表");
|
|
|
Db::name("invoice_return")->where(["returnCode"=>$fp['returnCode'],"status"=>1])->update(["status"=>4,"updatetime"=>date("Y-m-d H:i:s"),"remark"=>$remark]);
|
|
|
}
|
|
|
+
|
|
|
+
|
|
|
+ public function checkData($resultChildArr){
|
|
|
+ foreach ($resultChildArr as $resultChild){
|
|
|
+ $where=['YFPDM'=>$resultChild['YFPDM'] , 'YFPHM'=>$resultChild['YFPHM'] , 'status'=>1];
|
|
|
+ $row=Db::name('invoice_red')->where($where)->update($resultChild);
|
|
|
+ if ($row) {
|
|
|
+ if ($resultChild['status'] == 2) $this->AddRed($resultChild['YFPDM'] , $resultChild['YFPHM']);
|
|
|
+ if ($resultChild['status'] == 5) $this->updateReturn($resultChild['YFPDM'] , $resultChild['YFPHM'] ,$resultChild['remark']);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
}
|