wugg 2 years ago
parent
commit
ad40c9c56b
4 changed files with 180 additions and 46 deletions
  1. 95 1
      app/admin/controller/Export.php
  2. 79 38
      app/admin/controller/Stat.php
  3. 4 5
      app/admin/route/app.php
  4. 2 2
      app/common.php

+ 95 - 1
app/admin/controller/Export.php

@@ -3,7 +3,9 @@
 namespace app\admin\controller;
 
 use app\admin\BaseController;
-use think\App;use think\facade\Db;
+use think\App;
+use think\facade\Db;
+use think\facade\Validate;
 
 //报表导出相关
 class Export extends BaseController
@@ -58,6 +60,15 @@ class Export extends BaseController
 			case 'payExport':
 				$file='对账单汇总表';
 				break;
+			case 'productPerformance':
+				$file='产品部门业绩';
+				break;
+			case 'productTh':
+				$file='产品部门退货单数据';
+				break;
+			case 'performance':
+				$file='业绩报表';
+				break;
 			default:
 				$file='暂无数据';
 				break;
@@ -806,4 +817,87 @@ class Export extends BaseController
 //
 //        excelExport('订单对账汇总表', array_keys($list[0]), $list);
     }
+    //产品部门销售业绩
+    public function productPerformance(){
+		$param = $this->request->only([ 'start' => '', 'end' => ''], 'post', 'trim');
+		$valid =Validate::rule([
+			"start|起始时间"=>"require|date",
+			"end|结束时间"=>"require|date|gt:start",
+		]);
+		if($valid->check($param)==false) return error_show(1005,$valid->getError());
+		$Db= Db::connect("mysql_wsm");
+		$list =$Db->name("sale")->field("orderCode 销售单号,apply_name 业务人员,apply_id 业务部门,cat_id 分类,total_price 产品货款总额,addtime 日期")
+		->where(["is_del"=>0,"status"=>[0,1,2]])
+		->whereBetween("addtime",[date("Y-m-d 00:00:00",strtotime($param['start'])),date("Y-m-d 23:59:59",
+		strtotime($param['end']))])
+		->cursor();
+		foreach ($list as $value){
+			$value['业务部门'] = $Db->name("depart_user")->alias("a")->leftjoin("company_item b","a.itemid=b.id")
+			->where(["a.is_del"=>0,"a.status"=>1,"a.uid"=>$value['业务部门']])->value("b.name",'');
+			$value['分类'] = $Db->name("cat")->where(["id"=>$value['分类']])->value("search","");
+			yield $value;
+		}
+	}
+	  //产品部门销售业绩
+    public function productTh(){
+		$param = $this->request->only([ 'start' => '', 'end' => ''], 'post', 'trim');
+		$valid =Validate::rule([
+			"start|起始时间"=>"require|date",
+			"end|结束时间"=>"require|date|gt:start",
+		]);
+		if($valid->check($param)==false) return error_show(1005,$valid->getError());
+		$Db= Db::connect("mysql_wsm");
+		$list =$Db->name("th_data")
+		->leftjoin("sale b","a.orderCode=b.orderCode")
+		->field("a.thCode 退货单号,a.orderCode 销售单号,b.apply_name 业务人员,b.apply_id 业务部门,a.cat_id 分类,b.total_price 产品货款总额,a.th_fee,a.addtime 日期")
+		->where(["is_del"=>0,"status"=>[0,1,2]])
+		->whereBetween("addtime",[date("Y-m-d 00:00:00",strtotime($param['start'])),date("Y-m-d 23:59:59",
+		strtotime($param['end']))])
+		->cursor();
+		foreach ($list as $value){
+			$value['业务部门'] = $Db->name("depart_user")->alias("a")->leftjoin("company_item b","a.itemid=b.id")
+			->where(["a.is_del"=>0,"a.status"=>1,"a.uid"=>$value['业务部门']])->value("b.name",'');
+			$value['分类'] = $Db->name("cat")->where(["id"=>$value['分类']])->value("search","");
+			yield $value;
+		}
+	}
+	//客服项目部数据业绩下载
+	public function performance(){
+		$param = $this->request->only(["start"=>"","end"=>""],"post","trim");
+		$valid =Validate::rule([
+			"start|起始时间"=>"require|date",
+			"end|结束时间"=>"require|date|gt:start",
+		]);
+		if($valid->check($param)==false) return error_show(1005,$valid->getError());
+		$list =Db::name("trade_pool")->alias("a")
+		         ->leftJoin("assoc b","a.logNo = b.viceCode and b.is_del=0 and b.status=2  and b.type=2")
+		         ->leftJoin("qrd_info c","b.orderCode=c.sequenceNo and c.is_del=0")
+		         ->where(["a.status"=>2,"a.is_del"=>0])
+		         ->whereBetween("a.addtime",[date("Y-m-d 00:00:00",strtotime($param['start'])),date("Y-m-d 23:59:59",
+			         strtotime($param['end']))])
+		         ->field("
+		a.logNo 回款单号,
+		c.ownerName 销售人员,
+		c.department 部门,
+		c.qrdType 订单类型,
+		if(c.cxCode='',c.sequenceNo,c.cxCode) 确认单编号,
+		 c.cgdNo 采购单号,
+		 c.customerAttr 客户属性,
+		 c.branch 客户分公司,
+		 c.customerName 客户名称,
+		c.goodName 产品名称,
+		c.firstCat 一级分类,
+		c.goodPrice 销售单价,
+		c.goodNum-c.thNum 下单数量,
+		c.totalPrice 销售总额,
+		c.createdTime 确认单下单时间,
+		a.addtime 回款日期,
+		a.total_fee 回款金额,
+		( timestampdiff( DAY, a.addtime, now())) 账期")
+		         ->order("a.addtime desc")
+		         ->cursor();
+		foreach ($list as $value){
+			yield $value;
+		}
+	}
 }

+ 79 - 38
app/admin/controller/Stat.php

@@ -61,43 +61,84 @@ class Stat extends BaseController{
 		}
 		return app_show(0,"获取成功",$data);
 	}
+//
+//	public function performance(){
+//		$param = $this->request->only(["start"=>"","end"=>""],"post","trim");
+//		$valid =Validate::rule([
+//			"start|起始时间"=>"require|date",
+//			"end|结束时间"=>"require|date|gt:start",
+//		]);
+//		if($valid->check($param)==false) return error_show(1005,$valid->getError());
+//		$list =Db::name("trade_pool")->alias("a")
+//		->leftJoin("assoc b","a.logNo = b.viceCode and b.is_del=0 and b.status=2  and b.type=2")
+//		->leftJoin("qrd_info c","b.orderCode=c.sequenceNo and c.is_del=0")
+//		->where(["a.status"=>2,"a.is_del"=>0])
+//		->whereBetween("a.addtime",[date("Y-m-d 00:00:00",strtotime($param['start'])),date("Y-m-d 23:59:59",
+//		strtotime($param['end']))])
+//		->field("
+//		a.logNo 回款单号,
+//		c.ownerName 销售人员,
+//		c.department 部门,
+//		c.qrdType 订单类型,
+//		if(c.cxCode='',c.sequenceNo,c.cxCode) 确认单编号,
+//		 c.cgdNo 采购单号,
+//		 c.customerAttr 客户属性,
+//		 c.branch 客户分公司,
+//		 c.customerName 客户名称,
+//		c.goodName 产品名称,
+//		c.firstCat 一级分类,
+//		c.goodPrice 销售单价,
+//		c.goodNum-c.thNum 下单数量,
+//		c.totalPrice 销售总额,
+//		c.createdTime 确认单下单时间,
+//		a.addtime 回款日期,
+//		a.total_fee 回款金额,
+//		( timestampdiff( DAY, a.addtime, now())) 账期")
+//		->order("a.addtime desc")
+//		->cursor();
+//		$header=["回款单号","销售人员","部门","订单类型","确认单编号","采购单号","客户属性","客户分公司","客户名称","产品名称","一级分类",
+//		"销售单价","下单数量","销售总额","确认单下单时间","回款日期","回款金额","账期"];
+//		excelExport("业绩报表",$header,$list);
+//	}
+//
+//	public function cgdPerformance(){
+//		$param = $this->request->only(["start"=>"","end"=>""],"post","trim");
+//		$valid =Validate::rule([
+//			"start|起始时间"=>"require|date",
+//			"end|结束时间"=>"require|date|gt:start",
+//		]);
+//		if($valid->check($param)==false) return error_show(1005,$valid->getError());
+//		$db =Db::connect("mysql_wsm");
+//		$list =$db->name("order_out")->alias("a")
+//		->leftJoin("sale b","a.orderCode=b.orderCode")
+//		->leftJoin("order_send c","a.outCode=c.outCode")
+//		->where(["a.status"=>2,"a.is_del"=>0,"b.is_stock"=>0])
+//		->whereBetween("a.sendtime",[date("Y-m-d 00:00:00",strtotime($param['start'])),date("Y-m-d 23:59:59",
+//		strtotime($param['end']))])
+//		->field("
+//			a.outCode 发货单号,
+//			c.cgdNo 采购单号,
+//			a.orderCode 销售单号,
+//			b.platform_id,
+//			b.apply_id ,
+//			b.apply_name,
+//			b.order_source,
+//			a.sendtime ,
+//			b.cat_id,
+//			b.good_name,
+//			a.post_name,
+//			a.post_code,
+//			a.send_num,
+//			b.sale_price,
+//			b.good_num,
+//			b.total_price,
+//			b.supplierNo
+//		")
+//		->order("a.addtime desc")
+//		->cursor();
+//		$header=["回款单号","销售人员","部门","订单类型","确认单编号","采购单号","客户属性","客户分公司","客户名称","产品名称","一级分类",
+//		"销售单价","下单数量","销售总额","确认单下单时间","回款日期","回款金额","账期"];
+//		excelExport("业绩报表",$header,$list);
+//	}
 
-	public function performance(){
-		$param = $this->request->only(["start"=>"","end"=>""],"post","trim");
-		$valid =Validate::rule([
-			"start|起始时间"=>"require|date",
-			"end|结束时间"=>"require|date|gt:start",
-		]);
-		if($valid->check($param)==false) return error_show(1005,$valid->getError());
-		$list =Db::name("trade_pool")->alias("a")
-		->leftJoin("assoc b","a.logNo = b.viceCode and b.is_del=0 and b.status=2  and b.type=2")
-		->leftJoin("qrd_info c","b.orderCode=c.sequenceNo and c.is_del=0")
-		->where(["a.status"=>2,"a.is_del"=>0])
-		->whereBetween("a.addtime",[date("Y-m-d 00:00:00",strtotime($param['start'])),date("Y-m-d 23:59:59",
-		strtotime($param['end']))])
-		->field("
-		a.logNo 回款单号,
-		c.ownerName 销售人员,
-		c.department 部门,
-		c.qrdType 订单类型,
-		if(c.cxCode='',c.sequenceNo,c.cxCode) 确认单编号,
-		 c.cgdNo 采购单号,
-		 c.customerAttr 客户属性,
-		 c.branch 客户分公司,
-		 c.customerName 客户名称,
-		c.goodName 产品名称,
-		c.firstCat 一级分类,
-		c.goodPrice 销售单价,
-		c.goodNum-c.thNum 下单数量,
-		c.totalPrice 销售总额,
-		c.createdTime 确认单下单时间,
-		a.addtime 回款日期,
-		a.total_fee 回款金额,
-		( timestampdiff( DAY, a.addtime, now())) 账期")
-		->order("a.addtime desc")
-		->cursor();
-		$header=["回款单号","销售人员","部门","订单类型","确认单编号","采购单号","客户属性","客户分公司","客户名称","产品名称","一级分类",
-		"销售单价","下单数量","销售总额","确认单下单时间","回款日期","回款金额","账期"];
-		excelExport("业绩报表",$header,$list);
-	}
 }

+ 4 - 5
app/admin/route/app.php

@@ -220,6 +220,9 @@ Route::rule('sbe','admin/Export/standingBookExport');//应收台账表
 Route::rule('pie','admin/Export/payInvoiceExport');//用友销票表
 Route::rule('pe','admin/Export/payExport');//对账单汇总
 Route::rule('cm','admin/Export/cgdManage');//采购单明细表
+route::rule("performance","admin/Export/performance");//项目客服部每月业绩
+route::rule("productPerformance","admin/Export/productPerformance");//项目客服部每月业绩
+route::rule("productTh","admin/Export/productTh");//项目客服部每月业绩
 
 Route::rule('execlist','admin/Exec/list');//脚本列表
 Route::rule('execstatus','admin/Exec/status');//脚本使用状态
@@ -230,10 +233,6 @@ Route::rule('execloglist','admin/Exec/loglist');//脚本执行记录列表
 Route::rule('execlogdel','admin/Exec/logdel');//脚本执行记录删除
 Route::rule('execaction','admin/Exec/actionList');//后端已上线脚本
 
-
-
-
-
 route::rule("interadd","admin/InterOrder/create");//网络部录单
 route::rule("interedit","admin/InterOrder/save");//网络部录单
 route::rule("interlist","admin/InterOrder/list");//网络部录单列表
@@ -243,5 +242,5 @@ route::rule("intercat","admin/InterOrder/getCat");//网络部录单分类
 route::rule("stats","admin/Stat/stats");//网络部录单分类
 route::rule("departstat","admin/Stat/depart");//网络部录单分类
 route::rule("totalstat","admin/Stat/Total");//网络部录单分类
-route::rule("performance","admin/Stat/performance");//项目客服部每月业绩
+
 

+ 2 - 2
app/common.php

@@ -483,8 +483,8 @@ function excelExport($fileName = '', $headArr = [], $data = [])
     header ('Cache-Control: cache, must-revalidate'); // HTTP/1.1
     header ('Pragma: public'); // HTTP/1.0
 
-    // header("Content-Type: application/octet-stream");                           # 流文件输出
-    //  header("Content-Transfer-Encoding: binary");                                # 告诉浏览器,这是二进制文件
+     header("Content-Type: application/octet-stream");                           # 流文件输出
+      header("Content-Transfer-Encoding: binary");                                # 告诉浏览器,这是二进制文件
     $objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
     $objWriter->save('php://output'); // 文件通过浏览器下载
     exit();