提交 625b75eb authored 作者: 李大见's avatar 李大见
<?php
namespace App\Console\Commands;
use App\Http\Controllers\Api\JdOrderApiController;
use Illuminate\Console\Command;
class SynCancelAuditList extends Command
{
/**
* The name and signature of the console command.
*
* @var string
*/
protected $signature = 'SynCancelAuditList';
/**
* The console command description.
*
* @var string
*/
protected $description = 'Command SynCancelAuditList';
/**
* Create a new command instance.
*
* @return void
*/
public function __construct()
{
parent::__construct();
}
/**
* Execute the console command.
*
* @return mixed
*/
public function handle()
{
//
$getOrder = new JdOrderApiController();
$ret = $getOrder->getOrderCancelAuditList();
print_r($ret);
}
}
<?php
namespace App\Console\Commands;
use App\Http\Controllers\Api\JdOrderApiController;
use Illuminate\Console\Command;
class SynJdOrderApi extends Command
{
/**
* The name and signature of the console command.
*
* @var string
*/
protected $signature = 'getOrder';
/**
* The console command description.
*
* @var string
*/
protected $description = 'Command getJdOrder';
/**
* Create a new command instance.
*
* @return void
*/
public function __construct()
{
parent::__construct();
}
/**
* Execute the console command.
*
* @return mixed
*/
public function handle()
{
//
$getOrder = new JdOrderApiController();
$ret = $getOrder->getOrderByJd();
print_r($ret);
}
}
......@@ -18,7 +18,9 @@ class Kernel extends ConsoleKernel
Commands\GetJdSelfOrder::class,
Commands\GetJdSelfRefund::class,
Commands\GetJdSelfShhOrder::class,
Commands\DeductionFee::class
Commands\DeductionFee::class,
Commands\SynJdOrderApi::class,
Commands\SynCancelAuditList::class
];
/**
......@@ -33,10 +35,12 @@ class Kernel extends ConsoleKernel
// ->hourly();
$schedule->command('getOrder')->everyFiveMinutes();//每五分钟执行一次
$schedule->command('decJdOrder')->everyFiveMinutes();//每五分钟执行一次
$schedule->command('getJdSelfOrder')->everyFiveMinutes();//每五分钟执行一次
// $schedule->command('getJdSelfOrder')->everyFiveMinutes();//每五分钟执行一次
// $schedule->command('getJdSelfRefund')->everyFiveMinutes();//每五分钟执行一次
$schedule->command('GetJdSelfShhOrder')->everyFiveMinutes();//每五分钟执行一次
// $schedule->command('GetJdSelfShhOrder')->everyFiveMinutes();//每五分钟执行一次
$schedule->command('DeductionFee')->everyFiveMinutes();//每三十分钟执行一次 everyThirtyMinutes
$schedule->command('SynJdOrderApi')->everyFiveMinutes();// 抓取京东社会化门店订单 //每五分钟执行一次
$schedule->command('SynCancelAuditList')->everyFiveMinutes();// 抓取京东社会化门店退款单 //每五分钟执行一次
}
/**
......
......@@ -42,6 +42,7 @@ trait ExcelTemp
['action_name' => '账目中心发票导出', 'action_value' => 'InvoiceExcel'],//2022-3-15
['action_name' => '缴费扣费记录', 'action_value' => 'PayOverList'],//2024-10-09
['action_name' => '服务商绩效明细', 'action_value' => 'SerStatisticsDetail'],//2024-10-31
];
......@@ -61,7 +62,6 @@ trait ExcelTemp
['field_name' => '剩余金额', 'field_value' => 'residue_money'],//
],
//2022-3-4
'F6StoreOrder' => [
['field_name' => '编号', 'field_value' => 'id'],
......@@ -89,7 +89,6 @@ trait ExcelTemp
//['field_name' => '申请备注', 'field_value' => 'note'],///
],
//2022-2-8
'SettlementThree' => [
['field_name' => '编号', 'field_value' => 'id'],
......@@ -159,6 +158,7 @@ trait ExcelTemp
['field_name' => '账号状态', 'field_value' => 'enable'],
],*/
'StatementsList' => [
['field_name' => '编号', 'field_value' => 'stl_id'],
......@@ -182,7 +182,6 @@ trait ExcelTemp
['field_name' => '用友编码', 'field_value' => 'ser_yycode'],
],
'SettlementMouth' => [
['field_name' => '系统单号', 'field_value' => 'sys_num'],//1
......@@ -262,29 +261,31 @@ trait ExcelTemp
['field_name' => '服务商', 'field_value' => 'company_name'],//39
['field_name' => '第三方价格', 'field_value' => 'p_price'],//40
['field_name' => '服务技师', 'field_value' => 'intall_person'],//40
['field_name' => '第三方价格', 'field_value' => 'p_price'],//41
['field_name' => '第三方结算单号', 'field_value' => 'wat_three'],//41
['field_name' => '第三方结算单号', 'field_value' => 'wat_three'],//42
['field_name' => '第三方申请结算时间', 'field_value' => 'three_apply_for_time'],//42
['field_name' => '第三方申请结算时间', 'field_value' => 'three_apply_for_time'],//43
['field_name' => ' 第三方付款时间', 'field_value' => 'three_apply_pay_time'],//43
['field_name' => ' 第三方付款时间', 'field_value' => 'three_apply_pay_time'],//44
['field_name' => ' 用友编号', 'field_value' => 'ser_yycode'],//44
['field_name' => ' 用友编号', 'field_value' => 'ser_yycode'],//45
['field_name' => '扣除补货货款', 'field_value' => '249_titleid'],//45
['field_name' => '扣除补货货款', 'field_value' => '249_titleid'],//46
['field_name' => '姓名', 'field_value' => 'shr_name'],//46
['field_name' => '姓名', 'field_value' => 'shr_name'],//47
['field_name' => ' 省份', 'field_value' => 'shr_sheng'],//47
['field_name' => ' 省份', 'field_value' => 'shr_sheng'],//48
['field_name' => ' 城市', 'field_value' => 'shr_shi'],//48
['field_name' => ' 城市', 'field_value' => 'shr_shi'],//49
['field_name' => ' 区县', 'field_value' => 'shr_xian'],//49
['field_name' => ' 区县', 'field_value' => 'shr_xian'],//50
['field_name' => ' 详细地址', 'field_value' => 'shr_adress'],//50
['field_name' => ' 详细地址', 'field_value' => 'shr_adress'],//51
['field_name' => ' 结款类型', 'field_value' => 'mouth_pay'],//51 2022-05-05 dou
['field_name' => ' 结款类型', 'field_value' => 'mouth_pay'],//52 2022-05-05 dou
//['field_name' => '商品名称', 'field_value' => 'goods_name'],//4
......@@ -306,7 +307,6 @@ trait ExcelTemp
// ['field_name' => '姓名', 'field_value' => 'shr_name'],['field_name' => '订单金额 ', 'field_value' => 'all_price'],
],
'aftercust' => [
['field_name' => '编号', 'field_value' => 'afc_id'],
......@@ -477,7 +477,6 @@ trait ExcelTemp
['field_name' => '服务商属性', 'field_value' => 'brand_service'], // 2022-6-22 new add dou
],
'OrdersMsg' => [
//2022-5-12
['field_name' => '编号', 'field_value' => 'id'],
......@@ -509,10 +508,6 @@ trait ExcelTemp
['field_name' => '日', 'field_value' => 'creact_day'],
],
'ptthree' => [
['field_name' => '编号', 'field_value' => 'id'],
......@@ -621,7 +616,8 @@ trait ExcelTemp
],
/* 'SerInfor' => [
/* 'SerInfor' => [
['field_name' => '平台名称', 'field_value' => 'pt_name'],
......@@ -645,10 +641,6 @@ trait ExcelTemp
],*/
'SendGoods' => [
['field_name' => '序号', 'field_value' => 'id'],
......@@ -684,8 +676,6 @@ trait ExcelTemp
],
'WxBinding' => [
['field_name' => '服务器名称', 'field_value' => 'ser'],
......@@ -930,6 +920,22 @@ trait ExcelTemp
['field_name' => '公司名称', 'field_value' => 'com_name'],//
['field_name' => '支付状态', 'field_value' => 'reo_pay_state'],
],
'SerStatisticsDetail'=>[
['field_name' => '公司名称', 'field_value' => 'company_name', 'field_with' => 45],
['field_name' => '单号', 'field_value' => 'order_num', 'field_with' => 40],
['field_name' => '订单状态', 'field_value' => 'stauas', 'field_with' => 20],
['field_name' => '派单时间', 'field_value' => 'create_time', 'field_with' => 30],
['field_name' => '接单时间', 'field_value' => 'get_time', 'field_with' => 30],
['field_name' => '反馈时间', 'field_value' => 'feeds_time', 'field_with' => 30],
['field_name' => '接单时效', 'field_value' => 'jdAgeing', 'field_with' => 20],
['field_name' => '5分钟接单达标', 'field_value' => 'fiveStandard', 'field_with' => 20],
['field_name' => '10分钟接单达标', 'field_value' => 'tenStandard', 'field_with' => 20],
['field_name' => '施工时效', 'field_value' => 'sgAgeing', 'field_with' => 20],
['field_name' => '12小时履约达标', 'field_value' => 'Standard12Hours', 'field_with' => 20],
['field_name' => '24小时履约达标', 'field_value' => 'Standard24Hours', 'field_with' => 20],
['field_name' => '是否计入时效考核', 'field_value' => 'takeEffect', 'field_with' => 20],
]
];
......
<?php
namespace App\Exports;
use App\Models\Admin;
use App\Models\SetmoneyType;
use App\Services\DataStatisticsService;
use Chumper\Zipper\Zipper;
use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Writer\Xls;
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
use PhpOffice\PhpSpreadsheet\Style\Alignment;
use PhpOffice\PhpSpreadsheet\Style\Border;
use PhpOffice\PhpSpreadsheet\Style\Fill;
use PhpOffice\PhpSpreadsheet\IOFactory;
use App\Services\ExceloutService;
use PhpOffice\PhpSpreadsheet\Style\NumberFormat;
use DB;
class BasicExport
{
public function creacrExporSerStatistics( $data )
{
if(empty($data)){
return false;
}
$spreadsheet = new Spreadsheet();
$sheet = $spreadsheet->getActiveSheet();
$session = $data['session'];
// 设置表头样式
$styleArray = [
'borders' => [
'allBorders' => [
'borderStyle' => Border::BORDER_THIN, // 边框的样式
],
],
'alignment' => [
// 水平居中
'horizontal' => Alignment::HORIZONTAL_CENTER,
// 垂直居中
'vertical' => Alignment::VERTICAL_CENTER,
// 自动换行
// 'wrapText' => true
],
'font' => [
'bold' => true,
'name' => '微软雅黑',
'size'=>'12',
'color' => ['argb' => '000000'],
],
'fill' => [
'fillType' => Fill::FILL_SOLID,
'startColor' => ['argb' => 'ACB9CA'],
],
];
// 设置内容样式
$styleDataArray = [
'borders' => [
'allBorders' => [
'borderStyle' => Border::BORDER_THIN, // 边框的样式
],
],
'alignment' => [
// 水平居中
'horizontal' => Alignment::HORIZONTAL_CENTER,
// 垂直居中
'vertical' => Alignment::VERTICAL_CENTER,
// 自动换行
// 'wrapText' => true
],
'font' => [
'name' => '微软雅黑',
'size'=>'12',
'color' => ['argb' => '000000'],
],
];
// 合并单元格作为复杂表头
$sheet->mergeCells('A1:A2');
$sheet->setCellValue('A1', '序号');
$sheet->getStyle('A1:A2')->applyFromArray($styleArray);
$sheet->getStyle('A1')->getAlignment()->setHorizontal(Alignment::HORIZONTAL_CENTER);
$sheet->mergeCells('B1:B2');
$sheet->setCellValue('B1', '服务商(公司名称)');
$sheet->getStyle('B1:B2')->applyFromArray($styleArray);
$sheet->getStyle('B1')->getAlignment()->setHorizontal(Alignment::HORIZONTAL_CENTER);
$sheet->mergeCells('C1:H1');
$sheet->setCellValue('C1', $data['time']);
$sheet->getStyle('C1:H1')->applyFromArray($styleArray);
$sheet->getStyle('C1')->getAlignment()->setHorizontal(Alignment::HORIZONTAL_CENTER);
$sheet->setCellValue('C2', '总推送单量');
$sheet->setCellValue('D2', '接单量');
$sheet->setCellValue('E2', '拒单量');
$sheet->setCellValue('F2', '拒单率');
$sheet->setCellValue('G2', '接单时效');
$sheet->setCellValue('H2', '履约时效');
$sheet->getStyle('C2:H2')->applyFromArray($styleArray);
$sheet->getStyle('C2:H2')->getAlignment()->setHorizontal(Alignment::HORIZONTAL_CENTER);
$sheet->mergeCells('I1:N1');
$sheet->setCellValue('I1', '累计至今');
$sheet->getStyle('I1:N1')->applyFromArray($styleArray);
$sheet->getStyle('I1')->getAlignment()->setHorizontal(Alignment::HORIZONTAL_CENTER);
$sheet->setCellValue('I2', '总推送单量');
$sheet->setCellValue('J2', '接单量');
$sheet->setCellValue('K2', '拒单量');
$sheet->setCellValue('L2', '拒单率');
$sheet->setCellValue('M2', '接单时效');
$sheet->setCellValue('N2', '履约时效');
$sheet->getStyle('I2:N2')->applyFromArray($styleArray);
$sheet->getStyle('I2:N2')->getAlignment()->setHorizontal(Alignment::HORIZONTAL_CENTER);
// 填充其他数据
$num = 3;
$nums = 1;
$data = $data['data'];
foreach($data as $k => $v){
$sheet->setCellValue('A'.$num, $nums);
$sheet->setCellValue('B'.$num, $v['company_name']);
$sheet->setCellValue('C'.$num, $v['all_num']);
$sheet->setCellValue('D'.$num, $v['order_listnum']);
$sheet->setCellValue('E'.$num, $v['order_rejectednum']);
$sheet->setCellValue('F'.$num, $v['rejectRate']);
$sheet->setCellValue('G'.$num, $v['pdAgeing']);
$sheet->setCellValue('H'.$num, $v['sgAgeing']);
$sheet->setCellValue('I'.$num, $v['all_nums']);
$sheet->setCellValue('J'.$num, $v['order_listnums']);
$sheet->setCellValue('K'.$num, $v['order_rejectednums']);
$sheet->setCellValue('L'.$num, $v['rejectRates']);
$sheet->setCellValue('M'.$num, $v['pdAgeings']);
$sheet->setCellValue('N'.$num, $v['sgAgeings']);
$num++;
$nums++;
}
$sheet->getStyle('A3:N'.$num)->applyFromArray($styleDataArray);
$sheet->getColumnDimension('A')->setWidth(8);
$sheet->getColumnDimension('B')->setWidth(45);
$sheet->getColumnDimension('C')->setWidth(12);
$sheet->getColumnDimension('D')->setWidth(8);
$sheet->getColumnDimension('E')->setWidth(8);
$sheet->getColumnDimension('F')->setWidth(10);
$sheet->getColumnDimension('G')->setWidth(20);
$sheet->getColumnDimension('H')->setWidth(20);
$sheet->getColumnDimension('I')->setWidth(12);
$sheet->getColumnDimension('J')->setWidth(8);
$sheet->getColumnDimension('K')->setWidth(8);
$sheet->getColumnDimension('L')->setWidth(10);
$sheet->getColumnDimension('M')->setWidth(20);
$sheet->getColumnDimension('N')->setWidth(20);
$sheet -> getDefaultRowDimension() -> setRowHeight(24); //设置默认行高为28
$sheet->freezePane('A3');//冻结第二行
$allnum = count($data);
$el['el_action'] = 'getSerStatistics';//'Car';
$el['el_dataname'] = '服务商时效统计';//'车型数据';
$el['el_adminid'] = $session['id'];//'225';
$el['el_adminname'] = $session['admin_acc'];//'研发';
$el['el_creactime'] = date("Y-m-d H:i:s");
$el['el_path'] = 'excel/'.date("Ym").'/'.$el['el_action']."_".uniqid()."_".rand(111,999);
$el['el_sql'] = '';
$el['el_state'] = 2;
$el['el_allnum'] = $allnum;
$el['company_id'] = $session['company_id'];
$ed_elid = DB::table("excel_list")->insertGetId($el);
$excelname = uniqid().".xlsx";
$path = $el['el_path'].'/'.$excelname;
if (!file_exists($el['el_path'])) {
// 创建文件夹
mkdir($el['el_path'],0775,true);
chmod($el['el_path'],0775);
}
// 保存Excel文件
$writer = new Xlsx($spreadsheet);
$writer->save($path);
$zipper = new Zipper();
$arr = glob(public_path($el['el_path'])); //$public_path 被压缩的文件名
$reduce_path = $el['el_path'].'.zip';
$zipper->make(public_path($reduce_path))->add($arr)->close(); //public_path($reduce_path) 压缩之后 */
$zip = new \ZipArchive();
$zip->open($reduce_path);
return $ed_elid;
}
public function creacrExporHeader( $con,$res,$detail,$freezePane='A2' )
{
// 设置表头样式
$styleArray = [
'borders' => [
'allBorders' => [
'borderStyle' => Border::BORDER_THIN, // 边框的样式
],
],
'alignment' => [
// 水平居中
'horizontal' => Alignment::HORIZONTAL_CENTER,
// 垂直居中
'vertical' => Alignment::VERTICAL_CENTER,
// 自动换行
// 'wrapText' => true
],
'font' => [
'bold' => true,
'name' => '微软雅黑',
'size'=>'12',
'color' => ['argb' => '000000'],
],
'fill' => [
'fillType' => Fill::FILL_SOLID,
'startColor' => ['argb' => 'ACB9CA'],
],
];
// 设置内容样式
$styleDataArray = [
'borders' => [
'allBorders' => [
'borderStyle' => Border::BORDER_THIN, // 边框的样式
],
],
'alignment' => [
// 水平居中
'horizontal' => Alignment::HORIZONTAL_CENTER,
// 垂直居中
'vertical' => Alignment::VERTICAL_CENTER,
// 自动换行
// 'wrapText' => true
],
'font' => [
'name' => '微软雅黑',
'size'=>'12',
'color' => ['argb' => '000000'],
],
];
$adg_data = DB::table('admin_excel')->where(['adg_admin'=>$res['el_adminid'],'adg_action'=>$con])->value('adg_data');
$adg_data = json_decode($adg_data,true);
//dump($adg_data);
if (!Empty($adg_data)){
foreach ($adg_data as $k =>$v){
$field_value[] = $v['field_value'];
$excel_name[$v['field_value']] = $v['field_name'];
$field_with[$v['field_value']] = $v['field_with'];
}
}else{
return false;
}
$group = $field_value;
$file = $res['el_path']."/".$detail['ed_excelname'];
if (!file_exists($file)) {
$spreadsheet = new Spreadsheet();
$sheet = $spreadsheet->getActiveSheet();
$title = self::getHeaderTitle();
foreach( $group as $kg => $vg ){
$sheet->setCellValue($title[$kg].'1', self::getTitleName($excel_name, $vg));
$sheet->getStyle($title[$kg].'1')->applyFromArray($styleArray);
$sheet->getStyle($title[$kg].'1')->getAlignment()->setHorizontal(Alignment::HORIZONTAL_CENTER);
$sheet->getColumnDimension($title[$kg])->setWidth($field_with[$vg]);
}
$sheet -> getDefaultRowDimension() -> setRowHeight(24); //设置默认行高为28
$sheet->freezePane($freezePane);//冻结第二行
$writer = new Xls($spreadsheet);
$writer->save($file);
}
$db = self::creactWhere($res['el_sql'],$detail['ed_offset'],$detail['ed_limit']);
$db = ltrim($db,' " ');
$db = DB::select($db);
$data['db'] = $db;
$data['group'] = $group;
$data['file'] = $file;
return $data;
}
/**|---------------------------------------------------------------------------------
* @name 添加表格数据
* @param string $file 文件地址
* @param string $data 待添加数据
* @param string $group 表格权限
* @retrun \Illuminate\Http\JsonResponse
* @author dou 2024/11/1 17:30
* |---------------------------------------------------------------------------------
*/
public function addExceleDara ( $res, $detail, $file, $db, $group ){
// 设置内容样式
$styleDataArray = [
'borders' => [
'allBorders' => [
'borderStyle' => Border::BORDER_THIN, // 边框的样式
],
],
'alignment' => [
// 水平居中
'horizontal' => Alignment::HORIZONTAL_CENTER,
// 垂直居中
'vertical' => Alignment::VERTICAL_CENTER,
// 自动换行
// 'wrapText' => true
],
'font' => [
'name' => '微软雅黑',
'size'=>'12',
'color' => ['argb' => '000000'],
],
];
if (file_exists($file)) {
$spreadsheet = IOFactory::load($file);
} else {
$spreadsheet = new Spreadsheet();
}
$sheet = $spreadsheet->getActiveSheet();
$highestRow = $sheet->getHighestRow();//获取表格数据行数
// return $highestRow;
$num1 = count($db);
$admindata = Admin::whereRaw("((company_id='".$res['company_id']."' and admin_groupnew=2) or admin_groupnew=3)")
->pluck('company_name','id');
$statusName = ['10'=>'未接单','20'=>'未接单','30'=>'安装中','34'=>'待审核','40'=>'已完成','50'=>'已撤销','55'=>'已撤销(补邮费)'];
$return = [];
$title = self::getHeaderTitle();
foreach( $db as $k => $v ){
$return[$k]['company_name'] = $admindata[$v['ser_id']];//公司名称
$return[$k]['order_num'] = $v['order_num'];//订单单号
$return[$k]['stauas'] = $statusName[$v['stauas']];//订单状态
$return[$k]['create_time'] = $v['create_time'];//派单时间
$return[$k]['get_time'] = $v['get_time'];//接单时间
$return[$k]['feeds_time'] = $v['feeds_time'];//反馈时间
if($v['get_time'] != '' && $v['get_time'] != '0000-00-00 00:00:00'){
$return[$k]['jdAgeing'] = DataStatisticsService::Compute_Time($v['jdtime']);//接单时效
if($v['jdtime']<300){
$return[$k]['fiveStandard'] = '达标';//5分钟接单达标
}else{
$return[$k]['fiveStandard'] = '不达标';//5分钟接单达标
}
if($v['jdtime']<600){
$return[$k]['tenStandard'] = '达标';//10分钟接单达标
}else{
$return[$k]['tenStandard'] = '不达标';//10分钟接单达标
}
}else{
$return[$k]['jdAgeing'] = '';//接单时效
$return[$k]['fiveStandard'] = '不达标';//5分钟接单达标
$return[$k]['tenStandard'] = '不达标';//10分钟接单达标
}
if($v['feeds_time'] != '' && $v['feeds_time'] != '0000-00-00 00:00:00'){
$return[$k]['sgAgeing'] = DataStatisticsService::Compute_Time($v['sgtime']);//施工时效
if($v['sgtime']<43200){
$return[$k]['Standard12Hours'] = '达标';//12小时履约达标
}else{
$return[$k]['Standard12Hours'] = '不达标';//12小时履约达标
}
if($v['sgtime']<86400){
$return[$k]['Standard24Hours'] = '达标';//24小时履约达标
}else{
$return[$k]['Standard24Hours'] = '不达标';//24小时履约达标
}
}else{
$return[$k]['sgAgeing'] = "";//施工时效
$return[$k]['Standard12Hours'] = '不达标';//12小时履约达标
$return[$k]['Standard24Hours'] = '不达标';//24小时履约达标
}
$time = explode(' ', $v['create_time'])[1];
if($time>='08:30:00' && $time<='18:00:00'){
$return[$k]['takeEffect'] = "是";//是否计入时效考核
}else{
$return[$k]['takeEffect'] = "否";//是否计入时效考核
}
$highestRow++;
foreach( $group as $kg => $vg ){
if($vg == 'order_num'){
$sheet->setCellValue($title[$kg].$highestRow, "\t".$return[$k][$vg]."\t");
}else{
$sheet->setCellValue($title[$kg].$highestRow, $return[$k][$vg]);
}
$sheet->getStyle($title[$kg].$highestRow)->applyFromArray($styleDataArray);
// $sheet->getStyle($title[$kg].$highestRow)->getNumberFormat()->setFormatCode(NumberFormat::FORMAT_TEXT);
$sheet->getStyle($title[$kg].$highestRow)->getAlignment()->setHorizontal(Alignment::HORIZONTAL_CENTER);
}
}
$writer = new Xls($spreadsheet);
$writer->save($file);
$el_item = $res['el_item'] + $num1;
DB::table("excel_list")->where('el_id',$res['el_id'])->update(['el_item'=>$el_item]);
DB::table("excel_detail")->where("ed_id",$detail['ed_id'])->update(['ed_state'=>2]);
}
/**
* @name 生成表格查询条件
* @param $db
* @param $affset
* @param $limit
* @return string
* @author du
* @date 2021/8/25
*/
public function creactWhere ($db,$affset,$limit ){
$db = rtrim($db,' " ');
$db = $db." limit ".$affset.",".$limit;
return $db;
}
/**|---------------------------------------------------------------------------------
* @name 获取字段名称
* @param array $excel_name 订单单号
* @param string $key 字段key
* @retrun /multitype:array
* @author dou 2021/9/14 15:08
* |---------------------------------------------------------------------------------
*/
public function getTitleName ( $excel_name = [] , $key ){
$validation = self::validationKey($key);
if ( $validation['code'] ){
if($validation['code'] = 'SetmoneyType'){
$name = SetmoneyType::where('sety_id',$validation['data'])->value("sety_name");
if(!$name){
$name = '异常';
}
}else{
$name = '异常';
}
}else{
$name = $excel_name[$key]??'异常';
}
return $name;
}
/**|---------------------------------------------------------------------------------
* @name 验证标签类参数
* @param string $key 字段key
* @retrun /multitype:array
* @author dou 2021/9/14 15:20
* |---------------------------------------------------------------------------------
*/
public function validationKey ( $key ){
if ( strpos($key,'_titleid') ){
$data['code'] = 'SetmoneyType';
$key_length = strlen($key);
$range_length = strlen('_titleid');
$key = substr($key,0,$key_length-$range_length);
$data['data'] = $key;
}else{
$data['code'] = false;
}
return $data;
}
//设置表头列
public function getHeaderTitle ( ){
return ['A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'];
}
}
<?php
namespace App\Http\Controllers\Api;
use ACES\TDEClient;
use App\Http\Controllers\BaseController;
use App\Http\Controllers\Orders\OrderListController;
use App\Models\Admin;
use App\Models\Feedback;
use App\Models\InstallLine;
use App\Models\JdBound;
use App\Models\JdServiceProvider;
use App\Models\OrderList;
use App\Models\OrderListMsg;
use App\Models\Orders;
use App\Models\PjGoods;
use App\Models\Pt;
use App\Models\SettlementList;
use App\Models\SettlementThree;
use App\Services\CommonService;
use App\Services\OrderaddService;
use App\Services\OrderService;
use App\Services\RefundService;
use App\Services\SettlementThreeService;
use BlueCity\Core\Inc\ErrorInc;
use Illuminate\Http\Request;
use DB;
use OSS\OssClient;
use ACES\SecretJdClient;
class JdOrderApiController extends BaseController
{
/**
* @name 获取京东定单
* @author du
* @date 2024/3/13
* @Time: 10:53
*/
public function getOrderByJd( ){
$startDate = date("Y-m-d H:i:s",strtotime(" -6 minute".date("Y-m-d H:i:s")));
$endDate = date("Y-m-d H:i:s");
$url = "http://116.196.75.172/index.php/SaasApiGetOrder/index?startDate=".$startDate."&endDate=".$endDate."&status=300";
$token = DB::table('jdpop_token')->where('status',1)->where('type',2)->select('app_key','app_secret','access_token','pt_id','auth_key')->get()->toarray();
foreach($token as $k => $vs) {
$urls = $url."&authKey=".$vs['auth_key']."&access_token=".$vs['access_token']."&app_key=".$vs['app_key']."&app_secret=".$vs['app_secret'];
$company_id = Pt::where('id',$vs['pt_id'])->value('company_id');
// echo $urls;
$res = $this->http_get($urls);
$ip = $_SERVER["REMOTE_ADDR"];
$data = json_decode($res, true);
// dump($data);
$pt_id = $vs['pt_id'];
CommonService::addLog('获取订单', $urls.'---'.$res, $vs['pt_id'], 'JdOrderApi-getOrder');
$result = $data['jingdong_omnic_order_getorderlist_responce']['result'];
$result = json_decode($result, true);
// dump($result['success']);
if ($result['success'] == true) {
$order_data = $result['data'];
if (!empty($order_data)) {
$arr = [];
$arr_goods = [];
// dd($order_data);
if (isset($order_data['data'])) {
$order_data = $order_data['data'];
// dd($order_data);
// dump($order_data);
foreach ($order_data as $kkk => $vvv) {
if ($vvv['orderDetailList']) {
$sku_ids = array_unique(array_column($vvv['orderDetailList'], 'skuId'));
$goods_ids = JdBound::whereIn('sku_id', $sku_ids)->pluck('goods_id', 'sku_id');
$goods_ids = CommonService::dataToArray($goods_ids);
if (empty($goods_ids)) {
CommonService::addLog('SKU_all_no', json_encode($sku_ids), $vvv['orderInfo']['salesChannelOrderId'], 'SKU_all_no');
continue;
}
$goods_idss = JdBound::whereIn('sku_id', $sku_ids)->pluck('goods_id');
$goods_idss = CommonService::dataToArray($goods_idss);
if (empty($goods_idss)) {
continue;
}
$goods = PjGoods::whereIn('pg_id', $goods_idss)->select('pg_id', 'brand_name', 'pg_series', 'version', 'goods_pic_path', 'national_version')->get()->toarray();
if ($goods) {
$brand_name = array_unique(array_column($goods, 'brand_name'));
} else {
CommonService::addLog('SKU_all_no', json_encode($sku_ids), $vvv['orderInfo']['salesChannelOrderId'], 'nogood');
continue;
}
$goods = CommonService::jointArrayKey($goods, 'pg_id');
if (count($goods) < count($vvv['orderDetailList'])) {
CommonService::addLog('SKU_all_no', json_encode($sku_ids), $vvv['orderInfo']['salesChannelOrderId'], 'SKU_all_no');
continue;
}
$exsit = Orders::where('order_num', $vvv['orderInfo']['salesChannelOrderId'])->value('id');
//存订单
$eisit_jd = DB::table('jd_proprietary')->where('order_id', $vvv['orderInfo']['salesChannelOrderId'])->value('id');
if (!$exsit && !$eisit_jd) {
$resjdgoods = DB::table('jdgoods')->where("order_id", $vvv['orderInfo']['salesChannelOrderId'])->value('id');
$sys_num = 'L' . date("YmdHis") . str_pad(rand(0, 999), 3, '0', STR_PAD_LEFT);
foreach ($vvv['orderDetailList'] as $k => $v) {
// dd($v);
// dump($arr);
//存商品
//`gone_jdgoods` (`order_id`,`pt_id`,`sku_id`,`sku_name`,`item_total`,`jd_price`,`jd_cost`)
if (!$resjdgoods) {
if (in_array($vvv['orderInfo']['salesChannelOrderId'], array_column($arr_goods, 'order_id'))) {
unset($arr_goods[$k]);
// echo 1;echo '---'.$v['orderId'].'---';
}
$arr_goods[$k]['order_id'] = $vvv['orderInfo']['salesChannelOrderId'];
$arr_goods[$k]['pt_id'] = $pt_id;
$arr_goods[$k]['sku_id'] = $v['skuId'];
$arr_goods[$k]['item_total'] = $v['num'];
$arr_goods[$k]['jd_price'] = $v['skuAmount'];
$arr_goods[$k]['jd_cost'] = $v['skuPrice'];
$arr_goods[$k]['sku_name'] = $v['skuName'];
DB::table('jdgoods')->insert($arr_goods[$k]);
unset($arr_goods[$k]);
}
$goodid = $goods_ids[$v['skuId']];
if ($goodid) {
$goods_res = $goods[$goodid];
// dd($goods_res);
if ($goods_res['pg_series'] == '') {
$type = $goods_res['version'];
} else {
$type = $goods_res['pg_series'] . "-" . $goods_res['version'];
}
$goods_name = $goods_name . $goods_res['brand_name'] . "," . $type . "," . $goods_res['general_version'] . ",";
$good_brand[] = $goods_res['brand_name'];
$orderMsgData[$k]['goods_id'] = $goodid;
$orderMsgData[$k]['goods_name'] = $goods_res['brand_name'] . "-" . $type;
$orderMsgData[$k]['goods_price'] = $v['skuPrice'];//实收/商品单价
$orderMsgData[$k]['goods_paid'] = $v['skuPrice'];
$orderMsgData[$k]['goods_num'] = $v['num'];
$orderMsgData[$k]['goods_brand'] = $goods_res['brand_name'];
$orderMsgData[$k]['goods_number'] = $type;
$orderMsgData[$k]['cd_id'] = 1;
} else {
//未绑定SKU
CommonService::addLog('未绑定SKU', $v['skuId'], $vvv['orderInfo']['salesChannelOrderId'], 'jdAPI_sku');
continue;
}
}
$orders[$kkk]['sys_bh'] = $sys_num;
$orders[$kkk]['skb_bh'] = $vvv['orderInfo']['salesChannelOrderId'];
$orders[$kkk]['pt_id'] = $pt_id;
$orders[$kkk]['ser_type'] = 1;//服务类型:1上门安装,2到店服务
$orders[$kkk]['shr_name'] = $vvv['orderShip']['consignee'] ?? '空';
$orders[$kkk]['shr_phone'] = $vvv['consigneePhone'] ?? $vvv['orderShip']['consigneeMobile'];//$vv['consigneeInfo']['telephone'];//
$orders[$kkk]['shr_sheng'] = $vvv['orderShip']['addressLevel1Name'];//
$orders[$kkk]['shr_shi'] = $vvv['orderShip']['addressLevel2Name'];//
$orders[$kkk]['shr_xian'] = $vvv['orderShip']['addressLevel3Name'];//
$orders[$kkk]['shr_adress'] = $vvv['orderShip']['deliveryAddress'];//
$orders[$kkk]['shr_other'] = '接单后10分钟内务必联系客户核实车型跟安装时间!不断电安装、如果无法完成 请立刻反馈我们处理~!';
$orders[$kkk]['car_audit'] = 2;//1:新订单;2:可派单;3:处理中
$orders[$kkk]['order_type'] = 1;//订单类型:1:普通;20加急;10:夜间
$orders[$kkk]['order_time'] = date('Y-m-d H:i:s', $v['createTime'] / 1000);
$orders[$kkk]['pay_type'] = 1;//支付方式:1在线支付;2货到付款 $input['shr_other']
$orders[$kkk]['goods'] = $orderMsgData;
$orders[$kkk]['shr_other'] = $vvv['orderInfo']['promiseMsg'];
// $session = $request->get('session_token');//获取操作人信息
$session['admin_groupnew'] = 7;
$session['admin_acc'] = '系统录入';
$session['id'] = 1133;
$session['company_id'] = $company_id;
// dd($orders[$kkk]);
$return = OrderaddService::addOrder($orders[$kkk], $session, $ip);
CommonService::addLog('添加定单', json_encode($return), $vvv['orderInfo']['salesChannelOrderId'], 'jdAPI_addOrder');
if ($return['ErrorCode'] == 1 && $vs['pt_id']!=33) {
$url = "http://116.196.75.172/index.php/SaasApiGetOrder/updatestatus?orderId=" . $vvv['orderInfo']['salesChannelOrderId'] . "&storeId=" . $vvv['orderInfo']['warehouseId'];
$urls = $url."&authKey=".$vs['auth_key']."&access_token=".$vs['access_token']."&app_key=".$vs['app_key']."&app_secret=".$vs['app_secret'];
$ck = $this->http_get($urls);
CommonService::addLog('订单出库', $ck, $vvv['orderInfo']['salesChannelOrderId'], 'jdAPI_addOrderck');
}
// dump($return);
unset($orderMsgData);
unset($orders[$kkk]);
if (in_array($vvv['orderInfo']['salesChannelOrderId'], array_column($arr, 'order_id'))) {
unset($arr[$kkk]);
// echo 2;echo '---'.$v['orderId'].'---';
}
// $arr[$kkk]['salesChannelOrderId'] = $v['orderId'];
//
$arr[$kkk]['order_id'] = $vvv['orderInfo']['salesChannelOrderId'];
$arr[$kkk]['admin_acc'] = '系统';
$arr[$kkk]['pt_id'] = $pt_id;
$arr[$kkk]['pay_type'] = '在线支付';
$arr[$kkk]['order_seller_price'] = $v['skuAmount'];
$arr[$kkk]['freight_price'] = $v['transactionPrice'] ?? $vvv['orderInfo']['orderTotalAmount'];
$arr[$kkk]['order_state'] = 'WAIT_SELLER_STOCK_OUT';
$arr[$kkk]['invoice_info'] = '不需要开具发票';
$arr[$kkk]['order_remark'] = $vvv['orderInfo']['promiseMsg'];
$arr[$kkk]['order_start_time'] = date('Y-m-d H:i:s', $v['createTime'] / 1000);
$arr[$kkk]['fullname'] = $vvv['orderShip']['consignee'];
$arr[$kkk]['mobile'] = $vvv['orderShip']['consigneeMobile'];
$arr[$kkk]['telephone'] = $vvv['orderShip']['consigneePhone'];//
$arr[$kkk]['province'] = $vvv['orderShip']['addressLevel1Name'];
$arr[$kkk]['city'] = $vvv['orderShip']['addressLevel2Name'];
$arr[$kkk]['county'] = $vvv['orderShip']['addressLevel3Name'];
$arr[$kkk]['full_address'] = $vvv['orderShip']['deliveryAddress'];
$arr[$kkk]['order_pay'] = $v['skuAmount'];
$arr[$kkk]['is_show'] = 1;
$arr[$kkk]['parent_orderid'] = 0;
DB::table('jd_proprietary')->insert($arr[$kkk]);
// dd($arr[$kkk]);
unset($arr[$kkk]);
} else {
CommonService::addLog('单号已存在', json_encode($vvv), $vvv['orderInfo']['salesChannelOrderId'], 'jdAPI_addOrder');
}
}
}
}
echo "succese";
}
}
}
}
/**|---------------------------------------------------------------------------------
* @name 获取退款订单
* @param string ju_ordernum 订单单号
* @retrun \Illuminate\Http\JsonResponse /multitype:array
* @author dou 2024/10/25 14:19
* |---------------------------------------------------------------------------------
*/
public function getOrderCancelAuditList ( ){
$startDate = date("Y-m-d H:i:s",strtotime(" -6 minute".date("Y-m-d H:i:s")));
$endDate = date("Y-m-d H:i:s");
$url = "http://116.196.75.172/index.php/SaasApiGetOrder/getOrderCancelAuditList?applyDateBegin=".$startDate."&applyDateEnd=".$endDate;
$token = DB::table('jdpop_token')->where('status',1)->where('type',2)->select('app_key','app_secret','access_token','pt_id','auth_key')->get()->toarray();
foreach($token as $k => $vs) {
$urls = $url."&authKey=".$vs['auth_key']."&access_token=".$vs['access_token']."&app_key=".$vs['app_key']."&app_secret=".$vs['app_secret'];
// echo $urls;
$res = $this->http_get($urls);
$ip = $_SERVER["REMOTE_ADDR"];
$data = json_decode($res, true);
CommonService::addLog('获取退款订单', $urls.'---'.$res, $vs['pt_id'], 'getOrderCancel');
$result = $data['jingdong_omnic_order_getOrderCancelAuditList_responce']['result'];
$result = json_decode($result, true);
if ($result['success'] == true) {
if (isset($result['data'])) {
$order_data = $result['data'];
if (!empty($order_data)) {
if (isset($order_data['data'])) {
$order_data = $order_data['data'];
foreach ($order_data as $k => $v) {
$flag = 1;
$refundlist = RefundService::getInfoByKeyValue('order_num', $v['saleOrderId'], ['state', 'roPreNo']);
if ($refundlist) {
$state = array_column($refundlist, 'state');
$state = min($state);
if ($state < 5) {
$rea = '存在未完成的退款数据';
$flag = 2;
} else {
$roPreNo = array_column($refundlist, 'roPreNo');
if (in_array($v['requestionId'], $roPreNo)) {
$rea = '退款单已同步';
$flag = 2;
}
}
}
if ($flag == 1) {
$refund['order_num'] = $v['saleOrderId'];
$refund['refund'] = 1;
$refund['content'] = $v['applyReason'] . ",平台申请时间:(" . $v['applyDate'] . ")";
$refund['urgent'] = 1;
$refund['recycle_type'] = 0;
$refund['roPreNo'] = $v['requestionId'];
$sys_num = OrderService::getOrderBy('order_num', $v['saleOrderId'], ['sys_num', 'order_status', 'new_money']);
if ($sys_num) {
$refund['sys_num'] = $sys_num['sys_num'];
if ($sys_num['order_status'] > 10) {
$msg = OrderService::getOrderListMsg($sys_num['sys_num']);
} else {
$msg = OrderService::getOrderMsg($sys_num['sys_num']);
}
if ($msg['orderMsgArr']) {
$msg = $msg['orderMsgArr'];
$goodsArr = [];
foreach ($msg as $ka => $va) {
$goodsArr[$ka]['goods_name'] = $va['goods_name'];
$goodsArr[$ka]['goods_price'] = $va['goods_price'];
$goodsArr[$ka]['msg_id'] = $va['id'];
$goodsArr[$ka]['goods_num'] = $va['goods_num'];
$goodsArr[$ka]['goods_id'] = $va['goods_id'];
}
$refund['goodsArr'] = $goodsArr;
$refund['goods_state'] = 2;
$refund['info_ing'] = '';
$refund['info_acc'] = '';
$refund['info_name'] = '';
$refund['addType'] = 'jdRefund';
$refund['allprice'] = $sys_num['new_money'];
$session['id'] = '1133';
$session['admin_acc'] = '系统操作';
$session['admin_groupnew'] = 7;
// dump($refund);
$rea = OrderService::lockOrder($refund, $session, '39.105.188.64');
} else {
$rea = '无订单商品';
}
} else {
$rea = '无订单号';
}
}
$return[$k]['lockOrder'] = $rea;
$return[$k]['order_num'] = $v['saleOrderId'];
}
CommonService::addLog('添加退款单', json_encode($return), $vs['pt_id'], 'addOrderCancel');
}
}
}
}
echo "succese";
}
}
}
......@@ -185,6 +185,7 @@ class CommonController extends BaseController
$brand = CommonService::arrayFilterFieldValue($brand,[['id'=>explode(',',$brand_id)]]);
}
if($brand){
$brand = CommonService::resetListKey($brand);
return $this->success('操作成功', $brand);
}else{
return $this->error('无数据', ErrorInc::DATA_EMPTY, []);
......@@ -359,6 +360,9 @@ class CommonController extends BaseController
}else{
$pt[$k]['usermodeltype'] = 2;
}
if($request->get('session_token')['admin_groupnew'] == 7){
$pt[$k]['pt_name'] = $v['pt_name']."(".$v['company_id'].")";
}
}
return $this->success('操作成功', $pt);
}else{
......@@ -965,7 +969,7 @@ class CommonController extends BaseController
* @author du
* @date 2021/8/26
*/
public function getExcelOut($pri_id,$sqls,$session,$limit = 500){
public function getExcelOut($pri_id,$sqls,$session,$limit = 500,$action_name = ''){
$exceout = new ExceloutService();
if(!$sqls){
return $this->error('暂无数据或请检查SQL日志是否打开', ErrorInc::MYSQL_FAILED);
......@@ -973,12 +977,16 @@ class CommonController extends BaseController
$list = $exceout->getSqls($sqls)['list'];
if($list){
$sql = $exceout->getSqls($sqls)['sqls'];
$avtion = FunctionsService::getFunctionsBy('function_id', $pri_id, ['function_name','function_model']);
if($action_name=='') {
$avtion = FunctionsService::getFunctionsBy('function_id', $pri_id, ['function_name', 'function_model']);
}else{
$avtion = $action_name;
}
$con_name = $avtion['function_name'];//控制器名称
$action = $avtion['function_model'];//控制器
$field_data = $exceout->gainFields($session['id'],$action);
if (empty($field_data)) {
return $this->error('您暂时无导出权限', ErrorInc::MYSQL_FAILED);
return $this->error('您暂时无导出权限', ErrorInc::MYSQL_FAILED,$action);
}
return $exceout->createPlan($list,$sql,$limit,$action,$con_name,$session['id'],$session['admin_acc'],$session['company_id']);
}else{
......
<?php
/**
* 文件名称(数据统计)
* 文件简单描述(用于进行数据统计分析)
* @author DouBin
* @Date: 2024/10/15
* @Time: 17:34
* @Email: db@sudianwang.com
* @version 1.0
* @copyright BlueCity
*/
namespace App\Http\Controllers\DatasBase;
use App\Http\Controllers\BaseController;
use App\Services\CommonService;
use App\Services\DataStatisticsService;
use BlueCity\Core\Inc\ErrorInc;
use Illuminate\Http\Request;
use DB;
use Excel;
/**
* @name 自动派单绑定服务商
* Class BservissController
* @package App\Http\Controllers\Admin
*/
class DataStatisticsController extends BaseController
{
/**|---------------------------------------------------------------------------------
* @name 数据首页
* @param string
* @retrun \Illuminate\Http\JsonResponse
* @author dou 2024/10/15 17:37
* |---------------------------------------------------------------------------------
*/
public function index ( Request $request ){
$session = $request->get("session_token");
$input = $request->all();
$checkKey = CommonService::checkKey(['method','time_start','search_type'],$input);
if($checkKey['code']!=1){
return $this->error('参数'.$checkKey['data'].'未填写,或值为空', ErrorInc::INVALID_PARAM, []);
}
if(!in_array($input['search_type'],['week','month'])){
return $this->error('查询类型错误',ErrorInc::INVALID_PARAM,$input);
}
$api=['getSerStatistics','getSerStatisticsDetail'];
if(!in_array($input['method'],$api)){
return $this->error('接口不参数异常',ErrorInc::INVALID_PARAM,$input);
}else {
$api = (string)$input['method'];
$data = DataStatisticsService::$api($session,$input);
return $data;
// if($data){
// return $this->success('获取成功', $data); exit;
// }else{
// return $this->error('暂无数据', ErrorInc::DATA_EMPTY,$data);exit;
// }
}
}
}
......@@ -25,8 +25,12 @@ class TipsController extends BaseController
*/
public function index(Request $request){
$list = array();
if($request->get('session_token')['admin_groupnew'] == 2 || $request->get('session_token')['admin_groupnew'] == 3){
$orderList = OrderList::where('stauas',20)->where('ser_id',$request->get('session_token')['id'])->get();
if($request->get('session_token')['admin_groupnew'] == 2 || $request->get('session_token')['admin_groupnew'] == 3 || $request->get('session_token')['admin_groupnew'] == 4){
if($request->get('session_token')['admin_groupnew'] == 2) {
$orderList = OrderList::where('stauas', 20)->where('ser_id', $request->get('session_token')['id'])->get();
}else{
$orderList = OrderList::where('stauas', 20)->where('agency_id', $request->get('session_token')['company_id'])->get();
}
if(count($orderList)>0) {
$list[0]['msg'] = "您有新工单未领取";
$list[0]['count'] = count($orderList);
......
......@@ -12,11 +12,13 @@
namespace App\Http\Controllers\Dou;
use App\Exports\BasicExport;
use App\Http\Controllers\Orders\AotuorderController;
use App\Models\Admin;
use App\Models\OrderList;
use App\Models\OrderRejected;
use App\Services\CommonService;
use Chumper\Zipper\Zipper;
use Illuminate\Http\Request;
use BlueCity\Core\Controllers\MountingCoreController as Controller;
use BlueCity\Core\Traits\ResourceControllerMethod;
......@@ -44,7 +46,7 @@ class MyTestController extends Controller
if(empty($input['method'])){
return $this->error('缺少必要参数1',ErrorInc::FAILED_PARAM);
}
$api=['getSerStatistics','getSerStatisticsDetail'];
$api=['getSerStatistics','getSerStatisticsDetail','BasicExport'];
if(!in_array($input['method'],$api)){
return $this->error('接口不参数异常',ErrorInc::INVALID_PARAM,$input);
}else {
......@@ -64,10 +66,9 @@ class MyTestController extends Controller
$html="<html><meta http-equiv='Content-Type' content='text/html; charset=utf-8' /><h1>请输入公司id</h1></html>";
echo $html;exit;
}
$admindata = Admin::where('company_id',$input['company_id'])
->where('admin_groupnew',2)
->where('enable',1)
->select('id','company_name')->get();
$admindata = Admin::whereRaw("((company_id='".$input['company_id']."' and admin_groupnew=2) or admin_groupnew=3) and enable=1")
->select('id','company_name')
->get();
$admindata = CommonService::dataToArray($admindata);
if($admindata){
$time_start = $input['time_start'];
......@@ -80,17 +81,17 @@ class MyTestController extends Controller
$html .= "<td>总推送单量</td><td>接单量</td><td>拒单量</td><td>拒单率</td><td>接单时效</td><td>履约时效</td><td>总推送单量</td><td>接单量</td><td>拒单量</td><td>拒单率</td><td>接单时效</td><td>履约时效</td>";
$html .= "</tr>";
foreach($admindata as $k => $v){
$order_listnum = OrderList::whereRaw("ser_id='".$v['id']."' and create_time BETWEEN '".$time_start."' and '".$time_end."' and is_delete=1 and get_time != ''")->count();//接单数量
$order_rejectednum = OrderRejected::whereRaw("or_ser_id='".$v['id']."' and or_creact_time BETWEEN '".$time_start."' and '".$time_end."' and or_show=1")->count();//拒单数量
$order_listAllnum = OrderList::whereRaw("ser_id='".$v['id']."' and create_time BETWEEN '2024-08-19' and '".$time_end."' and is_delete=1 and get_time != ''")->count();//总接单数量
$order_rejectedAllnum = OrderRejected::whereRaw("or_ser_id='".$v['id']."' and or_creact_time BETWEEN '2024-08-19' and '".$time_end."' and or_show=1")->count();//总拒单数量
$sql = "SELECT CAST((SUM(UNIX_TIMESTAMP(feeds_time))-SUM(UNIX_TIMESTAMP(get_time)))/COUNT(id) as SIGNED) as timenum FROM gone_order_list WHERE ser_id='".$v['id']."' and get_time != '' and get_time!='0000-00-00 00:00:00' and feeds_time != '' and feeds_time!='0000-00-00 00:00:00' and create_time BETWEEN '".$time_start."' and '".$time_end."' and is_delete=1";
$order_listnum = OrderList::whereRaw("ser_id='".$v['id']."' and create_time BETWEEN '".$time_start."' and '".$time_end."' and is_delete=1 and get_time != '' and company_id = '".$input['company_id']."'")->count();//接单数量
$order_rejectednum = OrderRejected::leftjoin('orders', 'or_order_num', '=', 'order_num')->whereRaw("or_ser_id='".$v['id']."' and or_creact_time BETWEEN '".$time_start."' and '".$time_end."' and or_show=1 and company_id = '".$input['company_id']."'")->count();//拒单数量
$order_listAllnum = OrderList::whereRaw("ser_id='".$v['id']."' and create_time BETWEEN '2024-08-19' and '".$time_end."' and is_delete=1 and get_time != '' and company_id = '".$input['company_id']."'")->count();//总接单数量
$order_rejectedAllnum = OrderRejected::leftjoin('orders', 'or_order_num', '=', 'order_num')->whereRaw("or_ser_id='".$v['id']."' and or_creact_time BETWEEN '2024-08-19' and '".$time_end."' and or_show=1 and company_id = '".$input['company_id']."'")->count();//总拒单数量
$sql = "SELECT CAST((SUM(UNIX_TIMESTAMP(feeds_time))-SUM(UNIX_TIMESTAMP(get_time)))/COUNT(id) as SIGNED) as timenum FROM gone_order_list WHERE ser_id='".$v['id']."' and get_time != '' and get_time!='0000-00-00 00:00:00' and feeds_time != '' and feeds_time!='0000-00-00 00:00:00' and create_time BETWEEN '".$time_start."' and '".$time_end."' and is_delete=1 and company_id = '".$input['company_id']."'";
$data = DB::select($sql);
$sql1 = "SELECT CAST((SUM(UNIX_TIMESTAMP(get_time))-SUM(UNIX_TIMESTAMP(create_time)))/COUNT(id) as SIGNED) as pdnum FROM gone_order_list WHERE ser_id='".$v['id']."' and get_time != '' and get_time!='0000-00-00 00:00:00' and create_time BETWEEN '".$time_start."' and '".$time_end."' and time(create_time)>='08:30:00' and time(create_time)<='18:00:00' and is_delete=1";
$sql1 = "SELECT CAST((SUM(UNIX_TIMESTAMP(get_time))-SUM(UNIX_TIMESTAMP(create_time)))/COUNT(id) as SIGNED) as pdnum FROM gone_order_list WHERE ser_id='".$v['id']."' and get_time != '' and get_time!='0000-00-00 00:00:00' and create_time BETWEEN '".$time_start."' and '".$time_end."' and time(create_time)>='08:30:00' and time(create_time)<='18:00:00' and is_delete=1 and company_id = '".$input['company_id']."'";
$data1 = DB::select($sql1);
$sqls = "SELECT CAST((SUM(UNIX_TIMESTAMP(feeds_time))-SUM(UNIX_TIMESTAMP(get_time)))/COUNT(id) as SIGNED) as timenum FROM gone_order_list WHERE ser_id='".$v['id']."' and create_time BETWEEN '2024-08-19' and '".$time_end."' and get_time != '' and get_time!='0000-00-00 00:00:00' and feeds_time != '' and feeds_time!='0000-00-00 00:00:00' and is_delete=1";// and is_delete=1
$sqls = "SELECT CAST((SUM(UNIX_TIMESTAMP(feeds_time))-SUM(UNIX_TIMESTAMP(get_time)))/COUNT(id) as SIGNED) as timenum FROM gone_order_list WHERE ser_id='".$v['id']."' and create_time BETWEEN '2024-08-19' and '".$time_end."' and get_time != '' and get_time!='0000-00-00 00:00:00' and feeds_time != '' and feeds_time!='0000-00-00 00:00:00' and is_delete=1 and company_id = '".$input['company_id']."'";// and is_delete=1
$datas = DB::select($sqls);
$sqls1 = "SELECT CAST((SUM(UNIX_TIMESTAMP(get_time))-SUM(UNIX_TIMESTAMP(create_time)))/COUNT(id) as SIGNED) as pdnum FROM gone_order_list WHERE ser_id='".$v['id']."' and create_time BETWEEN '2024-08-19' and '".$time_end."' and get_time != '' and get_time!='0000-00-00 00:00:00' and time(create_time)>='08:30:00' and time(create_time)<='18:00:00' and is_delete=1";// and is_delete=1
$sqls1 = "SELECT CAST((SUM(UNIX_TIMESTAMP(get_time))-SUM(UNIX_TIMESTAMP(create_time)))/COUNT(id) as SIGNED) as pdnum FROM gone_order_list WHERE ser_id='".$v['id']."' and create_time BETWEEN '2024-08-19' and '".$time_end."' and get_time != '' and get_time!='0000-00-00 00:00:00' and time(create_time)>='08:30:00' and time(create_time)<='18:00:00' and is_delete=1 and company_id = '".$input['company_id']."'";// and is_delete=1
$datas1 = DB::select($sqls1);
$html .= "<tr>";
$html .= "<td>".$v['id']."</td>";
......@@ -151,9 +152,11 @@ class MyTestController extends Controller
$html="<html><meta http-equiv='Content-Type' content='text/html; charset=utf-8' /><h1>请输入公司id</h1></html>";
echo $html;exit;
}
$admindata = Admin::where('company_id',$input['company_id'])
->where('admin_groupnew',2)
->where('enable',1)
// $admindata = Admin::where('company_id',$input['company_id'])
// ->where('admin_groupnew',2)
// ->where('enable',1)
// ->pluck('company_name','id');
$admindata = Admin::whereRaw("((company_id='".$input['company_id']."' and admin_groupnew=2) or admin_groupnew=3) and enable=1")
->pluck('company_name','id');
$time_start = $input['time_start'];
$time_end = date("Y-m-d", strtotime($input['time_end'] . " +1 day"));
......@@ -162,7 +165,7 @@ class MyTestController extends Controller
$statusName = ['10'=>'未接单','20'=>'未接单','30'=>'安装中','34'=>'待审核','40'=>'已完成','50'=>'已撤销','55'=>'已撤销(补邮费)'];
$html = "<html><meta http-equiv='Content-Type' content='text/html; charset=utf-8' /><table>";
$html .= "<tr>";
$html .= "<td>门店名称</td><td>单号</td><td>订单状态</td><td>创建时间</td><td>接单时间</td><td>反馈时间</td><td>接单时效</td><td>5分钟接单达标</td><td>10钟接单达标</td><td>履约时效</td><td>12小时履约达标</td><td>24小时履约达标</td>";
$html .= "<td>门店名称</td><td>单号</td><td>订单状态</td><td>创建时间</td><td>接单时间</td><td>反馈时间</td><td>接单时效</td><td>5分钟接单达标</td><td>10钟接单达标</td><td>履约时效</td><td>12小时履约达标</td><td>24小时履约达标</td><td>是否计入时效考核</td>";
$html .= "</tr>";
foreach($datas as $k => $v){
$html .= "<tr>";
......@@ -207,6 +210,12 @@ class MyTestController extends Controller
$html .= "<td>不达标</td>";
$html .= "<td>不达标</td>";
}
$time = explode(' ', $v['create_time'])[1];
if($time>='08:30:00' && $time<='18:00:00'){
$html .= "<td>是</td>";
}else{
$html .= "<td>否</td>";
}
$html .= "</tr>";
}
$html .= "<table></html>";
......@@ -233,4 +242,63 @@ class MyTestController extends Controller
$res = $days.'天'.$hours.'时'.$mins.'分'.$secs.'秒';
return $res;
}
/**|---------------------------------------------------------------------------------
* @name 自定义表头
* @retrun \Illuminate\Http\JsonResponse
* @author dou 2024/10/22 14:43
* |---------------------------------------------------------------------------------
*/
public function BasicExport ( $input ){
$exporter = New BasicExport();
// $ewa = $exporter->creacrExporSerStatisticsDetail(json_decode($data,true));
// $data = [];
// $data[0] = $ewa;
// return $this->error('接口不参数异常',ErrorInc::INVALID_PARAM,$data);
$con='SerStatisticsDetail';
// $id = intval($request->input('el_id'));
$id = $input['el_id'];
$res = DB::table("excel_list")
->where('el_id',$id)
->where('el_state','1')
->select("el_action","el_id","el_sql","el_path","el_item","el_adminid","company_id")
->orderBy('el_id','ASC')->first();
if($res) {
if (!file_exists($res['el_path'])) {
// 创建文件夹
mkdir($res['el_path'], 0775, true);
chmod($res['el_path'], 0775);
}
$detail = DB::table("excel_detail")->where("ed_elid", $res['el_id'])->where("ed_state", '1')->first();
if ($detail) {
$data = $exporter->creacrExporHeader($con, $res, $detail, 'B2');
if ($data['db']) {
$return = $exporter->addExceleDara($res, $detail, $data['file'], $data['db'], $data['group']);
return $this->success('操作成功1');
} else {
DB::table("excel_detail")->where("ed_id", $detail['ed_id'])->update(['ed_state' => 2]);
return $this->success('操作成功2');
}
} else {
DB::table("excel_list")->where('el_id', $res['el_id'])->update(['el_state' => 2]);
return $this->success('操作成功3');
}
}else{
$path = DB::table('excel_list')->where('el_id',$id)->value('el_path');
$zipper = new Zipper();
$arr = glob(public_path($path)); //$public_path 被压缩的文件名
$reduce_path = $path.'.zip';
$zipper->make(public_path($reduce_path))->add($arr)->close(); //public_path($reduce_path) 压缩之后 */
$zip = new \ZipArchive();
$zipStatus = $zip->open($reduce_path);
if ($zipStatus !== true) {
return $this->error('压缩失败', ErrorInc::FAILED_PARAM);exit;
}
DB::table("excel_list")->where('el_id',$id)->update(['el_state'=>2]);
// = $this->baseurl().$reduce_path;
return response()->json(['Data' =>'', 'ErrorMessage' => '执行完毕', 'ErrorCode' => 222]);exit;
}
}
}
......@@ -59,7 +59,7 @@ class ExceloutController extends BaseController
$res = DB::table("excel_list")
->where('el_id',$id)
->where('el_state','1')
->select("el_action","el_id","el_sql","el_path","el_item","el_adminid")
->select("el_action","el_id","el_sql","el_path","el_item","el_adminid","company_id")
->orderBy('el_id','ASC')->first();
if($res){
......
......@@ -201,6 +201,7 @@ class SettlementController extends BaseController{
$list_service_type55['list_service_type'] = 55;
$where['list_service_type_searchor']['list_service_type40_next_level'] = $list_service_type40;
$where['list_service_type_searchor']['list_service_type55_next_level'] = $list_service_type55;
$where['company_id'] = $session['company_id'];
$res = SettlementService::getSettlementList($where);
if ($res){
$input['source'] = 2;
......
......@@ -130,7 +130,7 @@ class StatementsListController extends BaseController{
$wats = rtrim($wats,',');*/
if ($session['admin_groupnew'] != 7){//管理员可以看全部
$sqlnew = "select gone_settlement_list.*,d.p_price,d.wat_num as wat_three from gone_settlement_list left join gone_statements_list on gone_settlement_list.wat_num = gone_statements_list.stl_wat LEFT JOIN gone_settlement_three as d on gone_settlement_list.list_id=d.list_id where company_id='". $session['company_id']."' gone_statements_list.stl_endtime Between '". $stl_startime."'and '". $stl_endtime."'";
$sqlnew = "select gone_settlement_list.*,d.p_price,d.wat_num as wat_three from gone_settlement_list left join gone_statements_list on gone_settlement_list.wat_num = gone_statements_list.stl_wat LEFT JOIN gone_settlement_three as d on gone_settlement_list.list_id=d.list_id where gone_settlement_list.company_id='". $session['company_id']."' and gone_statements_list.stl_endtime Between '". $stl_startime."'and '". $stl_endtime."'";
}else{
$sqlnew = "select gone_settlement_list.*,d.p_price,d.wat_num as wat_three from gone_settlement_list left join gone_statements_list on gone_settlement_list.wat_num = gone_statements_list.stl_wat LEFT JOIN gone_settlement_three as d on gone_settlement_list.list_id=d.list_id where gone_statements_list.stl_endtime Between '". $stl_startime."'and '". $stl_endtime."'";
}
......@@ -273,6 +273,7 @@ class StatementsListController extends BaseController{
$list_service_type55['list_service_type'] = 55;
$where['list_service_type_searchor']['list_service_type40_next_level'] = $list_service_type40;
$where['list_service_type_searchor']['list_service_type55_next_level'] = $list_service_type55;
$where['company_id'] = $session['company_id'];
$res = SettlementService::getSettlementList($where,['id','all_price','subsidy_money','list_service_type','wat_judge','order_num','p_id','msg_id']);
/*-----------------------------------------------拼接条件获取满足的结算单数据结束-----------------------------------*/
if ($res){
......
......@@ -143,19 +143,20 @@ class AotuorderController extends BaseController
$data['code']='2';
if($data['code']=='1'){
}else{
if($sheng == '江苏' || $sheng == '江苏省'){
if($sheng == '江苏' || $sheng == '江苏省' || $sheng == '上海' || $sheng == '上海市'){
$where = ' and (admin_groupnew=3 or (admin_groupnew=2 and company_type=2))';
}else{
$where = ' and admin_groupnew=2 and company_type=1 and company_id='.$order['company_id'];
if($order['company_id']==14){
$where = $where." or admin.id in (91)";
$where = ' and ((admin_groupnew=2 and company_type=1 and company_id='.$order['company_id'].') or id in (91))';
}else{
$where = ' and admin_groupnew=2 and company_type=1 and company_id='.$order['company_id'];
}
}
if(empty($or_ser_id)) {
if ($xian == 1) {
CommonService::startmysql();
$ser = Bserviss::leftJoin('admin','admin.id','=','bservisnew.bs_serid')->whereRaw("find_in_set('" . $dress['are_id'] . "',bs_areid) and bs_branid='" . $goodid . "' and bs_status='1' and enable=1".$where)->select('bservisnew.*','admin_groupnew')->get()->toArray();
CommonService::addLog('自动拒单', CommonService::showmysql(), '','AotuorderController');
CommonService::addLog('自动派单', CommonService::showmysql(), $sys_num,'AotuorderController');
if (!$ser) {
$ser = Bserviss::leftJoin('admin','admin.id','=','bservisnew.bs_serid')->whereRaw("bs_sid='" . $dress['are_sid'] . "' and bs_branid='" . $goodid . "' and bs_status='1' and enable=1".$where)->select('bservisnew.*','admin_groupnew')->get()->toArray();
$xian = 2;
......@@ -163,7 +164,7 @@ class AotuorderController extends BaseController
} else {
CommonService::startmysql();
$ser = Bserviss::leftJoin('admin','admin.id','=','bservisnew.bs_serid')->whereRaw("bs_sid='" . $dress['are_sid'] . "' and bs_branid='" . $goodid . "' and bs_status='1' and enable=1".$where)->select('bservisnew.*','admin_groupnew')->get()->toArray();
CommonService::addLog('自动拒单', CommonService::showmysql(), '','AotuorderController');
CommonService::addLog('自动派单', CommonService::showmysql(), $sys_num,'AotuorderController');
}
}else{
if ($xian == 1) {
......@@ -582,7 +583,7 @@ class AotuorderController extends BaseController
/***************半径推送******************************/
$get['company_id'] = $orderinfo['company_id'];//支付方式
if($ser_data['admin_groupnew']==3){
if($ser_data['admin_groupnew']==3 && !in_array($orderinfo['company_id'],[14])){
$get['ol_distype'] = 4;//系统派单类型
}else{
$get['ol_distype'] = 2;//系统派单类型
......
......@@ -144,7 +144,7 @@ class OrderListController extends BaseController
$session_token = $request->get('session_token');
if (!in_array($session_token['admin_groupnew'], [2,3,7,8])){//管理员可以看全部
if (!in_array($session_token['admin_groupnew'], [2,3,4,7,8])){//管理员可以看全部
$where.=" and company_id='".$session_token['company_id']."'";
}
if (in_array($session_token['admin_groupnew'], [2,3,8])){//管理员可以看全部
......
......@@ -180,6 +180,7 @@ class AdminsController extends BaseController
$find_data = DB::table('admin')
->where('company_id', $admins['company_id'])
->where('admin_groupnew', "!=" ,2)
->count();
if ($find_data >= 5) {
return $this->error('添加数量超出限制', ErrorInc::MYSQL_FAILED, []);
......
......@@ -43,7 +43,7 @@ class LoginService
->leftJoin('admin_infor as adin', 'adin.admin_id', '=', 'adm.id')
->where('admin_acc', $request['account'])
->where('company_id', $company_id)
->whereIn('admin_groupnew', [2,3])
->whereIn('admin_groupnew', [2,3,4])
->where('admin_password', $password)
->select('adm.id', 'admin_acc as check_code', 'admin_name as install_name', 'phone as install_phone', 'enable as install_is_type', 'adm.id as admin_id','admin_groupnew','company_id')
->first();
......
......@@ -151,10 +151,10 @@ class OrderListService extends Model
$list_items[$key]['button'][] = ['action'=>'copyInfo','name'=>'复制信息'];
}else {
if($session['user_type']==3 && $value['ser_id']==$session['admin_id']){
$list_items[$key]['button'][] = ['action'=>'sendAgain','name'=>'指派门店'];
}
if ($request['stauas'] == 2) {
if($session['user_type']==3 && $value['ser_id']==$session['admin_id']){
$list_items[$key]['button'][] = ['action'=>'sendAgain','name'=>'指派门店'];
}
if ($session['user_type'] != 1) {
$list_items[$key]['button'][] = ['action' => 'transferOfOrder', 'name' => '改派'];
}
......@@ -862,6 +862,10 @@ class OrderListService extends Model
$data['button'][] = ['action' => 'contact', 'name' => '预约时间'];
}
}
if($session['user_type']==3 && $orderListArr['ser_id']==$session['admin_id']){
$data['button'][] = ['action'=>'sendAgain','name'=>'指派门店'];
}
}
if ($request['stauas'] == 3) {
if (isset($installLine)) {
......@@ -891,9 +895,6 @@ class OrderListService extends Model
$data['button'][] = ['action' => 'contact', 'name' => '预约时间'];
}
}
if($session['user_type']==3 && $orderListArr['ser_id']==$session['admin_id']){
$data['button'][] = ['action'=>'sendAgain','name'=>'指派门店'];
}
$data['button'][] = ['action' => 'copyInfo', 'name' => '复制信息'];
}
}elseif($orderListArr['stauas'] == 34 || $orderListArr['stauas'] == 40){
......@@ -1051,7 +1052,7 @@ class OrderListService extends Model
$arr['feedback_pic'] = $streamFilename;
$arr['install_time'] = date("Y-m-d H:i:s");
$arr['type_name'] = self::getPicName($request['type']);//'1';
$res = Feedback::where('type',$request['type'])->update($arr);
$res = Feedback::where('type',$request['type'])->where('gl_id',$orderListArr['id'])->update($arr);
$typename = '编辑';
}else {
$resu = Admin::where("id", $orderListArr['ser_id'])->first();
......@@ -1405,7 +1406,7 @@ class OrderListService extends Model
$input['shi'] = $request['shi'];
$input['xian'] = $request['xian'];
$input['address'] = $request['address'];
$data = OrderService::getService($input,$session);
$data = OrderService::getService($input);
return $data;
}else {
$list = Admin::whereIn('admin_groupnew', [2, 3])
......
......@@ -60,7 +60,7 @@ class StatementsListService extends Model
}
$list_data = $list_data->where('list_service_type', 40)
->whereIn('sett_status', [1,60,63])
->select('s.id','s.sys_num', 's.create_time', 'all_price', 'list_id', 'om.goods_name', 'om.goods_num', 'o.id as wor_id', 'o.stauas as wor_state')
->select('s.id','s.order_num as sys_num', 's.create_time', 'all_price', 'list_id', 'om.goods_name', 'om.goods_num', 'o.id as wor_id', 'o.stauas as wor_state')
->paginate($show_count);
$page['count'] = 0;
$page['page'] = 0;
......@@ -102,7 +102,7 @@ class StatementsListService extends Model
$list_data = DB::table('statements_list as sl')
->leftJoin('company as c', 'c.com_id', '=', 'sl.company_id')
->where('stl_serid', $session['admin_id'])
// ->where('stl_type', '!=', 4)
->where('stl_type', '!=', 4)
->select('stl_wat', 'stl_type', 'com_name', 'stl_startime', 'stl_endtime', 'stl_money', 'stl_id')
->orderByRaw("stl_type asc,stl_endtime desc")
->paginate($show_count);
......@@ -201,7 +201,7 @@ class StatementsListService extends Model
->leftJoin('order_msg as om', 'om.id', '=', 'o.order_goods_id')
->where('s.ser_id', $session['admin_id'])
->where('wat_num', $data['stl_wat'])
->select('s.id','s.sys_num', 's.create_time', 'all_price', 'list_id', 'om.goods_name', 'om.goods_num')
->select('s.id','s.sys_num', 's.create_time', 'all_price', 's.order_num as list_id', 'om.goods_name', 'om.goods_num')
->get();
$data['info_data'] = $info_data;
return ['ErrorCode' => 1, 'ErrorMessage' => '成功', 'Data' => $data];
......
<?php
/**
* 文件名称(数据统计)
* 文件简单描述(用于进行数据统计分析)
* @author DouBin
* @Date: 2024/10/15
* @Time: 17:49
* @Email: db@sudianwang.com
* @version 1.0
* @copyright BlueCity
*/
namespace App\Services;
use App\Exports\BasicExport;
use App\Http\Controllers\Common\CommonController;
use App\Models\Admin;
use App\Models\OrderList;
use App\Models\OrderRejected;
use BlueCity\Core\Inc\ErrorInc;
use BlueCity\Core\Service\Service;
use DB;
class DataStatisticsService extends Service{
/**|---------------------------------------------------------------------------------
* @name 获取公司数据统计信息
* @retrun /multitype:array
* @author dou 2022-12-05 005 下午 6:50:11
* |---------------------------------------------------------------------------------
*/
public static function getSerStatistics ( $session , $input ){
$page_size = $input['page_size']??10;
$admindata = Admin::whereRaw("((company_id='".$session['company_id']."' and admin_groupnew=2) or admin_groupnew=3) and enable=1")
->select('id','company_name')
// ->paginate($page_size)
->get();
$admindata = CommonService::dataToArray($admindata);
$return = [];
if($admindata){
$time_start = $input['time_start'];
if($input['search_type'] == 'week') {
$time_end = date("Y-m-d", strtotime($input['time_start'] . " +7 day"));
}if($input['search_type'] == 'month') {
$time_end = date("Y-m-d", strtotime($input['time_start'] . " +1 month"));
}
foreach($admindata as $k => $v){
$order_listnum = OrderList::whereRaw("ser_id='".$v['id']."' and create_time BETWEEN '".$time_start."' and '".$time_end."' and is_delete=1 and get_time != '' and company_id = '".$session['company_id']."'")->count();//接单数量
$order_rejectednum = OrderRejected::leftjoin('orders', 'or_order_num', '=', 'order_num')->whereRaw("or_ser_id='".$v['id']."' and or_creact_time BETWEEN '".$time_start."' and '".$time_end."' and or_show=1 and company_id = '".$session['company_id']."'")->count();//拒单数量
$order_listAllnum = OrderList::whereRaw("ser_id='".$v['id']."' and create_time BETWEEN '2024-08-19' and '".$time_end."' and is_delete=1 and get_time != '' and company_id = '".$session['company_id']."'")->count();//总接单数量
$order_rejectedAllnum = OrderRejected::leftjoin('orders', 'or_order_num', '=', 'order_num')->whereRaw("or_ser_id='".$v['id']."' and or_creact_time BETWEEN '2024-08-19' and '".$time_end."' and or_show=1 and company_id = '".$session['company_id']."'")->count();//总拒单数量
$sql = "SELECT CAST((SUM(UNIX_TIMESTAMP(feeds_time))-SUM(UNIX_TIMESTAMP(get_time)))/COUNT(id) as SIGNED) as timenum FROM gone_order_list WHERE ser_id='".$v['id']."' and get_time != '' and get_time!='0000-00-00 00:00:00' and feeds_time != '' and feeds_time!='0000-00-00 00:00:00' and create_time BETWEEN '".$time_start."' and '".$time_end."' and is_delete=1 and company_id = '".$session['company_id']."'";
$data = DB::select($sql);
$sql1 = "SELECT CAST((SUM(UNIX_TIMESTAMP(get_time))-SUM(UNIX_TIMESTAMP(create_time)))/COUNT(id) as SIGNED) as pdnum FROM gone_order_list WHERE ser_id='".$v['id']."' and get_time != '' and get_time!='0000-00-00 00:00:00' and create_time BETWEEN '".$time_start."' and '".$time_end."' and time(create_time)>='08:30:00' and time(create_time)<='18:00:00' and is_delete=1 and company_id = '".$session['company_id']."'";
$data1 = DB::select($sql1);
$sqls = "SELECT CAST((SUM(UNIX_TIMESTAMP(feeds_time))-SUM(UNIX_TIMESTAMP(get_time)))/COUNT(id) as SIGNED) as timenum FROM gone_order_list WHERE ser_id='".$v['id']."' and create_time BETWEEN '2024-08-19' and '".$time_end."' and get_time != '' and get_time!='0000-00-00 00:00:00' and feeds_time != '' and feeds_time!='0000-00-00 00:00:00' and is_delete=1 and company_id = '".$session['company_id']."'";// and is_delete=1
$datas = DB::select($sqls);
$sqls1 = "SELECT CAST((SUM(UNIX_TIMESTAMP(get_time))-SUM(UNIX_TIMESTAMP(create_time)))/COUNT(id) as SIGNED) as pdnum FROM gone_order_list WHERE ser_id='".$v['id']."' and create_time BETWEEN '2024-08-19' and '".$time_end."' and get_time != '' and get_time!='0000-00-00 00:00:00' and time(create_time)>='08:30:00' and time(create_time)<='18:00:00' and is_delete=1 and company_id = '".$session['company_id']."'";// and is_delete=1
$datas1 = DB::select($sqls1);
$return[$k]['id'] = $v['id'];//门店id
$return[$k]['company_name'] = $v['company_name'];//门店名称
$return[$k]['all_num'] = $order_listnum+$order_rejectednum;//总数量
$return[$k]['order_listnum'] = $order_listnum;//接单数量
$return[$k]['order_rejectednum'] = $order_rejectednum;//拒单数量
if(($order_listnum+$order_rejectednum) == 0){
$gl = "0.00%";
}else {
$gl = sprintf("%.2f", $order_rejectednum / ($order_listnum + $order_rejectednum) * 100);
$gl = $gl."%";
}
$return[$k]['rejectRate'] = $gl;//拒单率
if($data){
$pdAgeing = self::Compute_Time($data1[0]['pdnum']);
$sgAgeing = self::Compute_Time($data[0]['timenum']);
}else{
$pdAgeing = "0时0分0秒";
$sgAgeing = "0时0分0秒";
}
$return[$k]['pdAgeing'] = $pdAgeing;//接单时效
$return[$k]['sgAgeing'] = $sgAgeing;//施工时效
$return[$k]['all_nums'] = $order_listAllnum+$order_rejectedAllnum;//总数量
$return[$k]['order_listnums'] = $order_listAllnum;//接单数量
$return[$k]['order_rejectednums'] = $order_rejectedAllnum;//拒单数量
if(($order_listAllnum+$order_rejectedAllnum) == 0){
$gls = "0.00%";
}else {
$gls = sprintf("%.2f", $order_rejectedAllnum / ($order_listAllnum + $order_rejectedAllnum) * 100);
$gls = $gls."%";
}
$return[$k]['rejectRates'] = $gls;//拒单率
if($data){
$pdAgeings = self::Compute_Time($datas1[0]['pdnum']);
$sgAgeings = self::Compute_Time($datas[0]['timenum']);
}else{
$pdAgeings = "0时0分0秒";
$sgAgeings = "0时0分0秒";
}
$return[$k]['pdAgeings'] = $pdAgeings;//接单时效
$return[$k]['sgAgeings'] = $sgAgeings;//施工时效
}
}
if(isset($input['is_excel']) && $input['is_excel']==2 ){
$time1 = date("Y.m.d", strtotime($input['time_start']));
$time2 = date("Y.m.d", strtotime($input['time_start'] . " +6 day"));
$excel['time'] = "本周".$time1."-".$time2;
$excel['data'] = $return;
$excel['session'] = $session;
$exporter = New BasicExport();
$rea = $exporter->creacrExporSerStatistics($excel);
if($rea){
return response()->json(['Data' => $rea, 'ErrorMessage' => '操作成功', 'ErrorCode' => 1]);
}else{
return response()->json(['Data' => $rea, 'ErrorMessage' => '无数据', 'ErrorCode' => ErrorInc::DATA_EMPTY]);
}
}else {
return response()->json(['Data' => $return, 'ErrorMessage' => '操作成功', 'ErrorCode' => 1]);
}
}
/**|---------------------------------------------------------------------------------
* @name 获取公司详细数据信息
* @retrun /multitype:array
* @author dou 2024/10/17 14:30
* |---------------------------------------------------------------------------------
*/
public static function getSerStatisticsDetail ( $session , $input ){
$admindata = Admin::whereRaw("((company_id='".$session['company_id']."' and admin_groupnew=2) or admin_groupnew=3) and enable=1")
->pluck('company_name','id');
$time_start = $input['time_start'];
if($input['search_type'] == 'week') {
$time_end = date("Y-m-d", strtotime($input['time_start'] . " +7 day"));
}if($input['search_type'] == 'month') {
$time_end = date("Y-m-d", strtotime($input['time_start'] . " +1 month"));
}
// $sql = "SELECT (UNIX_TIMESTAMP(feeds_time)-UNIX_TIMESTAMP(get_time)) AS sgtime,(UNIX_TIMESTAMP(get_time)-UNIX_TIMESTAMP(create_time)) AS jdtime,stauas,order_num,ser_id,create_time,get_time,feeds_time FROM gone_order_list WHERE create_time BETWEEN '".$time_start."' and '".$time_end."' and is_delete=1 and company_id = ".$session['company_id']." order by create_time";
// $datas = DB::select($sql);
$page_size = $input['page_size']??10;
$is_excel = $input['is_excel']??'0';
if ($is_excel == 2) {
DB::connection()->enableQueryLog();#开启执行日志
}
$paginate = OrderList::where('is_delete',1)
->whereBetween('create_time',[$time_start,$time_end])
->where('company_id',$session['company_id'])
->selectRaw("(UNIX_TIMESTAMP(feeds_time)-UNIX_TIMESTAMP(get_time)) AS sgtime,(UNIX_TIMESTAMP(get_time)-UNIX_TIMESTAMP(create_time)) AS jdtime,stauas,order_num,ser_id,create_time,get_time,feeds_time")
->orderBy('create_time','ASC')
->paginate($page_size);
if ($is_excel == 2) {
DB::connection()->enableQueryLog();#开启执行日志
$sql = DB::getQueryLog()[1];
}
$datas = CommonService::dataToArray($paginate->items());
$statusName = ['10'=>'未接单','20'=>'未接单','30'=>'安装中','34'=>'待审核','40'=>'已完成','50'=>'已撤销','55'=>'已撤销(补邮费)'];
$return = [];
foreach($datas as $k => $v){
$return[$k]['company_name'] = $admindata[$v['ser_id']];//公司名称
$return[$k]['order_num'] = $v['order_num'];//订单单号
$return[$k]['stauas'] = $statusName[$v['stauas']];//订单状态
$return[$k]['create_time'] = $v['create_time'];//派单时间
$return[$k]['get_time'] = $v['get_time'];//接单时间
$return[$k]['feeds_time'] = $v['feeds_time'];//反馈时间
if($v['get_time'] != '' && $v['get_time'] != '0000-00-00 00:00:00'){
$return[$k]['jdAgeing'] = self::Compute_Time($v['jdtime']);//接单时效
if($v['jdtime']<300){
$return[$k]['fiveStandard'] = '达标';//5分钟接单达标
}else{
$return[$k]['fiveStandard'] = '不达标';//5分钟接单达标
}
if($v['jdtime']<600){
$return[$k]['tenStandard'] = '达标';//10分钟接单达标
}else{
$return[$k]['tenStandard'] = '不达标';//10分钟接单达标
}
}else{
$return[$k]['jdAgeing'] = '';//接单时效
$return[$k]['fiveStandard'] = '不达标';//5分钟接单达标
$return[$k]['tenStandard'] = '不达标';//10分钟接单达标
}
if($v['feeds_time'] != '' && $v['feeds_time'] != '0000-00-00 00:00:00'){
$return[$k]['sgAgeing'] = self::Compute_Time($v['sgtime']);//施工时效
if($v['sgtime']<43200){
$return[$k]['Standard12Hours'] = '达标';//12小时履约达标
}else{
$return[$k]['Standard12Hours'] = '不达标';//12小时履约达标
}
if($v['sgtime']<86400){
$return[$k]['Standard24Hours'] = '达标';//24小时履约达标
}else{
$return[$k]['Standard24Hours'] = '不达标';//24小时履约达标
}
}else{
$return[$k]['sgAgeing'] = "";//施工时效
$return[$k]['Standard12Hours'] = '不达标';//12小时履约达标
$return[$k]['Standard24Hours'] = '不达标';//24小时履约达标
}
$time = explode(' ', $v['create_time'])[1];
if($time>='08:30:00' && $time<='18:00:00'){
$return[$k]['takeEffect'] = "是";//是否计入时效考核
}else{
$return[$k]['takeEffect'] = "否";//是否计入时效考核
}
}
if(isset($input['is_excel']) && $input['is_excel']==2 ){
$excel = new CommonController();
return $excel->getExcelOut($input['Pri_id'], $sql, $session,200,['function_name'=>'服务商绩效明细','function_model'=>'SerStatisticsDetail']);
}else {
return response()->json(['Data' => $return, 'ErrorMessage' => '操作成功', 'ErrorCode' => 1]);
}
}
/**|---------------------------------------------------------------------------------
* @name 转化为时分秒
* @param string timediff 时间
* @retrun /multitype:string
* @author dou 2024/8/23 11:43
* |---------------------------------------------------------------------------------
*/
public static function Compute_Time($timediff ){
$days = intval($timediff/86400);
//计算小时数
$remain = $timediff%86400;
$hours = intval($remain/3600);
//计算分钟数
$remain = $remain%3600;
$mins = intval($remain/60);
//计算秒数
$secs = $remain%60;
//$res = array("day" => $days,"hour" => $hours,"min" => $mins,"sec" => $secs);
$res = $days.'天'.$hours.'时'.$mins.'分'.$secs.'秒';
return $res;
}
}
......@@ -52,7 +52,7 @@ class OrderDeductionFeeService extends Service
public static function deductFee($data) {
$find_recharge_order = DB::table('recharge_order')
->where('reo_order_number', $data['order_number'])
->where('reo_pay_state', 1)
->where('reo_pay_state', 2)
->first();
if (!empty($find_recharge_order)) {
return ['code'=>200, 'msg'=>'操作成功'];
......
......@@ -568,7 +568,7 @@ class OrderListService extends Service
}
// }
if (!in_array($session['admin_groupnew'], [2,3,7,8])){//管理员可以看全部
if (!in_array($session['admin_groupnew'], [2,3,4,7,8])){//管理员可以看全部
$where['gone_order_list.company_id'] = $session['company_id'];
}
if (in_array($session['admin_groupnew'], [8])){//管理员可以看全部
......@@ -593,6 +593,7 @@ class OrderListService extends Service
->orderBy('create_time','ASC')->paginate($page_size);
//print_r(DB::getQueryLog());
//导出所需语句
$data['where'] = $where;
$data['sqls'] = DB::getQueryLog()[1];
$data['show_Menu'] = [
['show_name'=>"全部",'status'=>'1','show_num'=>'--'],
......@@ -600,8 +601,8 @@ class OrderListService extends Service
['show_name'=>"安装中",'status'=>'3','show_num'=>'--'],
//['show_name'=>"延期订单",'status'=>'4','show_num'=>'--'],
['show_name'=>"待完成",'status'=>'5','show_num'=>'--'],
['show_name'=>"延期审图",'status'=>'9','show_num'=>"--"],
['show_name'=>"延期结算",'status'=>'10','show_num'=>"--"],
// ['show_name'=>"延期审图",'status'=>'9','show_num'=>"--"],
// ['show_name'=>"延期结算",'status'=>'10','show_num'=>"--"],
['show_name'=>"已完成",'status'=>'6','show_num'=>'--'],
//['show_name'=>"未预约",'status'=>'7','show_num'=>"--"],
//['show_name'=>"超时",'status'=>'8','show_num'=>"--"],
......
......@@ -1646,9 +1646,22 @@ class OrderService extends Service
}
if ($session && $session['admin_groupnew'] != 7) {//管理员可以看全部
$where['company_id'] = $session['company_id']; //2022-11-3 获取服务商可不用分公司
$where['company_type'] = 1;
$where['admin_groupnew'] = 2;
// $where['company_id'] = $session['company_id']; //2022-11-3 获取服务商可不用分公司
// $where['company_type'] = 1;
// $where['admin_groupnew'] = 2;
if($session['company_id']==14){
$wherecompany1['company_id'] = $session['company_id'];
$wherecompany1['company_type'] = 1;
$wherecompany1['admin_groupnew'] = 2;
$wherecompany2['id_searchin'] = [91,101];
$where['wherecompany_searchor']['wherecompany1_next_level'] = $wherecompany1;
$where['wherecompany_searchor']['wherecompany2_next_level'] = $wherecompany2;
}else {
$where['company_id'] = $session['company_id'];
$where['company_type'] = 1;
$where['admin_groupnew'] = 2;
}
}
$list = AdminsService::getAdmins($where,['id','company_name','is_lidao','owner','children_id','ad_brand','ad_project','brand_service'],['is_sord'=>'DESC']);
......@@ -1798,9 +1811,18 @@ class OrderService extends Service
}
if ($session && $session['admin_groupnew'] != 7) {//管理员可以看全部
$where['company_id'] = $session['company_id'];
$where['company_type'] = 1;
$where['admin_groupnew'] = 2;
if($session['company_id']==14){
$wherecompany1['company_id'] = $session['company_id'];
$wherecompany1['company_type'] = 1;
$wherecompany1['admin_groupnew'] = 2;
$wherecompany2['id_searchin'] = [91,101];
$where['wherecompany_searchor']['wherecompany1_next_level'] = $wherecompany1;
$where['wherecompany_searchor']['wherecompany2_next_level'] = $wherecompany2;
}else {
$where['company_id'] = $session['company_id'];
$where['company_type'] = 1;
$where['admin_groupnew'] = 2;
}
}
CommonService::startmysql();
$list = AdminsService::getAdmins($where,['id','company_name','is_lidao','owner','children_id','ad_brand','ad_project','brand_service'],['is_sord'=>'DESC']);
......
......@@ -132,8 +132,8 @@ class OrderaddService extends Service{
$num = $num + 1;
}
}else{
$orderMsgData['goods_price'] = $new_money;//实收/商品单价
$orderMsgData['goods_paid'] = $new_money;//应收
$orderMsgData['goods_price'] = $value['goods_price']*$value['goods_num'];//实收/商品单价
$orderMsgData['goods_paid'] = $value['goods_price']*$value['goods_num'];//应收
$orderMsgData['goods_num'] = $value['goods_num'];
$newOrderId = OrderMsg::insert($orderMsgData);
if(!$newOrderId){
......
......@@ -14,6 +14,7 @@
"laravel/framework": "5.5.*",
"laravel/tinker": "~1.0",
"maatwebsite/excel": "~2.1.0",
"phpoffice/phpspreadsheet": "^1.25",
"predis/predis": "^1.1"
},
"require-dev": {
......@@ -64,7 +65,11 @@
"preferred-install": "dist",
"sort-packages": true,
"optimize-autoloader": true,
"secure-http": false
"secure-http": false,
"allow-plugins": {
"kylekatarnls/update-helper": true,
"symfony/thanks": true
}
},
"minimum-stability": "dev",
"prefer-stable": true,
......
......@@ -989,7 +989,10 @@ Route::group(
Route::post('uploadExcelImport','PtPhistoryController@uploadExcelImport');//回传平台账单数据
});
//2024-10-17
Route::group(['prefix'=>'DataStatistics','middleware'=>'requestpc'],function(){
Route::post('index','DataStatisticsController@index');//列表
});
});
Route::group(
['namespace' => 'Financial'],function(){
......@@ -1143,7 +1146,7 @@ Route::group(
});
#平台服务 >> 京东自营订单
Route::group(['prefix'=>'SynJdSelfDataNew'], function (){
Route::get('addOrderData', 'SynJdSelfDataNewController@addOrderData');//添加京东
Route::get('addOrderData', 'SynJdSelfDataNewController@addOrderData');//添加京东
Route::get('decOrder', 'SynJdSelfDataNewController@decOrder');//定时解密
Route::get('getSelfRefund', 'SynJdSelfDataNewController@getSelfRefund');//定时解密
});
......@@ -1157,7 +1160,12 @@ Route::group(
});
#系统任务 >> 电话通知
Route::group(['prefix'=>'getCallByTtsCost'], function (){
Route::get('getCallByTtsCost', 'SysCallByTtsCostController@getCallByTtsCost');//电话通知扣费
Route::get('getCallByTtsCost', 'SysCallByTtsCostController@getCallByTtsCost');//电弧通知扣费
});
//京东定单同步状态
Route::group(['prefix'=>'jdOrderApi'], function (){
Route::get('getOrderByJd', 'JdOrderApiController@getOrderByJd');//获取京东社会化门店订单
Route::get('getOrderCancelAuditList', 'JdOrderApiController@getOrderCancelAuditList');//获取社会化门店获取退款单
});
#天猫服务单
/* Route::group(['prefix'=>'tmOrder'], function (){
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论