Files
pgserver3.0/pgserver/application/admin/controller/Bill.php
annnj-company 130c1026c4 first commit
2026-04-17 18:29:53 +08:00

2038 lines
104 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<?php
namespace app\admin\controller;
use think\Db;
use app\model\Bill as BillModel;
use app\model\Inquiry;
use app\common\validate\BillValidate;
use app\util\publicbankTemplate;
use app\admin\service\Consultfiles;
class Bill extends Base
{
//构造函数
public function __construct(){
if($_SERVER['REQUEST_METHOD'] == 'OPTIONS'){
header("Access-Control-Allow-Origin: *");
header("Access-Control-Allow-Headers: userId, ApiAuth, Category, User-Agent, Keep-Alive, Origin, No-Cache, X-Requested-With, If-Modified-Since, Pragma, Last-Modified, Cache-Control, Expires, Content-Type, X-E4M-With");
header('Access-Control-Allow-Methods: GET, POST, PUT,DELETE,OPTIONS,PATCH');
header('Access-Control-Allow-Credentials:true');
exit;
}
parent::__construct();
}
/**
* 票据列表
* @Author pser
* @DateTime 2020-05-07
* @param bill_status int 票据状态1待审2已审3待开4待取5已取6驳回
* @return \think\Response
* @version 2.0
*/
public function billList(){
$salesman_name=input('user_name');
$bill_type=input('bill_type');
$paramTime=$this->getQueryDateTime();
$keyword=input('keyword');
$bill_status=input('bill_status');
$where=[];
if (!in_array("ROLE_ADMIN", $this->userInfo['roleCode'])) {
if (in_array("general_manager_CSPG", $this->userInfo['roleCode'])) {
$where['b.bill_cate_type'] = 2;
} elseif(in_array("Finance_CSPG", $this->userInfo['roleCode'])) {
$where['b.bill_cate_type'] = 1;
} else {
$user_ids = array($this->userInfo['user_id']); //$this->userInfo['user_ids'] ? implode(',', $this->userInfo['user_ids']) : '';
$where['b.salesman_id'] = ['in', $user_ids];
}
}
!empty($salesman_name) && $where['b.salesman_name']=['like','%'.$salesman_name.'%'];
!empty($bill_type) && $where['b.bill_type']=$bill_type;
!empty($paramTime) && $where['b.apply_time']=$paramTime;
!empty($keyword) && $where['b.order_no']=['like','%'.$keyword.'%'];
$bill_status && $where['b.bill_status']=$bill_status;
$fields='b.bill_id,b.order_no,b.estate_name,b.bill_type,b.bill_cate,b.apply_time,b.salesman_name,b.bill_no,bd.bill_amount,bd.bill_title,bd.create_time,b.recipient_name,b.reject_reason,b.get_bill_time,bd.invoice_type,b.bill_status, i.bank_name as i_bank_name,i.bank_branch_name,i.bank_sub_name';
$res=BillModel::getBillList($fields,$where,$this->getPage());
if($res){
return $this->buildSuccess(['list' => $res['data'], 'count' => $res['total']]);
}else{
return $this->buildFailed('查无数据');
}
}
// 已取发票数据导出
public function billExport(){
$salesman_name=input('user_name');
$bill_type=input('bill_type');
$paramTime=$this->getQueryDateTime();
$keyword=input('keyword');
$bill_status=input('bill_status');
$where=[];
if (!in_array("ROLE_ADMIN", $this->userInfo['roleCode'])) {
if (in_array("general_manager_CSPG", $this->userInfo['roleCode'])) {
$where['b.bill_cate_type'] = 2;
} elseif(in_array("Finance_CSPG", $this->userInfo['roleCode'])) {
$where['b.bill_cate_type'] = 1;
} else {
$user_ids = array($this->userInfo['user_id']);//$this->userInfo['user_ids'] ? implode(',', $this->userInfo['user_ids']) : '';
$where['b.salesman_id'] = ['in', $user_ids];
}
}
!empty($salesman_name) && $where['b.salesman_name']=['like','%'.$salesman_name.'%'];
!empty($bill_type) && $where['b.bill_type']=$bill_type;
!empty($paramTime) && $where['b.apply_time']=$paramTime;
!empty($keyword) && $where['b.order_no']=['like','%'.$keyword.'%'];
$bill_status && $where['b.bill_status']=$bill_status;
$fields='b.bill_id,b.order_no,b.building_name,b.bill_type,b.bill_cate,b.apply_time,b.salesman_name,b.bill_no,bd.bill_amount,bd.bill_title,bd.create_time,b.recipient_name,b.reject_reason,b.get_bill_time,bd.invoice_type,b.bill_status, i.bank_name as i_bank_name,i.bank_branch_name,i.bank_sub_name';
$res=BillModel::getBillList($fields, $where, ['list_rows' => 10000000, 'page' => 1]);
if($res){
$indexKey = ['order_no', 'building_name', 'bill_type_str', 'bill_cate_str', 'bill_no', 'bill_amount', 'apply_time', 'bill_title', 'apply_time', 'salesman_name', 'recipient_name', 'get_bill_time'];
$indexValue = ['单号', '物业名称', '票据类型', '开票种类', '票据号码', '票据金额', '开票时间', '票据抬头', '申请日期', '业务员', '领取人', '领取时间'];
(new ChargeManage())->exportExcel($res['data'], date('Ymd'), $indexKey, $indexValue);
}
}
/**
* 业务管理-票据列表
* @DateTime 2020-05-07
* @param bill_status int 票据状态4待取5已取6驳回
* @return \think\Response
* @version 2.0
*/
public function businessBillList(){
$salesman_name=input('user_name');
$bill_type=input('bill_type');
$paramTime=$this->getQueryDateTime();
$keyword=input('keyword');
$bill_status=input('bill_status');
$where=[];
!empty($salesman_name) && $where['b.salesman_name']=['like','%'.$salesman_name.'%'];
!empty($bill_type) && $where['b.bill_type']=$bill_type;
!empty($paramTime) && $where['b.apply_time']=$paramTime;
!empty($keyword) && $where['b.order_no']=['like','%'.$keyword.'%'];
if (!in_array("ROLE_ADMIN", $this->userInfo['roleCode'])) {
$user_ids = array($this->userInfo['user_id']);// $this->userInfo['user_ids'] ? implode(',', $this->userInfo['user_ids']) : [];
$where['b.salesman_id'] = ['in', $user_ids]; //权限
}
$bill_status && $where['b.bill_status']=$bill_status;
$fields='b.bill_id,b.order_no,b.building_name,b.bill_type,b.bill_cate,b.apply_time,b.salesman_name,b.bill_no,bd.bill_amount,bd.bill_title,bd.create_time,b.recipient_name,b.reject_reason,b.get_bill_time,bd.invoice_type,b.bill_status, i.bank_name as i_bank_name,i.bank_branch_name,i.bank_sub_name';
$res=BillModel::getBillList($fields,$where,$this->getPage());
if($res){
return $this->buildSuccess(['list' => $res['data'], 'count' => $res['total']]);
}else{
return $this->buildFailed('查无数据');
}
}
/**
* 票据详情
* @Author pser
* @DateTime 2020-05-07
* @return \think\Response
* @version 2.0
*/
public function billDetail(){
$bill_id=input('bill_id');
if(empty($bill_id)){
return $this->buildFailed('id不能为空');
}
$where['b.bill_id']=$bill_id;
$fields='b.bill_id,b.bank_customer_mgr_name,b.order_no,b.building_name,b.bill_type,b.bill_cate,b.salesman_name,b.department_name,b.pay,b.confirm_pay,b.paid_status,bd.bill_amount,bd.taxpayer_no,bd.tel,bd.bank_name,bd.bank_account,bd.company_addr,bd.apply_reason,b.bill_no,bd.bill_title,bd.invoice_type,bd.bill_attachment, i.bank_name as i_bank_name,i.bank_branch_name,i.bank_sub_name,bd.bill_content';
$res=BillModel::getBillList($fields,$where,[]);
if($res){
//只有一条结果,取第一条返回
return $this->buildSuccess($res['data'][0]);
}else{
return $this->buildFailed('查无数据');
}
}
/**
* 申请驳回
* @Author pser
* @DateTime 2020-05-07
* @return \think\Response
* @version 2.0
*/
public function back(){
$bill_id=input('bill_id');
$reject_reason=input('reject_reason');
if(empty($bill_id)){
return $this->buildFailed('id不能为空');
}
if(empty($reject_reason)){
return $this->buildFailed('驳回原因不能为空');
}
// Db::startTrans();
// $billIdArr=explode(',',$bill_id);
// foreach ($billIdArr as $k => $v) {
// try{
// $where['bill_id']=$v;
// $where['bill_status']=6;
// $where['reject_reason']=$reject_reason;
// $res=Db::name('bill')->update($where);
// if($res===false){
// Db::rollback();
// return $this->buildFailed('保存失败');
// }
// }catch(\Exception $e){
// Db::rollback();
// return $this->buildFailed('保存失败');
// }
// }
// Db::commit();
// return $this->buildSuccess();
$where['bill_id'] = $bill_id;
$where['bill_status'] = 6;
$where['reject_reason'] = $reject_reason;
$where['update_time'] = date('Y-m-d H:i:s');
$bill_data = Db::name('bill')->where(['bill_id'=>$bill_id])->find();
// 获取询价id
$quot_id = Db::name('inquiry')->where(['order_no'=>$bill_data['order_no']])->field('id')->find();
// 判断开票种类是常规开票还是非常规开票
if ($bill_data['bill_cate'] == 1) {
// 常规开票
if (!in_array("Finance_CSPG", $this->userInfo['roleCode'])) {
return $this->buildFailed('常规开票只有财务有操作权限');
}
$where['financial_reviewer'] = $this->userInfo['user_name'];
$where['financial_reviewer_id'] = $this->userInfo['user_id'];
$message_type = 28;
} else {
// 非常规开票,校验总经理是否已经审核通过
if ($bill_data['bill_cate_type'] == 1) {
if (!in_array("Finance_CSPG", $this->userInfo['roleCode'])) {
return $this->buildFailed('只有财务有操作权限');
}
$where['financial_reviewer'] = $this->userInfo['user_name'];
$where['financial_reviewer_id'] = $this->userInfo['user_id'];
$message_type = 28;
} else {
if (!in_array("general_manager_CSPG", $this->userInfo['roleCode'])) {
return $this->buildFailed('只有总经理有操作权限');
}
$where['manager_reviewer'] = $this->userInfo['user_name'];
$where['manager_reviewer_id'] = $this->userInfo['user_id'];
$message_type = 25;
}
}
$update_result = Db::name('bill')->update($where);
if ($update_result) {
// 写入消息
PublicMessage($quot_id['id'], 9, $message_type);
return $this->buildSuccess('', '驳回成功');
} else {
return $this->buildFailed('驳回失败');
}
}
/**
* 通过
* @Author pser
* @DateTime 2020-05-07
* @return \think\Response
* @version 2.0
*/
public function agree(){
$bill_id=input('bill_id');
if(empty($bill_id)){
return $this->buildFailed('id不能为空');
}
// $where['bill_id']=$bill_id;
// $where['bill_status']=3;
// $res=Db::name('bill')->update($where);
//
// if($res!==false){
// return $this->buildSuccess();
// }else{
// return $this->buildFailed('失败');
// }
$where['bill_id'] = $bill_id;
$where['update_time'] = date('Y-m-d H:i:s');
$bill_data = Db::name('bill')->where(['bill_id'=>$bill_id])->find();
// 获取询价id
$quot_id = Db::name('inquiry')->where(['order_no'=>$bill_data['order_no']])->field('id')->find();
// 判断开票种类是常规开票还是非常规开票
if ($bill_data['bill_cate'] == 1) {
// 常规开票
if (!in_array("Finance_CSPG", $this->userInfo['roleCode'])) {
return $this->buildFailed('常规开票只有财务有操作权限');
}
$where['bill_status'] = 3;
$where['financial_reviewer'] = $this->userInfo['user_name'];
$where['financial_reviewer_id'] = $this->userInfo['user_id'];
$message_type = 27;
} else {
// 非常规开票,校验总经理是否已经审核通过
if ($bill_data['bill_cate_type'] == 1) {
if (!in_array("Finance_CSPG", $this->userInfo['roleCode'])) {
return $this->buildFailed('只有财务有操作权限');
}
$where['bill_status'] = 3;
$where['financial_reviewer'] = $this->userInfo['user_name'];
$where['financial_reviewer_id'] = $this->userInfo['user_id'];
$message_type = 27;
} else {
if (!in_array("general_manager_CSPG", $this->userInfo['roleCode'])) {
return $this->buildFailed('只有总经理有操作权限');
}
$where['bill_cate_type'] = 1;
$where['manager_reviewer'] = $this->userInfo['user_name'];
$where['manager_reviewer_id'] = $this->userInfo['user_id'];
$message_type = 24;
}
}
$update_result = Db::name('bill')->update($where);
if ($update_result) {
// 写入消息
PublicMessage($quot_id['id'], 9, $message_type);
return $this->buildSuccess('', '通过成功');
} else {
return $this->buildFailed('通过失败');
}
}
public function draw(){
$bill_id=input('bill_id');
$recipient_name=input('user_name');
if(empty($bill_id)){
return $this->buildFailed('id不能为空');
}
if(empty($recipient_name)){
return $this->buildFailed('领取人姓名不能为空');
}
Db::startTrans();
$billIdArr=explode(',',$bill_id);
foreach ($billIdArr as $k => $v) {
try{
$data['bill_id']=$v;
$data['bill_status']=5;
$data['recipient_name']=$recipient_name;
$data['update_time']=date('Y-m-d H:i:s',time());
$data['get_bill_time']=$data['update_time'];
$res=Db::name('bill')->update($data);
if($res===false){
Db::rollback();
return $this->buildFailed('保存失败');
}
}catch(\Exception $e){
Db::rollback();
return $this->buildFailed('保存失败');
}
}
Db::commit();
return $this->buildSuccess();
}
/**
* 开具票据
* @Author pser
* @DateTime 2020-05-07
* @return \think\Response
* @version 2.0
*/
public function invoicing(){
$bill_amount=input('bill_amount');
$bill_no=input('bill_no');
$bill_id=input('bill_id');
if(empty($bill_id)){
return $this->buildFailed('id不能为空');
}
if(empty($bill_amount)){
return $this->buildFailed('票据金额不能为空');
}
if(empty($bill_no)){
return $this->buildFailed('票据号码不能为空');
}
Db::startTrans();
$where['bill_id']=$bill_id;
$where['bill_no']=$bill_no;
$where['bill_status']=4;
$res=Db::name('bill')->update($where);
// $awhere['bill_id']=$bill_id;
$awhere['bill_amount']=$bill_amount;
$res1=Db::name('bill_detail')->where('bill_id',$bill_id)->update($awhere);
if($res!==false && $res1!==false){
Db::commit();
return $this->buildSuccess();
}else{
Db::rollback();
return $this->buildFailed('失败');
}
}
public function orderList() {
$data = $this->getOrderData($this->getPage());
if($data){
return $this->buildSuccess($data);
}else{
return $this->buildFailed('查无数据');
}
}
public function export() {
$data = $this->getOrderData(['list_rows' => 10000000, 'page' => 1]);
$result_data = [];
foreach ($data['data'] as $key=>$value) {
//if ($value['estate_num'] > 1) {
$buss_username = Db::name('inquiry')->where(['order_no'=>$value['order_no']])->field('buss_username')->find();
$report_id = Db::name('report')->where(['report_no'=>$value['report_no']])->field('id,borrower_name')->find();
$multi_data = Db::name('report_detail')->alias('a')->leftJoin('property_cert_info b', 'a.property_cert_info_id = b.id')->where(['a.report_id'=>$report_id['id']])->field('a.building_area,a.obligee,a.cert_no,a.property_cert,a.purchase_date,a.small_district_name,a.client,a.parcel_area,a.land_location,a.building_name as e_name,a.use_right_source,a.max_land_use_years,a.land_use_start_time,a.house_use,a.test_method,b.property_full_name,b.year,b.usage,b.id as quot_id,b.survey_user_name')->select();
$temp = [];
foreach ($multi_data as $k=>$v) {
$return_data = Db::name('return_price')->where(['property_cert_info_id'=>$v['quot_id']])->field('property_name,eva_unit_price,eva_total_value,eva_net_value,eva_net_value2,appraiser_name')->order(['id'=>'desc'])->find();
$survey_time = Db::name('survey')->where(['property_cert_info_id'=>$v['quot_id']])->value('complete_time');
$temp['cid'] = $value['cid'];
$temp['report_no'] = $value['report_no'];
$temp['report_no_str'] = $value['report_no_str'];
$temp['appraisal_item'] = $v['land_location'].$v['property_full_name'].'一套'.getDictionaryName('HOUSE_USAGE', $v['usage']).'用途房地产抵押价值评估';
$temp['company'] = $value['company'];
$temp['valuation_time'] = $value['valuation_time'];
$temp['parcel_area'] = $v['parcel_area'];
$temp['appraisal_time'] = $value['appraisal_time'];
$temp['building_name'] = $v['property_full_name'];
$temp['bank_name'] = $value['bank_name'];
$temp['bank_branch_name'] = $value['bank_branch_name'];
$temp['bank_sub_name'] = $value['bank_sub_name'];
$temp['city'] = $value['city'];
$temp['area'] = $value['area'];
$temp['type'] = $value['type'];
$temp['eva_purpose'] = $value['eva_purpose'];
$temp['order_src'] = $value['order_src'];
if ($k == 0) {
$temp['receivable'] = $value['receivable'];
$temp['received'] = $value['received'];
$temp['confirm_amount'] = $value['confirm_amount'];
$temp['uncollected_amount'] = $value['uncollected_amount'];
$temp['check_amount'] = $value['check_amount'];
} else {
$temp['receivable'] = 0;
$temp['received'] = 0;
$temp['confirm_amount'] = 0;
$temp['uncollected_amount'] = 0;
$temp['check_amount'] = 0;
}
$temp['account_manager_id'] = $value['account_manager_id'];
$temp['bank_customer_mgr_name'] = $value['bank_customer_mgr_name'];
$temp['buss_username'] = $buss_username['buss_username'];
$temp['user_name'] = $value['user_name'];
$temp['obligee'] = $v['obligee'];
// $temp['property_cert'] = $v['property_cert'];
// $temp['deed_number_string'] = $value['deed_number_string'];
$temp['property_cert'] = !empty($v['year']) ? $v['year'].'-'.$v['property_cert'] : $v['property_cert'];
$temp['deed_number_string'] = !empty($v['year']) ? '粤('.$v['year'].')深圳市不动产权第'.$v['property_cert'].'号' : '深房地字第'.$v['property_cert'].'号';
$temp['cert_no'] = $v['cert_no'];
$temp['purchase_date'] = $v['purchase_date'];
$temp['e_case_code'] = $value['e_case_code'];
$temp['produce_time'] = $value['produce_time'];
$temp['building_area'] = $v['building_area'];
$temp['eva_unit_price'] = $return_data['eva_unit_price'];
$temp['eva_total_value'] = $return_data['eva_total_value'];
$temp['eva_net_value'] = $return_data['eva_net_value'];//净值1
$temp['eva_net_value2'] = $return_data['eva_net_value2'];//净值2
$temp['survey_user_name'] = $v['survey_user_name'];
$temp['type_str'] = $value['type_str'];
$temp['property_full_name'] = $value['property_full_name'];
$temp['full_estate_name_str'] = $v['property_full_name'];
$temp['business_source_str'] = $value['business_source_str'];
$temp['estate_num'] = $value['estate_num'];
$temp['report_completion_time'] = $value['report_completion_time'];
$temp['bank_customer_mgr_phone'] = $value['bank_customer_mgr_phone'];
$temp['producer_name'] = $value['producer_name'];
$temp['reviewer_name'] = $value['reviewer_name'];
$temp['small_district_name'] = $v['small_district_name'];
$temp['client'] = $v['client'];
$temp['appraiser_name'] = $return_data['appraiser_name'];
$temp['usage'] = getDictionaryName('HOUSE_USAGE', $v['usage']);
$temp['results'] = $value['results'];
$temp['pay_type'] = $value['pay_type'];
$temp['pay_type_str'] = $value['pay_type_str'];
$temp['business_type'] = $value['business_type'];
$temp['business_type_str'] = $value['business_type_str'];
$temp['bank_type_str'] = $value['bank_type_str'];
$temp['is_simple'] = $value['is_simple'];
$temp['is_simple_str'] = $value['is_simple_str'];
$temp['remark'] = $value['remark'];
$temp['report_make_score'] = $value['report_make_score'];
$temp['project_leader'] = '胡轩, 邹旭焘';
$temp['valuers'] = $value['appraiser_name'].', '.$value['appraiser2_name'];
$temp['remark'] = $value['remark'];
$temp['local_community'] = $v['land_location'].$v['e_name'];
$temp['address'] = $v['land_location'].$v['property_full_name'];
$temp['unit_type'] = ''; // 户型
$temp['use_right_source'] = $v['use_right_source'];
$temp['field1'] = '';
$temp['field2'] = '';
$temp['field3'] = '';
$temp['field4'] = '';
$temp['field5'] = '';
$temp['field6'] = $v['test_method']==2?'收益法':'比较法';
$temp['field7'] = '周边类似房地产市场交易活跃,交易案例丰富,适用于市场比较法。';
$temp['max_land_use_years'] = $v['max_land_use_years'];
$temp['land_use_start_time'] = $v['land_use_start_time'];
$temp['field8'] = '';
$temp['field9'] = '';
$temp['field10'] = '';
$temp['field11'] = '';
$temp['field12'] = '';
$temp['field13'] = '';
$temp['field14'] = '';
$temp['field15'] = '国中';
$temp['appraiser_name'] = $value['appraiser_name'];
$temp['certificate_number'] = $value['certificate_number'];
$temp['appraiser2_name'] = $value['appraiser2_name'];
$temp['certificate_number_two'] = $value['certificate_number_two'];
$temp['borrower_name'] = $report_id['borrower_name'];
$temp['survey_complete'] = date('y-m-d', strtotime($survey_time));
// 剩余年限
$remain = $v['max_land_use_years'] - floor((time()-strtotime($v['land_use_start_time']))/(365*24*3600));
$temp['remain'] = $remain;
$result_data[] = $temp;
}
}
if($result_data){
$indexKey = [
'appraisal_item',
'report_no_str',
'client',
'company',
'eva_purpose',
'eva_purpose',
'valuation_time',
'parcel_area',
'building_area',
'eva_total_value',
'receivable',
'appraisal_time',
'project_leader',
'valuers',
'remark',
'estate_num',
'city',
'area',
'local_community',
'address',
'usage',
'unit_type', // 户型new
'use_right_source',
'parcel_area',
'building_area',
'field1',
'field2',
'field3',
'field4',
'field5',
'max_land_use_years',
'land_use_start_time',
'field6',
'field7',
'field8',
'eva_unit_price',
'field9',
'eva_total_value',
'eva_total_value',
'parcel_area',
'valuation_time',
'appraisal_time',
'parcel_area',
'building_area',
'eva_total_value',
'eva_unit_price',
'address',
'client',
'field10',
'field11',
'field12',
'appraiser_name',
'certificate_number',
'appraiser2_name',
'certificate_number_two',
'field13',
'field14',
// 'full_estate_name_str',
// 'type_str',
// 'business_type_str',
// 'bank_type_str',
// 'business_source_str',
// 'received',
// 'confirm_amount',
// 'uncollected_amount',
// 'check_amount',
// 'pay_type_str',
// 'is_simple_str',
// 'eva_unit_price',
// 'eva_net_value',
// 'eva_net_value2',
// 'bank_customer_mgr_phone',
'buss_username',
'user_name',
'survey_user_name',
// 'usage',
'obligee',
// 'cert_no',
// 'property_cert',
// 'deed_number_string',
// 'purchase_date',
// 'e_case_code',
// 'report_completion_time',
'producer_name',
'reviewer_name',
// 'small_district_name',
'appraiser_name',
// 'results',
// 'report_make_score',
'bank_sub_name',
'bank_customer_mgr_name',
'field15',
'borrower_name',
'building_name',
'estate_num',
'receivable',
'eva_net_value',
'survey_complete',
'remain'
];
$indexValue = [
'估价项目',
'估价报告编号',
'估价委托人',
'房地产估价机构',
'估价目的',
'价值类型',
'价值时点',
'项目总土地面积(平方米)',
'项目总建筑面积(平方米)',
'项目总价值(万元)',
'项目合同收费(元)',
'项目完成时间',
'项目负责人',
'签字估价师',
'备注',
'本报告的估价对象个数',
'估价对象所在城市',
'估价对象所在行政区',
'估价对象所在小区',
'估价对象详细地址',
'房屋用途',
'房屋类型',
'房屋性质',
'估价对象土地面积(平方米)',
'估价对象建筑面积(平方米)',
'户型结构',
'户型',
'朝向',
'所在楼层',
'装修程度',
'使用年限',
'土地使用开始日期',
'估价方法',
'估价方法说明',
'土地评估单价(元/平方米)',
'建筑评估单价(元/平方米)',
'土地总价值(万元)',
'建筑总价值(万元)',
'估价对象评估总价(万元)',
'宗地面积',
'估价作业开始日',
'估价作业结束日',
'土地面积(㎡)',
'建筑面积(㎡)',
'评估总值(万元)',
'评估单价(元)',
'估价对象位置',
'委托人',
'委托人地址',
'委托人邮编',
'委托人电话',
'第一报告人',
'第一报告人注册号',
'参与报告人1',
'注册号',
'参与报告人2',
'注册号',
// '物业名称',
// '业务类型',
// '是否对公(供综管部结单参考)',
// '银行/非银',
// '业务来源',
// '实收金额',
// '确认金额',
// '未收金额',
// '结单金额',
// '结款方式',
// '是否简易报告',
// '评估单价(元)',
// '评估净值1',
// '评估净值2',
// '客户经理电话',
'业务员',
'录单员',
'查勘员',
// '物业用途',
'权利人',
// '权利人证件号码',
// '房产证号(一)',
// '房产证号(二)',
// '房产证登记日期',
// '电子提取码',
// '评估报告日期',
'报告制作员',
'报告审核员',
// '所在片区',
'回价员',
// '个贷(对公)业绩',
// '报告制作评分',
'支行',
'客户经理',
'评估公司',
'借款企业名称',
'物业名称',
'物业套数',
'评估费用',
'净值',
'查勘完成日期',
'剩余年限'
];
(new ChargeManage())->exportExcel($result_data, 'order_'.date('Ymd'), $indexKey, $indexValue);
}
}
public function export1() {
$data = $this->getOrderData(['list_rows' => 10000000, 'page' => 1]);
$result_data = [];
$nod = 1;
foreach ($data['data'] as $key=>$value) {
if ($value['estate_num'] > 1) {
$report_id = Db::name('report')->where(['report_no'=>$value['report_no']])->value('id');
$multi_data = Db::name('report_detail')->alias('a')->leftJoin('property_cert_info b', 'a.property_cert_info_id = b.id')->where(['a.report_id'=>$report_id])->field('a.building_area,a.obligee,a.cert_no,a.property_cert,a.purchase_date,a.small_district_name,a.client,b.property_full_name,b.building_name,b.building_no,b.year,b.usage,b.id as quot_id,b.survey_user_name,b.ownership_type')->select();
$temp = [];
foreach ($multi_data as $k=>$v) {
$return_data = Db::name('return_price')->where(['property_cert_info_id'=>$v['quot_id']])->field('eva_total_value,eva_net_value,eva_net_value2,appraiser_name')->order(['id'=>'desc'])->find();
$temp['cid'] = $value['cid'];
$temp['report_no'] = $value['report_no'];
$temp['report_no_str'] = $value['report_no_str'];
$temp['building_name'] = $v['property_full_name'];
$temp['bank_name'] = trim($value['bank_name']);
$temp['bank_branch_name'] = trim($value['bank_branch_name']);
$temp['bank_sub_name'] = trim($value['bank_sub_name']);
$temp['city'] = $value['city'];
$temp['area'] = $value['area'];
$temp['type'] = $value['type'];
$temp['eva_purpose'] = $value['eva_purpose'];
$temp['order_src'] = $value['order_src'];
if ($k == 0) {
$temp['receivable'] = $value['receivable'];
$temp['received'] = $value['received'];
$temp['confirm_amount'] = $value['confirm_amount'];
$temp['uncollected_amount'] = $value['uncollected_amount'];
$temp['check_amount'] = $value['check_amount'];
} else {
$temp['receivable'] = 0;
$temp['received'] = 0;
$temp['confirm_amount'] = 0;
$temp['uncollected_amount'] = 0;
$temp['check_amount'] = 0;
}
$temp['account_manager_id'] = $value['account_manager_id'];
$temp['bank_customer_mgr_name'] = trim($value['bank_customer_mgr_name']);
$temp['user_name'] = $value['user_name'];
$temp['obligee'] = $v['obligee'];
// 权利人须隐藏一个字符,如:张*或张*丰建行对账要求2023-09-18
if (strpos($v['obligee'],",, , 、")!==false) {
$obligee_arr = explode("[,,、]", $v['obligee']);
$name = [];
foreach ($obligee_arr as $k_o=>$v_o) {
$name_arr = preg_split('/(?<!^)(?!$)/u', $v_o);
if (mb_strlen($v_o) != 3) {
if ($v['ownership_type']==2) {
$obligee = substr_replace($v_o, '***', 9, 9);
$name[] = $obligee;
} else {
$name[] = $name_arr[0] . '*';
}
} elseif (mb_strlen($v_o) == 3) {
$name[] = $name_arr[0] . '*' . $name_arr[2];
}
}
$temp['obligee_bank'] = implode("", $name);
} else {
$name = '';
$name_arr = preg_split('/(?<!^)(?!$)/u', $v['obligee']);
if (mb_strlen($v['obligee']) != 3) {
if ($v['ownership_type']==2) {
$name = substr_replace($v['obligee'], '***', 9, 9);
} else {
$name = $name_arr[0] . '*';
}
} elseif (mb_strlen($v['obligee']) == 3) {
$name = $name_arr[0] . '*' . $name_arr[2];
}
$temp['obligee_bank'] = $name;
}
// $temp['property_cert'] = $v['property_cert'];
// $temp['deed_number_string'] = $value['deed_number_string'];
$temp['property_cert'] = !empty($v['year']) ? $v['year'].'-'.$v['property_cert'] : $v['property_cert'];
$temp['deed_number_string'] = !empty($v['year']) ? '粤('.$v['year'].')深圳市不动产权第'.$v['property_cert'].'号' : '深房地字第'.$v['property_cert'].'号';
$temp['cert_no'] = $v['cert_no'];
$temp['purchase_date'] = $v['purchase_date'];
$temp['e_case_code'] = $value['e_case_code'];
$temp['produce_time'] = $value['produce_time'];
$temp['building_area'] = $v['building_area'];
$temp['eva_total_value'] = number_format($return_data['eva_total_value']);
if($return_data['eva_total_value']<=10000000){
$temp['total_price_interval'] = '评估总值≤1000万';
}elseif($return_data['eva_total_value']>10000000 &&
$return_data['eva_total_value']<=30000000){
$temp['total_price_interval'] = '评估总值1000万-3000万';
}elseif($return_data['eva_total_value']>30000000){
$temp['total_price_interval'] = '评估总值3000万以上';
}
$temp['eva_net_value'] = $return_data['eva_net_value'];
$temp['eva_net_value2'] = $return_data['eva_net_value2'];
$temp['survey_user_name'] = $v['survey_user_name'];
$temp['type_str'] = $value['type_str'];
$temp['property_full_name'] = $value['property_full_name'];
$temp['full_estate_name_str'] = $v['property_full_name'];
$temp['business_source_str'] = $value['business_source_str'];
$temp['estate_num'] = $value['estate_num'];
$temp['report_completion_time'] = $value['report_completion_time'];
$temp['bank_customer_mgr_phone'] = $value['bank_customer_mgr_phone'];
$temp['producer_name'] = $value['producer_name'];
$temp['reviewer_name'] = $value['reviewer_name'];
$temp['small_district_name'] = $v['small_district_name'];
$temp['client'] = $v['client'];
$temp['appraiser_name'] = $return_data['appraiser_name'];
$temp['usage'] = getDictionaryName('HOUSE_USAGE', $v['usage']);
$temp['results'] = $value['results'];
$temp['pay_type'] = $value['pay_type'];
$temp['pay_type_str'] = $value['pay_type_str'];
$temp['business_type'] = $value['business_type'];
$temp['business_type_str'] = $value['business_type_str'];
$temp['bank_type_str'] = $value['bank_type_str'];
$temp['is_simple'] = $value['is_simple'];
$temp['is_simple_str'] = $value['is_simple_str'];
$temp['remark'] = $value['remark'];
$temp['report_make_score'] = $value['report_make_score'];
$temp['nod'] = $nod;
$temp['institution_name'] = '深圳市国中资产土地房地产评估有限公司';
$temp['bank_estate'] = $v['building_name'].(!empty($v['building_no'])?$v['building_no']:'');
$temp['bank_report_time'] = date('Y/m/d', strtotime($value['report_completion_time']));
$result_data[] = $temp;
$nod++;
}
} else {
$value['nod'] = $nod;
$name = '';
$name_arr = preg_split('/(?<!^)(?!$)/u', $value['obligee']);
if (mb_strlen($value['obligee']) != 3) {
if ($value['ownership_type']==2) {
$name = substr_replace($value['obligee'], '***', 9, 9);
} else {
$name = $name_arr[0] . '*';
}
} elseif (mb_strlen($value['obligee']) == 3) {
$name = $name_arr[0] . '*' . $name_arr[2];
}
$value['obligee_bank'] = $name;
$value['institution_name'] = '深圳市国中资产土地房地产评估有限公司';
$value['bank_report_time'] = date('Y/m/d', strtotime($value['report_completion_time']));
$eva_total_value = str_replace(',', '', $value['eva_total_value']);
if((int)$eva_total_value<=10000000){
$value['total_price_interval'] = '评估总值≤1000万';
}elseif((int)$eva_total_value>10000000 &&
(int)$eva_total_value<=30000000){
$value['total_price_interval'] = '评估总值1000万-3000万';
}elseif((int)$eva_total_value>30000000){
$value['total_price_interval'] = '评估总值3000万以上';
}
$result_data[] = $value;
$nod++;
}
}
if($result_data){
$indexKey = ['report_no', 'report_no_str', 'bank_name', 'bank_sub_name', 'city', 'area', 'full_estate_name_str', 'type_str', 'business_type_str', 'client', 'bank_type_str', 'eva_purpose', 'business_source_str', 'receivable', 'received', 'confirm_amount', 'uncollected_amount', 'check_amount', 'pay_type_str', 'is_simple_str', 'building_area', 'eva_total_value', 'eva_net_value', 'eva_net_value2', 'bank_customer_mgr_name', 'bank_customer_mgr_phone', 'user_name', 'survey_user_name', 'estate_num', 'usage', 'obligee', 'cert_no', 'property_cert', 'deed_number_string', 'purchase_date', 'e_case_code', 'report_completion_time', 'producer_name', 'reviewer_name', 'small_district_name', 'appraiser_name', 'results', 'remark', 'report_make_score', 'nod', 'obligee_bank', 'bank_estate', 'institution_name', 'bank_report_time', 'e_case_code', 'eva_total_value', 'total_price_interval', 'receivable', 'bank_sub_name', 'bank_customer_mgr_name'];
$indexValue = ['报告编号', '报告编号(带中文)', '银行', '支行', '城市', '城区', '物业名称', '业务类型', '是否对公(供综管部结单参考)', '委托方', '银行/非银', '评估目的', '业务来源', '应收金额', '实收金额', '确认金额', '未收金额', '结单金额', '结款方式', '是否简易报告', '面积', '评估总值', '评估净值1', '评估净值2', '客户经理', '客户经理电话', '业务员', '查勘员', '物业套数', '物业用途', '权利人', '权利人证件号码', '房产证号(一)', '房产证号(二)', '房产证登记日期', '电子提取码', '评估报告日期', '报告制作员', '报告审核员', '所在片区', '回价员', '个贷(对公)业绩', '备注', '报告制作评分', '序号', '房产所有人名称', '评估房产名称', '评估公司名称', '评估报告日期', '评估电子提取码', '评估总值/元', '评估总值所对应付费区间', '评估费用/元', '经办支行', '客户经理'];
(new ChargeManage())->exportExcel($result_data, 'CCB_order_'.date('Ymd'), $indexKey, $indexValue);
}
}
// 建行导出
public function bankExport1() {
$data = $this->getOrderData(['list_rows' => 10000000, 'page' => 1], 777);
$result_data = [];
$nod = 1;
foreach ($data['data'] as $key=>$value) {
if ($value['estate_num'] > 1) {
$report_id = Db::name('report')->where(['report_no'=>$value['report_no']])->value('id');
$multi_data = Db::name('report_detail')->alias('a')->leftJoin('property_cert_info b', 'a.property_cert_info_id = b.id')->where(['a.report_id'=>$report_id])->field('a.building_area,a.obligee,a.cert_no,a.property_cert,a.purchase_date,a.small_district_name,a.client,b.property_full_name,b.building_name,b.building_no,b.year,b.usage,b.id as quot_id,b.survey_user_name,b.ownership_type')->select();
$temp = [];
foreach ($multi_data as $k=>$v) {
$return_data = Db::name('return_price')->where(['property_cert_info_id'=>$v['quot_id']])->field('eva_total_value,eva_net_value,eva_net_value2,appraiser_name')->order(['id'=>'desc'])->find();
$temp['cid'] = $value['cid'];
$temp['report_no'] = $value['report_no'];
$temp['report_no_str'] = $value['report_no_str'];
$temp['building_name'] = $v['property_full_name'];
$temp['bank_name'] = trim($value['bank_name']);
$temp['bank_branch_name'] = trim($value['bank_branch_name']);
$temp['bank_sub_name'] = trim($value['bank_sub_name']);
$temp['city'] = $value['city'];
$temp['area'] = $value['area'];
$temp['type'] = $value['type'];
$temp['eva_purpose'] = $value['eva_purpose'];
$temp['order_src'] = $value['order_src'];
if ($k == 0) {
$temp['receivable'] = $value['receivable'];
$temp['received'] = $value['received'];
$temp['confirm_amount'] = $value['confirm_amount'];
$temp['uncollected_amount'] = $value['uncollected_amount'];
$temp['check_amount'] = $value['check_amount'];
} else {
$temp['receivable'] = 0;
$temp['received'] = 0;
$temp['confirm_amount'] = 0;
$temp['uncollected_amount'] = 0;
$temp['check_amount'] = 0;
}
$temp['account_manager_id'] = $value['account_manager_id'];
$temp['bank_customer_mgr_name'] = trim($value['bank_customer_mgr_name']);
$temp['user_name'] = $value['user_name'];
$temp['obligee'] = $v['obligee'];
// 权利人须隐藏一个字符,如:张*或张*丰建行对账要求2023-09-18
if (strpos($v['obligee'],",, , 、")!==false) {
$obligee_arr = explode("[,,、]", $v['obligee']);
$name = [];
foreach ($obligee_arr as $k_o=>$v_o) {
$name_arr = preg_split('/(?<!^)(?!$)/u', $v_o);
if (mb_strlen($v_o) != 3) {
if ($v['ownership_type']==2) {
$obligee = substr_replace($v_o, '***', 9, 9);
$name[] = $obligee;
} else {
$name[] = $name_arr[0] . '*';
}
} elseif (mb_strlen($v_o) == 3) {
$name[] = $name_arr[0] . '*' . $name_arr[2];
}
}
$temp['obligee_bank'] = implode("", $name);
} else {
$name = '';
$name_arr = preg_split('/(?<!^)(?!$)/u', $v['obligee']);
if (mb_strlen($v['obligee']) != 3) {
if ($v['ownership_type']==2) {
$name = substr_replace($v['obligee'], '***', 9, 9);
} else {
$name = $name_arr[0] . '*';
}
} elseif (mb_strlen($v['obligee']) == 3) {
$name = $name_arr[0] . '*' . $name_arr[2];
}
$temp['obligee_bank'] = $name;
}
// $temp['property_cert'] = $v['property_cert'];
// $temp['deed_number_string'] = $value['deed_number_string'];
$temp['property_cert'] = !empty($v['year']) ? $v['year'].'-'.$v['property_cert'] : $v['property_cert'];
$temp['deed_number_string'] = !empty($v['year']) ? '粤('.$v['year'].')深圳市不动产权第'.$v['property_cert'].'号' : '深房地字第'.$v['property_cert'].'号';
$temp['cert_no'] = $v['cert_no'];
$temp['purchase_date'] = $v['purchase_date'];
$temp['e_case_code'] = $value['e_case_code'];
$temp['produce_time'] = $value['produce_time'];
$temp['building_area'] = $v['building_area'];
$temp['eva_total_value'] = number_format($return_data['eva_total_value']);
if($return_data['eva_total_value']<=10000000){
$temp['total_price_interval'] = '评估总值≤1000万';
}elseif($return_data['eva_total_value']>10000000 &&
$return_data['eva_total_value']<=30000000){
$temp['total_price_interval'] = '评估总值1000万-3000万';
}elseif($return_data['eva_total_value']>30000000){
$temp['total_price_interval'] = '评估总值3000万以上';
}
$temp['eva_net_value'] = $return_data['eva_net_value'];
$temp['eva_net_value2'] = $return_data['eva_net_value2'];
$temp['survey_user_name'] = $v['survey_user_name'];
$temp['type_str'] = $value['type_str'];
$temp['property_full_name'] = $value['property_full_name'];
$temp['full_estate_name_str'] = $v['property_full_name'];
$temp['business_source_str'] = $value['business_source_str'];
$temp['estate_num'] = $value['estate_num'];
$temp['report_completion_time'] = $value['report_completion_time'];
$temp['bank_customer_mgr_phone'] = $value['bank_customer_mgr_phone'];
$temp['producer_name'] = $value['producer_name'];
$temp['reviewer_name'] = $value['reviewer_name'];
$temp['small_district_name'] = $v['small_district_name'];
$temp['client'] = $v['client'];
$temp['appraiser_name'] = $return_data['appraiser_name'];
$temp['usage'] = getDictionaryName('HOUSE_USAGE', $v['usage']);
$temp['results'] = $value['results'];
$temp['pay_type'] = $value['pay_type'];
$temp['pay_type_str'] = $value['pay_type_str'];
$temp['business_type'] = $value['business_type'];
$temp['business_type_str'] = $value['business_type_str'];
$temp['bank_type_str'] = $value['bank_type_str'];
$temp['is_simple'] = $value['is_simple'];
$temp['is_simple_str'] = $value['is_simple_str'];
$temp['remark'] = $value['remark'];
$temp['report_make_score'] = $value['report_make_score'];
$temp['nod'] = $nod;
$temp['institution_name'] = '深圳市国中资产土地房地产评估有限公司';
$temp['bank_estate'] = $v['building_name'].(!empty($v['building_no'])?$v['building_no']:'');
$temp['bank_report_time'] = date('Y/m/d', strtotime($value['report_completion_time']));
$result_data[] = $temp;
$nod++;
}
} else {
$value['nod'] = $nod;
$name = '';
$name_arr = preg_split('/(?<!^)(?!$)/u', $value['obligee']);
if (mb_strlen($value['obligee']) != 3) {
if ($value['ownership_type']==2) {
$name = substr_replace($value['obligee'], '***', 9, 9);
} else {
$name = $name_arr[0] . '*';
}
} elseif (mb_strlen($value['obligee']) == 3) {
$name = $name_arr[0] . '*' . $name_arr[2];
}
$value['obligee_bank'] = $name;
$value['institution_name'] = '深圳市国中资产土地房地产评估有限公司';
$value['bank_report_time'] = date('Y/m/d', strtotime($value['report_completion_time']));
$eva_total_value = str_replace(',', '', $value['eva_total_value']);
if((int)$eva_total_value<=10000000){
$value['total_price_interval'] = '评估总值≤1000万';
}elseif((int)$eva_total_value>10000000 &&
(int)$eva_total_value<=30000000){
$value['total_price_interval'] = '评估总值1000万-3000万';
}elseif((int)$eva_total_value>30000000){
$value['total_price_interval'] = '评估总值3000万以上';
}
$result_data[] = $value;
$nod++;
}
}
if($result_data){
$indexKey = ['report_no', 'report_no_str', 'bank_name', 'bank_sub_name', 'city', 'area', 'full_estate_name_str', 'type_str', 'business_type_str', 'client', 'bank_type_str', 'eva_purpose', 'business_source_str', 'receivable', 'received', 'confirm_amount', 'uncollected_amount', 'check_amount', 'pay_type_str', 'is_simple_str', 'building_area', 'eva_total_value', 'eva_net_value', 'eva_net_value2', 'bank_customer_mgr_name', 'bank_customer_mgr_phone', 'user_name', 'survey_user_name', 'estate_num', 'usage', 'obligee', 'cert_no', 'property_cert', 'deed_number_string', 'purchase_date', 'e_case_code', 'report_completion_time', 'producer_name', 'reviewer_name', 'small_district_name', 'appraiser_name', 'results', 'remark', 'report_make_score', 'nod', 'obligee_bank', 'bank_estate', 'institution_name', 'bank_report_time', 'e_case_code', 'eva_total_value', 'total_price_interval', 'receivable', 'bank_sub_name', 'bank_customer_mgr_name'];
$indexValue = ['报告编号', '报告编号(带中文)', '银行', '支行', '城市', '城区', '物业名称', '业务类型', '是否对公(供综管部结单参考)', '委托方', '银行/非银', '评估目的', '业务来源', '应收金额', '实收金额', '确认金额', '未收金额', '结单金额', '结款方式', '是否简易报告', '面积', '评估总值', '评估净值1', '评估净值2', '客户经理', '客户经理电话', '业务员', '查勘员', '物业套数', '物业用途', '权利人', '权利人证件号码', '房产证号(一)', '房产证号(二)', '房产证登记日期', '电子提取码', '评估报告日期', '报告制作员', '报告审核员', '所在片区', '回价员', '个贷(对公)业绩', '备注', '报告制作评分', '序号', '房产所有人名称', '评估房产名称', '评估公司名称', '评估报告日期', '评估电子提取码', '评估总值/元', '评估总值所对应付费区间', '评估费用/元', '经办支行', '客户经理'];
(new ChargeManage())->exportExcel($result_data, 'CCB_order_'.date('Ymd'), $indexKey, $indexValue);
}
}
// 建行对账导出
// public function bankExportReconciliation() {
public function bankExport() {
$data = $this->getOrderData(['list_rows' => 10000000, 'page' => 1], 777);
$result_data = [];
$nod = 1;
foreach ($data['data'] as $key=>$value) {
if ($value['estate_num'] > 1) {
$report_id = Db::name('report')
->where(['report_no'=>$value['report_no']])
->value('id');
$multi_data = Db::name('report_detail')->alias('a')
->leftJoin('property_cert_info b', 'a.property_cert_info_id = b.id')
->where(['a.report_id'=>$report_id])
->field('
a.obligee,
b.property_full_name,
b.building_name,
b.building_no,
b.id as quot_id,
b.ownership_type
')
->select();
$temp = [];
foreach ($multi_data as $k=>$v) {
$return_data = Db::name('return_price')
->where(['property_cert_info_id'=>$v['quot_id']])
->field('eva_total_value')
->order(['id'=>'desc'])
->find();
// 权利人须隐藏一个字符,如:张*或张*丰建行对账要求2023-09-18
if (strpos($v['obligee'],",, , 、")!==false) {
$obligee_arr = explode("[,,、]", $v['obligee']);
$name = [];
foreach ($obligee_arr as $k_o=>$v_o) {
$name_arr = preg_split('/(?<!^)(?!$)/u', $v_o);
if (mb_strlen($v_o) != 3) {
if ($v['ownership_type']==2) {
$obligee = substr_replace($v_o, '***', 9, 9);
$name[] = $obligee;
} else {
$name[] = $name_arr[0] . '*';
}
} elseif (mb_strlen($v_o) == 3) {
$name[] = $name_arr[0] . '*' . $name_arr[2];
}
}
$multi_data[$k]['obligee_bank'] = implode("", $name);
} else {
$name = '';
$name_arr = preg_split('/(?<!^)(?!$)/u', $v['obligee']);
if (mb_strlen($v['obligee']) != 3) {
if ($v['ownership_type']==2) {
$name = substr_replace($v['obligee'], '***', 9, 9);
} else {
$name = $name_arr[0] . '*';
}
} elseif (mb_strlen($v['obligee']) == 3) {
$name = $name_arr[0] . '*' . $name_arr[2];
}
$multi_data[$k]['obligee_bank'] = $name;
}
$multi_data[$k]['eva_total_value'] = $return_data['eva_total_value'];
$multi_data[$k]['bank_estate'] = $v['building_name'].(!empty($v['building_no'])?$v['building_no']:'');
}
$temp['nod'] = $nod;
$temp['obligee_bank'] = implode('、', array_unique(array_column($multi_data, 'obligee_bank')));
$temp['bank_estate'] = implode('、', array_column($multi_data, 'bank_estate'));
$temp['institution_name'] = '深圳市国中资产土地房地产评估有限公司';
$temp['bank_report_time'] = date('Y/m/d', strtotime($value['report_completion_time']));
$temp['e_case_code'] = $value['e_case_code'];
$eva_total_value = array_sum(array_column($multi_data, 'eva_total_value'));
$temp['eva_total_value'] = number_format($eva_total_value);
if($eva_total_value<=10000000){
$temp['total_price_interval'] = '评估总值≤1000万';
}elseif($eva_total_value>10000000 && $eva_total_value<=30000000){
$temp['total_price_interval'] = '评估总值1000万-3000万';
}elseif($eva_total_value>30000000){
$temp['total_price_interval'] = '评估总值3000万以上';
}
$temp['receivable'] = $value['receivable'];
$temp['bank_sub_name'] = trim($value['bank_sub_name']);
$temp['bank_customer_mgr_name'] = trim($value['bank_customer_mgr_name']);
$temp['beizhu'] = '多套';
$temp['eva_unit_price'] = $value['eva_unit_price'];
$temp['estate_area'] = $value['estate_area'];
$result_data[] = $temp;
$nod++;
} else {
$value['nod'] = $nod;
if (strpos($value['obligee'],",, , 、")!==false) {
$obligee_arr = explode("[,,、]", $value['obligee']);
$name = [];
foreach ($obligee_arr as $k_o=>$v_o) {
$name_arr = preg_split('/(?<!^)(?!$)/u', $v_o);
if (mb_strlen($v_o) != 3) {
if ($value['ownership_type']==2) {
$obligee = substr_replace($v_o, '***', 9, 9);
$name[] = $obligee;
} else {
$name[] = $name_arr[0] . '*';
}
} elseif (mb_strlen($v_o) == 3) {
$name[] = $name_arr[0] . '*' . $name_arr[2];
}
}
$value['obligee_bank'] = implode("", $name);
} else {
$name = '';
$name_arr = preg_split('/(?<!^)(?!$)/u', $value['obligee']);
if (mb_strlen($value['obligee']) != 3) {
if ($value['ownership_type']==2) {
$name = substr_replace($value['obligee'], '***', 9, 9);
} else {
$name = $name_arr[0] . '*';
}
} elseif (mb_strlen($value['obligee']) == 3) {
$name = $name_arr[0] . '*' . $name_arr[2];
}
$value['obligee_bank'] = $name;
}
$value['institution_name'] = '深圳市国中资产土地房地产评估有限公司';
$value['bank_report_time'] = date('Y/m/d', strtotime($value['report_completion_time']));
$eva_total_value = str_replace(',', '', $value['eva_total_value']);
if((int)$eva_total_value<=10000000){
$value['total_price_interval'] = '评估总值≤1000万';
}elseif((int)$eva_total_value>10000000 &&
(int)$eva_total_value<=30000000){
$value['total_price_interval'] = '评估总值1000万-3000万';
}elseif((int)$eva_total_value>30000000){
$value['total_price_interval'] = '评估总值3000万以上';
}
$value['beizhu'] = '';
$result_data[] = $value;
$nod++;
}
}
if($result_data){
$indexKey = ['nod', 'obligee_bank', 'bank_estate', 'institution_name', 'bank_report_time', 'e_case_code', 'eva_total_value', 'total_price_interval', 'receivable', 'bank_sub_name', 'bank_customer_mgr_name', 'beizhu', 'estate_area', 'eva_unit_price'];
$indexValue = ['序号', '房产所有人名称', '评估房产名称', '评估公司名称', '评估报告日期', '评估电子提取码', '评估总值/元', '评估总值所对应付费区间', '评估费用/元', '经办支行', '客户经理', '备注', '面积', '评估单价'];
(new ChargeManage())->exportExcel($result_data, 'CCB_Reconciliation_'.date('Ymd'), $indexKey, $indexValue);
}
}
public function index()
{
$map = [];
$flag = true;
$bank_id = $this->request->param('bank');
if (!empty($bank_id)) {
$map[] = ['bank_id', '=', $bank_id];
}
$start_time = $this->request->param('report_start_time');
$end_time = $this->request->param('report_file_produce_time');
if (!empty($start_time)) {
$map[] = ['report_completion_time', '>', $start_time];
}
if (!empty($end_time)) {
$map[] = ['report_completion_time', '<', $end_time];
}
if (!empty($start_time) && !empty($end_time) && $start_time>$end_time) {
$flag = false;
}
// 银行
$bank_data = Db::name('bank')->where(['type'=>1, 'status'=>1])->select();
$count = Db::name('charge')->where($map)->count();
$this->assign(
'data',
[
'count'=>$count,
'bank_data'=>$bank_data,
'report_start_time'=>$start_time?$start_time:'',
'report_file_produce_time'=>$end_time?$end_time:'',
'bank'=>$bank_id?$bank_id:0,
'flag'=>$flag
]
);
return view();
}
// 房产信息解析方法
public function analyzingPropertyInformation($property_cert) {
$return_data = [];
$consult_obj = new Consultfiles;
if (strpos($property_cert, '-') !== false) {
$deed_number_arr = explode('-', $property_cert);
$param = ['proveCode1'=>$deed_number_arr[0], 'proveCode2'=>$deed_number_arr[1]];
} else {
$param = ['proveCode'=>$property_cert];
}
$res = $consult_obj->Consultfiles($param);
$return_data['property_status'] = $res['code']==1?$res['estatestatus']:'没有房产';
$return_data['mortgagee'] = '';
$return_data['mortgage_date'] = '';
$result_text = $res['result']['data'][0]['printResult'];
if ($return_data['property_status'] != '没有房产') {
$result_text_arr = explode('【产权信息】', $result_text);
if (strpos($result_text_arr[1], '状态为:') !== false) {
$property_status_arr = explode('状态为:', $result_text_arr[1]);
if (strpos($property_status_arr[1], '') !== false) {
$property_info_arr = explode('', $property_status_arr[1]);
if ($property_info_arr[0] == '抵押') {
if (strpos($property_info_arr[1], '抵押权人:') !== false) {
$mortgagee_arr = explode('抵押权人:', $property_info_arr[1]);
unset($mortgagee_arr[0]);
$mortgagee_data = [];
foreach ($mortgagee_arr as $key=>$value) {
$mortgagee_date_arr = explode('抵押日期:', $value);
$mortgagee_data[trim($mortgagee_date_arr[0])] = trim($mortgagee_date_arr[1]);
}
$return_data['mortgage_date'] = max($mortgagee_data);
$return_data['mortgagee'] = array_search($return_data['mortgage_date'], $mortgagee_data);
}
} elseif ($property_info_arr[0] == '抵押查封') {
if (strpos($property_info_arr[1], '查封机关:') !== false) {
$mortgagee_arr = explode('查封机关:', $property_info_arr[1]);
unset($mortgagee_arr[0]);
$mortgagee_data = [];
foreach ($mortgagee_arr as $key=>$value) {
$mortgagee_date_arr = explode('查封日期:', $value);
$mortgagee_data[trim($mortgagee_date_arr[0])] = trim($mortgagee_date_arr[1]);
}
$return_data['mortgage_date'] = max($mortgagee_data);
$return_data['mortgagee'] = array_search($return_data['mortgage_date'], $mortgagee_data);
}
}
}
}
}
return $return_data;
}
// 批量查档导出
public function chaDangExport() {
$data = $this->getOrderData(['list_rows' => 200, 'page' => 1]);
$result_data = [];
foreach ($data['data'] as $key=>$value) {
if ($value['estate_num'] > 1) {
$report_id = Db::name('report')
->where(['report_no'=>$value['report_no']])
->value('id');
$multi_data = Db::name('report_detail')
->alias('a')
->leftJoin('property_cert_info b', 'a.property_cert_info_id = b.id')
->where(['a.report_id'=>$report_id])
->field('
a.building_area,
a.obligee,
a.cert_no,
a.property_cert,
a.purchase_date,
a.small_district_name,
b.property_full_name,
b.year,
b.usage,
b.id as quot_id,
b.survey_user_name
')
->select();
$temp = [];
foreach ($multi_data as $k=>$v) {
$return_data = Db::name('return_price')
->where(['property_cert_info_id'=>$v['quot_id']])
->field('
eva_total_value,
eva_net_value,
eva_net_value2,
appraiser_name
')
->order(['id'=>'desc'])
->find();
$temp['cid'] = $value['cid'];
$temp['report_no'] = $value['report_no'];
$temp['building_name'] = $v['property_full_name'];
$temp['bank_name'] = $value['bank_name'];
$temp['bank_branch_name'] = $value['bank_branch_name'];
$temp['bank_sub_name'] = $value['bank_sub_name'];
$temp['city'] = $value['city'];
$temp['area'] = $value['area'];
$temp['type'] = $value['type'];
$temp['eva_purpose'] = $value['eva_purpose'];
$temp['order_src'] = $value['order_src'];
if ($k == 0) {
$temp['receivable'] = $value['receivable'];
$temp['received'] = $value['received'];
$temp['confirm_amount'] = $value['confirm_amount'];
$temp['uncollected_amount'] = $value['uncollected_amount'];
$temp['check_amount'] = $value['check_amount'];
} else {
$temp['receivable'] = 0;
$temp['received'] = 0;
$temp['confirm_amount'] = 0;
$temp['uncollected_amount'] = 0;
$temp['check_amount'] = 0;
}
$temp['account_manager_id'] = $value['account_manager_id'];
$temp['bank_customer_mgr_name'] = $value['bank_customer_mgr_name'];
$temp['user_name'] = $value['user_name'];
$temp['obligee'] = $v['obligee'];
$temp['property_cert'] = $v['property_cert'];
$temp['cert_no'] = $v['cert_no'];
$temp['purchase_date'] = $v['purchase_date'];
$temp['e_case_code'] = $value['e_case_code'];
$temp['produce_time'] = $value['produce_time'];
$temp['building_area'] = $v['building_area'];
$temp['eva_total_value'] = $return_data['eva_total_value'];
$temp['eva_net_value'] = $return_data['eva_net_value'];
$temp['eva_net_value2'] = $return_data['eva_net_value2'];
$temp['survey_user_name'] = $v['survey_user_name'];
$temp['type_str'] = $value['type_str'];
$temp['property_full_name'] = $value['property_full_name'];
$temp['full_estate_name_str'] = $v['property_full_name'];
$temp['business_source_str'] = $value['business_source_str'];
$temp['estate_num'] = $value['estate_num'];
$temp['report_completion_time'] = $value['report_completion_time'];
$temp['bank_customer_mgr_phone'] = $value['bank_customer_mgr_phone'];
$temp['producer_name'] = $value['producer_name'];
$temp['small_district_name'] = $v['small_district_name'];
$temp['appraiser_name'] = $return_data['appraiser_name'];
$temp['usage'] = getDictionaryName('HOUSE_USAGE', $v['usage']);
$temp['results'] = $value['results'];
$estate_info = $this->analyzingPropertyInformation($v['property_cert']);
$temp['property_status'] = $estate_info['property_status'];
$temp['mortgagee'] = $estate_info['mortgagee'];
$temp['mortgage_date'] = $estate_info['mortgage_date'];
$result_data[] = $temp;
}
} else {
$estate_info = $this->analyzingPropertyInformation($value['property_cert']);
$value['property_status'] = $estate_info['property_status'];
$value['mortgagee'] = $estate_info['mortgagee'];
$value['mortgage_date'] = $estate_info['mortgage_date'];
$result_data[] = $value;
}
sleep(0.5); // 暂停0.5秒
}
if($result_data){
$indexKey = [
'report_no',
'property_status',
'mortgagee',
'mortgage_date',
'bank_name',
'bank_sub_name',
'city',
'area',
'full_estate_name_str',
'type_str',
'eva_purpose',
'business_source_str',
'receivable',
'received',
'confirm_amount',
'uncollected_amount',
'check_amount',
'pay_type',
'building_area',
'eva_total_value',
'eva_net_value',
'eva_net_value2',
'bank_customer_mgr_name',
'bank_customer_mgr_phone',
'user_name',
'survey_user_name',
'estate_num',
'usage',
'obligee',
'cert_no',
'property_cert',
'purchase_date',
'e_case_code',
'report_completion_time',
'producer_name',
'small_district_name',
'appraiser_name',
'results'
];
$indexValue = [
'报告编号',
'产权状态',
'抵押权人(银行)',
'抵押日期',
'银行',
'支行',
'城市',
'城区',
'物业名称',
'业务类型',
'评估目的',
'业务来源',
'应收金额',
'实收金额',
'确认金额',
'未收金额',
'结单金额',
'结款方式',
'面积',
'评估总值',
'评估净值1',
'评估净值2',
'客户经理',
'客户经理电话',
'业务员',
'查勘员',
'物业套数',
'物业用途', '权利人',
'权利人证件号码',
'房产证号',
'房产证登记日期',
'电子提取码',
'评估报告日期',
'报告制作员',
'所在片区',
'回价员',
'个贷(对公)业绩'
];
(new ChargeManage())->exportExcel(
$result_data,
'chadang_'.date('Ymd'),
$indexKey,
$indexValue
);
}
}
public function getOrderData($paginate = [], $bank_id = 0) {
$map = [];
// $map[] = ['is_simple', '=', 0];
$bank = $this->request->param('bank');
if (!empty($bank) && $bank_id == 0) {
$map[] = ['bank_id', '=', $bank];
} elseif ($bank_id != 0) {
$map[] = ['bank_id', '=', $bank_id];
}
$city = $this->request->param('city');
if (!empty($city)) {
$map[] = ['city_id', '=', $city];
}
$area = $this->request->param('area');
if (!empty($area)) {
$map[] = ['region_id', '=', $area];
}
$type = $this->request->param('type');
if (!empty($type)) {
$map[] = ['inquiry_type', '=', $type];
}
$property_full_name = $this->request->param('property_full_name');
if (!empty($property_full_name)) {
$map[] = ['building_name|report_no', 'like', '%'.$property_full_name.'%'];
}
$user_name = $this->request->param('user_name');
if (!empty($user_name)) {
$map[] = ['salesman_name', 'like', '%'.$user_name.'%'];
}
$start_time = $this->request->param('report_start_time');
if (!empty($start_time)) {
$map[] = ['report_completion_time', '>', $start_time . ' 00:00:00'];
}
$end_time = $this->request->param('report_file_produce_time');
if (!empty($end_time)) {
$map[] = ['report_completion_time', '<', $end_time . ' 23:59:59'];
}
$field = [
'charge_id as cid',
'order_no',
'report_no',
'building_name',
'estate_num',
'bank_id',
'bank as bank_name',
'bank_branch as bank_branch_name',
'bank_sub_branch as bank_sub_name',
'city',
'region as area',
'inquiry_type as type',
'assessment_purpose as eva_purpose',
'order_src',
'receivable',
'received',
'confirm_amount',
'uncollected_amount',
'check_amount',
'pay_type',
'business_type',
'is_simple',
'account_manager_id',
'account_manager_name as bank_customer_mgr_name',
'salesman_name as user_name',
'obligee',
'property_cert',
'cert_no',
'purchase_date',
'report_code as e_case_code',
'report_completion_time as produce_time',
'estate_area as building_area',
'eva_unit_price',
'assessment_total as eva_total_value',
'assessment_net_total_one as eva_net_value',
'assessment_net_total_two as eva_net_value2',
'survey_user_name',
'remark'
];
$data = Db::name('charge')
->where($map)
->field($field)
->paginate($paginate)
->each(function ($item,$key){
$code = '';
if ($item['city'] == '北京') {
$code = 'B';
} elseif ($item['city'] == '武汉') {
$code = 'C';
} else {
$code = 'A';
}
$year = mb_substr($item['report_no'], 0, 4);
$numberings = mb_substr($item['report_no'], 4, 10);
$suffix = mb_substr($item['report_no'], 14);
$item['report_no_str'] = '深国中评字['.$year.$code.']第'.$numberings.'号'.$suffix;//估价报告编号
$item['type_str'] = getDictionaryName('INQUIRY_TYPE', $item['type']);
$item['property_full_name'] = [];
$item['full_estate_name_str'] = $item['building_name'];
$item['business_source_str'] = getDictionaryName('BUSINESS_SOURCE', $item['order_src']);
// $item['estate_num'] = 1;
$item['report_completion_time'] = date('Y-m-d', strtotime($item['produce_time']));
$item['pay_type_str'] = $item['pay_type']==1?'月结':'个人自行付费';
$item['business_type_str'] = $item['business_type']==2?'是':'否';
$item['is_simple_str'] = $item['is_simple']==1?'是':'否';
$bank_data = Db::name('bank')->where('id='.$item['bank_id'])->find();
dump($item['bank_id']);
die;
$item['bank_type_str'] = $bank_data['bank_type']==1?'银行':'非银';
if(!empty($item['building_name'])){
$temp['show'] = explode(',',$item['building_name'])[0];
$temp['list'] = explode(',',$item['building_name']);
// $item['estate_num'] = count($temp['list']);
$item['property_full_name']=$temp;
}
if (strpos($item['building_area'], '/')!==false) {
$item['estate_area'] = $item['building_area'];
$area_arr = explode('/', $item['building_area']);
$item['building_area'] = number_format(array_sum($area_arr));
}else{
$item['estate_area'] = $item['building_area'];
}
if (strpos($item['eva_total_value'], '/')!==false) {
$item['eva_total_value'] = str_replace(',', '', $item['eva_total_value']);
$total_price_arr = explode('/', $item['eva_total_value']);
$item['eva_total_value'] = number_format(array_sum($total_price_arr));
}
// $customer_info = Db::name('account_manager')->where(['id'=>$item['account_manager_id']])->field('mobile')->find();
// $item['bank_customer_mgr_phone'] = $customer_info['mobile'];
$item['bank_customer_mgr_phone'] = $item['account_manager_id'] ? Db::name('account_manager')->where(['id'=>$item['account_manager_id']])->value('mobile') : '';
// 导出需要新增报告制作人字段
// $producer_name = Db::name('report')->where(['report_no'=>$item['report_no']])->value('producer_name');
$producer_name = Db::name('report')->where(['report_no'=>$item['report_no']])->field('id,quot_id,producer_name,reviewer_name,company,valuation_time,appraisal_time,appraiser_id,appraiser_name,appraiser2_id,appraiser2_name')->find();
$item['company'] = $producer_name['company'];
$item['valuation_time'] = $producer_name['valuation_time'];
$item['appraisal_time'] = $producer_name['appraisal_time'];
$item['certificate_number'] = $producer_name['appraiser_id'] ? Db::name('valuer')->where('id='.$producer_name['appraiser_id'])->value('certificate_number') : '';
$item['appraiser_name'] = $producer_name['appraiser_name'];
$item['certificate_number_two'] = $producer_name['appraiser2_id'] ? Db::name('valuer')->where('id='.$producer_name['appraiser2_id'])->value('certificate_number') : '';
$item['appraiser2_name'] = $producer_name['appraiser2_name'];
if ($producer_name) {
$item['producer_name'] = $producer_name['producer_name'];
$item['reviewer_name'] = $producer_name['reviewer_name'];
// 获取小片区
$small_district_name = Db::name('report_detail')->where(['report_id'=>$producer_name['id']])->field('small_district_name,client,parcel_area,land_location,building_name as e_name,use_right_source,max_land_use_years,land_use_start_time,house_use,test_method')->select();
if (count($small_district_name) > 1) {
$item['small_district_name'] = implode('/', array_column($small_district_name, 'small_district_name'));
$item['parcel_area'] = implode('/', array_column($small_district_name, 'parcel_area'));
$item['land_location'] = implode('、', array_column($small_district_name, 'land_location'));
$item['e_name'] = implode('、', array_column($small_district_name, 'e_name'));
$item['use_right_source'] = implode('、', array_column($small_district_name, 'use_right_source'));
$item['max_land_use_years'] = implode('/', array_column($small_district_name, 'max_land_use_years'));
$item['land_use_start_time'] = implode('/', array_column($small_district_name, 'land_use_start_time'));
$item['house_use'] = implode('/', array_column($small_district_name, 'house_use'));
$item['test_method'] = implode('/', array_column($small_district_name, 'test_method'));
$client_name = [];
foreach ($small_district_name as $k_c=>$v_c) {
$client_name[] = $v_c['client'];
}
$item['client'] = implode('、', array_unique($client_name)); // 估价委托人
} elseif (count($small_district_name) == 1) {
$item['small_district_name'] = $small_district_name[0]['small_district_name'];
$item['client'] = $small_district_name[0]['client'];
$item['parcel_area'] = $small_district_name[0]['parcel_area'];
$item['land_location'] = $small_district_name[0]['land_location'];
$item['e_name'] = $small_district_name[0]['e_name'];
$item['use_right_source'] = $small_district_name[0]['use_right_source'];
$item['max_land_use_years'] = $small_district_name[0]['max_land_use_years'];
$item['land_use_start_time'] = $small_district_name[0]['land_use_start_time'];
$item['house_use'] = $small_district_name[0]['house_use'];
$item['test_method'] = $small_district_name[0]['test_method'];
}
// 获取回价人
$item['appraiser_name'] = '';
$appraiser_names = [];
$item['property_cert'] = '';
$item['deed_number_string'] = '';
$deed_numbers = [];
$deed_number_strings = [];
$item['usage'] = '';
$usages = [];
$areas = [];
$tenure_types = [];
$bank_estates = [];
$inquiry_detail_ids = [];
$property_cert_info = Db::name('property_cert_info')->where(['quot_id'=>$producer_name['quot_id']])->field('id,year,usage,ownership_type,building_name,building_no')->select();
foreach ($property_cert_info as $k=>$v) {
//回价人取第一个回价的人-2021-11-23修改2022-05-05再还原
$appraiser_name = Db::name('return_price')->where(['property_cert_info_id'=>$v['id']])->order('id asc')->value('appraiser_name');
$appraiser_names[] = $appraiser_name;
$property_cert = Db::name('report_detail')->where(['property_cert_info_id'=>$v['id']])->value('property_cert');
$deed_numbers[] = !empty($v['year']) ? $v['year'].'-'.$property_cert : $property_cert;
$deed_number_strings[] = !empty($v['year']) ? '粤('.$v['year'].')深圳市不动产权第'.$property_cert.'号' : '深房地字第'.$property_cert.'号';
$usages[] = getDictionaryName('HOUSE_USAGE', $v['usage']);
$area = Db::name('survey')->where(['property_cert_info_id'=>$v['id']])->value('area');
$areas[] = $area;
$tenure_types[] = $v['ownership_type'];
$bank_estates[] = $v['building_name'].(!empty($v['building_no'])?$v['building_no']:'');
$inquiry_detail_ids[] = $v['id'];
}
$inquiry_detail_ids_str = null;
if (count($inquiry_detail_ids) > 1) {
$inquiry_detail_ids_str = implode(',', $inquiry_detail_ids);
} elseif (count($inquiry_detail_ids) == 1) {
$inquiry_detail_ids_str = $inquiry_detail_ids[0];
}
if( null != $inquiry_detail_ids_str )
{
$score_where[] = ['property_cert_info_id', 'in', $inquiry_detail_ids_str];
$report_make_score = Db::name('approval_opinion')->field('second_instance_opinion')->where($score_where)->find();
$item['report_make_score'] = is_numeric($report_make_score['second_instance_opinion']) ? $report_make_score['second_instance_opinion'] : '';
}
if (count($appraiser_names) > 1) {
$item['appraiser_name'] = implode('/', $appraiser_names);
} elseif (count($appraiser_names) == 1) {
$item['appraiser_name'] = $appraiser_names[0];
}
if (count($deed_numbers) > 1) {
$item['property_cert'] = implode('/', $deed_numbers);
$item['deed_number_string'] = implode('/', $deed_number_strings);
} elseif (count($deed_numbers) == 1) {
$item['property_cert'] = $deed_numbers[0];
$item['deed_number_string'] = $deed_number_strings[0];
}
if (count($usages) > 1) {
$item['usage'] = implode('/', $usages);
} elseif (count($usages) == 1) {
$item['usage'] = $usages[0];
}
if (count($tenure_types) > 1) {
$item['ownership_type'] = implode('/', $tenure_types);
} elseif (count($tenure_types) == 1) {
$item['ownership_type'] = $tenure_types[0];
}
if (count($bank_estates) > 1) {
$item['bank_estate'] = implode('/', $bank_estates);
} elseif (count($bank_estates) == 1) {
$item['bank_estate'] = $bank_estates[0];
}
if (count($areas) > 1) {
$item['area'] = implode('/', $areas);
} else {
if(count($areas) >0 ){
$item['area'] = $areas[0];
}
else{
trace("bill.php: area 无数据!","error");
}
}
} else {
$item['producer_name'] = '';
$item['small_district_name'] = '';
$item['parcel_area'] = '';
$item['land_location'] = '';
$item['e_name'] = '';
$item['use_right_source'] = '';
$item['max_land_use_years'] = '';
$item['land_use_start_time'] = '';
$item['house_use'] = '';
}
if ($item['type'] == 1) {
$item['results'] = '胡轩';
} else {
$item['results'] = '欧汉奇';
}
return $item;
})->toArray();
// dump(Db::name('charge')->getLastSql());
$data['count'] = $data['total'];
return $data;
}
// 转换付款方式修改字段pay_type的值
public function editPayType() {
$charge_id = $this->request->param('charge_id'); // 必须
if (empty($charge_id)) {
return $this->buildFailed('参数charge_id的值不能为空');
}
$pay_type = $this->request->param('pay_type'); // 必须
if ($pay_type!=1 && $pay_type!=2) {
return $this->buildFailed('参数pay_type的值不正确');
}
// 获取费用表相关字段信息
$charge_data = Db::name('charge')
->where(['charge_id'=>$charge_id])
->field('report_no')
->find();
if (!$charge_data) {
return $this->buildFailed('没有找到相关记录!');
}
// 启动事务
Db::startTrans();
// 更新费用表pg_charge的字段pay_type的值
$upd_charge = Db::name('charge')
->where(['charge_id'=>$charge_id])
->update(['pay_type'=>$pay_type]);
// 更新报告主表pg_report的字段pay_type的值
$upd_report = Db::name('report')
->where(['report_no'=>$charge_data['report_no']])
->update(['pay_type'=>$pay_type]);
if (!$upd_charge || !$upd_report) {
// 事务回滚
Db::rollback();
return $this->buildFailed('修改失败');
}
// 事务提交
Db::commit();
return $this->buildSuccess('', '修改成功!');
}
public function orderListOld(){
$bank=input('bank');
$city=input('city');
$area=input('area');
$type=input('type');
$property_full_name=input('property_full_name');
$user_name=input('user_name');
$start_time=input('report_start_time');
$end_time=input('report_file_produce_time');
if ($start_time && $end_time) {
if ($start_time > $end_time) {
$date_params = ['between', [$end_time.' 00:00:00', $start_time.' 23:59:59']];
} else if ($start_time < $end_time) {
$date_params = ['between', [$start_time.' 00:00:00', $end_time.' 23:59:59']];
} else {
$date_params = ['between', [$start_time.' 00:00:00', $end_time.' 23:59:59']];
}
} else {
$start_time && $date_params = ['egt', $start_time.' 00:00:00'];
$end_time && $date_params = ['elt', $end_time.' 23:59:59'];
}
$where=[];
$where['i.status']=8;
!empty($bank) && $where['i.bank_id']=$bank;
!empty($city) && $where['id.city_id']=$city;
!empty($area) && $where['rd.area_id']=$area;
!empty($type) && $where['i.type']=$type;
!empty($property_full_name) && $where['id.property_full_name']=['like','%'.$property_full_name.'%'];
!empty($user_name) && $where['i.user_name']=['like','%'.$user_name.'%'];
!empty($date_params) && $where['r.produce_time']=$date_params;
$order='';
$fields='c.charge_id as cid,i.id as iid,r.id as rid,c.report_no as order_no,i.bank_name,i.bank_branch_name,i.bank_sub_name,id.city,rd.area,i.type,i.eva_purpose,i.bank_customer_mgr_name,i.bank_customer_mgr_phone,i.user_name,rd.obligee,rd.cert_no,r.e_case_code,r.produce_time';
$res=Inquiry::getInquiryReportList($where,$fields,$this->getPage(),$order);
if($res){
return $this->buildSuccess(['list' => $res['data'], 'count' => $res['total']]);
}else{
return $this->buildFailed('查无数据');
}
}
public function exportOld(){
$bank=input('bank');
$city=input('city');
$area=input('area');
$type=input('type');
$property_full_name=input('property_full_name');
$user_name=input('user_name');
$start_time=input('report_start_time');
$end_time=input('report_file_produce_time');
if ($start_time && $end_time) {
if ($start_time > $end_time) {
$date_params = ['between', [$end_time.' 00:00:00', $start_time.' 23:59:59']];
} else if ($start_time < $end_time) {
$date_params = ['between', [$start_time.' 00:00:00', $end_time.' 23:59:59']];
} else {
$date_params = ['between', [$start_time.' 00:00:00', $end_time.' 23:59:59']];
}
} else {
$start_time && $date_params = ['egt', $start_time.' 00:00:00'];
$end_time && $date_params = ['elt', $end_time.' 23:59:59'];
}
$where=[];
$where['i.status']=8;
!empty($bank) && $where['i.bank_name']=$bank;
!empty($city) && $where['id.city']=$city;
!empty($area) && $where['rd.area']=$area;
!empty($type) && $where['i.type']=$type;
!empty($property_full_name) && $where['id.property_full_name']=['like','%'.$property_full_name.'%'];
!empty($user_name) && $where['i.user_name']=['like','%'.$user_name.'%'];
$order='';
$fields='i.id as iid,r.id as rid,c.report_no as order_no,i.bank_name,i.bank_branch_name,i.bank_sub_name,id.city,rd.area,i.type,i.eva_purpose,i.bank_customer_mgr_name,i.bank_customer_mgr_phone,i.user_name,rd.obligee,rd.cert_no,r.e_case_code,r.produce_time';
$res=Inquiry::getInquiryReportList($where,$fields,'',$order);
if($res){
$indexKey = ['order_no', 'bank_customer_mgr_name', 'city', 'area', 'full_estate_name_str', 'type_str', 'eva_purpose', 'building_area', 'eva_total_value', 'eva_net_value', 'eva_net_value2', 'bank_customer_mgr_name', 'bank_customer_mgr_phone', 'user_name', 'obligee', 'cert_no', 'property_cert', 'purchase_date', 'e_case_code', 'produce_time'];
$indexValue = ['报告编号', '银行', '城市', '城区', '物业名称', '业务类型', '评估目的', '面积', '评估总值', '评估净值1', '评估净值2', '客户经理', '客户经理电话', '业务员', '权利人', '权利人证件号码', '房产证号', '房产证登记日期', '电子提取码', '评估报告日期'];
(new ChargeManage())->exportExcel($res['data'], 'update_'.date('Ymd'), $indexKey, $indexValue);
// if(!empty($url)){
// return $this->buildSuccess($url);
// }else{
// return $this->buildFailed('导出失败');
// }
}
}
function pdf($html=array(),$title="",$fileName=""){
$util=new publicbankTemplate();
$res=$util->getdata('1');
// dump($res);
// $url=ROOT_PATH . 'public' . DS . 'uploads' . DS ."img\img_01.png";
// $url1=ROOT_PATH . 'public' . DS . 'uploads' . DS ."img\img_02.png";
// //设置了背景图片的类
// $pdf =new \TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);
// // 设置打印模式
// //设置文件信息,头部的信息设置
// $pdf->SetCreator(PDF_CREATOR);
// $pdf->SetAuthor("toppinggu");
// $pdf->SetTitle('12312');
// $pdf->SetSubject('TCPDF Tutorial');
// $pdf->SetKeywords('TCPDF, PDF, example, test, guide'); // 设置关键字
// $pdf->setPrintHeader(false);
// // $pdf->SetHeaderMargin('4'); // 页眉距离顶部的距离
// // $pdf->setPrintFooter(true); // 是否显示页脚
// // $pdf->setFooterData(array(0,64,0), array(0,64,128)); // 设置页脚显示的内容
// // $pdf->setFooterFont(Array('stsongstdlight', '', '10')); // 设置页脚的字体
// // $pdf->SetFooterMargin('10'); // 设置页脚距离底部的距离
// $pdf->SetDefaultMonospacedFont(PDF_FONT_MONOSPACED); // 设置默认等宽字体
// $pdf->setImageScale(1.25); // 设置图像比例因子
// // $pdf->setCellHeightRatio(1); // 设置行高
// $pdf->SetMargins('20', '0', '10'); // 设置左、上、右的间距
// $pdf->setImageScale(PDF_IMAGE_SCALE_RATIO); // 设置图像比例因子
// $pdf->setFontSubsetting(true); // 设置默认字体构造子集模式
// $pdf->AddPage("A4","Landscape",true,true); // 添加一个页面
// //设置背景(这样设置只能实现第一页背景图)
// // $img = file_get_contents('http://'.$_SERVER['HTTP_HOST'].'/branches/v2.0.4/vendor/images/logo.png');
// // $pdf->Image('@'.$img, 0, 0, 60, 60, '', '', '', false, 300, 'C', false, false, 1, false, false, true);
// $pdf->SetFont('stsongstdlight', '', 14, '', true); // 设置字体
// $pdf->writeHTML('');//HTML生成PDF //设置样式
// //PDF输出的方式。I在浏览器中打开D以文件形式下载F保存到服务器中S以字符串形式输出E以邮件的附件输出。
// $showType= 'F';
// //保存中文文件名的文件
// $pdf->Output(ROOT_PATH . 'public' . DS . 'uploads' . DS ."fileName.pdf", $showType);
}
/**
* 校验报告
*/
public function checkReportNo(){
$report_no = trim($this->request->post('report_no'));
if(!$report_no) return $this->buildFailed('参数错误');
if(!Db::name('report')->where(['report_no'=>$report_no])->find())
return $this->buildFailed('报告编号错误,无此报告');
if(Db::name('report')->alias('r')->join('inquiry i', 'r.quot_id = i.id')->where(['r.report_no'=>$report_no, 'i.is_simple'=>1])->find())
return $this->buildFailed('简易报告不可申请');
if(Db::name('report')->alias('r')->join('inquiry i', 'r.quot_id=i.id')->where(['r.report_no'=>$report_no])->value('i.status') != 8)
return $this->buildFailed('此报告未完成,不可申请');
if(Db::name('bill')->where('bill_status', '<>', 6)->where(['report_no'=>$report_no])->find())
return $this->buildFailed('已开票的报告不可重复提交开票');
return $this->buildSuccess();
}
/**
* 申请票据 - 获取相关信息
*/
public function getBill(){
$report_no = trim($this->request->post('report_no'));
if(!$report_no) return $this->buildFailed('参数错误');
$res = Db::name('report')->alias('r')
->field('group_concat(ide.property_full_name) as building_name, i.bank_name,i.bank_branch_name,i.bank_sub_name,i.order_no,
i.user_name,i.department_name,c.receivable as pay,c.confirm_amount as confirm_pay')
->join('inquiry i', 'r.quot_id = i.id')
->join('property_cert_info ide', 'i.id = ide.quot_id')
->join('charge c','c.order_no=i.order_no')
->group('i.id')
->where(['r.report_no'=>$report_no])
->find();
// $res['pay'] = '';
// $res['confirm_pay'] = '';
$res['paid_status'] = '';
return $this->buildSuccess($res);
}
/**
* 申请票据
*/
public function addBill(){
$data = $this->request->post();
if(!isset($data['bill_type']) || !$data['bill_type'])
return $this->buildFailed('参数错误');
//验证
$validate = new BillValidate();
if($data['bill_type'] == 1 && isset($data['invoice_type']) && $data['invoice_type'] == 3){ //企业专票
if (!$validate->scene('companyTicket')->check($data))
return $this->buildFailed($validate->getError());
}elseif($data['bill_type'] == 1 && isset($data['invoice_type']) && $data['invoice_type'] == 2){ //企业普票
if (!$validate->scene('companyGeneral')->check($data))
return $this->buildFailed($validate->getError());
}elseif($data['bill_type'] == 1 && isset($data['invoice_type']) && $data['invoice_type'] == 1){ //个人普票
if (!$validate->scene('personGeneral')->check($data))
return $this->buildFailed($validate->getError());
}elseif($data['bill_type'] == 2){ //票据
if (!$validate->scene('bill')->check($data))
return $this->buildFailed($validate->getError());
}else{
return $this->buildFailed('参数错误');
}
$data['user_id'] = $this->userInfo['user_id'];
$data['user_name'] = $this->userInfo['user_name'];
$data['bill_cate_type'] = $data['bill_cate'];
$result = (new BillModel())->addBill($data);
if(!$result)
return $this->buildFailed('申请票据失败');
// 获取询价id
$quot_id = Db::name('inquiry')->where(['order_no'=>$data['order_no']])->field('id')->find();
if ($data['bill_cate'] == 2) {
// 非常规开票写入消息
PublicMessage($quot_id['id'], 8, 23);
} else {
// 常规开票写入消息
PublicMessage($quot_id['id'], 8, 26);
}
return $this->buildSuccess();
}
}