wufeng il y a 2 ans
Parent
commit
7bd7f7d85f
1 fichiers modifiés avec 56 ajouts et 27 suppressions
  1. 56 27
      app/admin/controller/SaleReport.php

+ 56 - 27
app/admin/controller/SaleReport.php

@@ -2,8 +2,8 @@
 
 namespace app\admin\controller;
 
-use app\abutment\model\SupplierRelationUser;
-use app\abutment\model\SupplierUser;
+//use app\abutment\model\SupplierRelationUser;
+//use app\abutment\model\SupplierUser;
 use think\facade\Db;
 
 //前端报表处理类
@@ -2186,20 +2186,20 @@ class SaleReport extends Base
 
         $data = Db::name('order_out')
             ->alias('a')
-            ->field('a.addtime,a.orderCode,a.sendtime,a.outCode,a.status,b.good_name,b.sale_price,a.send_num,a.apply_name,ci.name apply_company,c.person cgder,a.post_name,a.post_code,oa.contactor,oa.mobile,oa.addr,oa.addr_code,a.remark,b.order_type')
+            ->field('a.addtime,a.orderCode,a.sendtime,a.outCode,a.status,b.good_name,b.sale_price,a.send_num,a.apply_name,ci.name apply_company,"" cgder,a.post_name,a.post_code,oa.contactor,oa.mobile,oa.addr,oa.addr_code,a.remark,b.order_type,po.supplierNo')
             ->leftJoin("sale b", "b.orderCode=a.orderCode")
             ->leftJoin("order_send os", "os.outCode=a.outCode")
             ->leftJoin("purchease_order po", "po.cgdNo=os.cgdNo")
             ->leftJoin("order_addr oa", "oa.id=a.addrid")
             ->leftJoin("depart_user u", "u.uid=a.apply_id AND u.is_del=0")
             ->leftJoin("company_item ci", "ci.id=u.itemid")
-            ->leftJoin("supplier c", "c.code=po.supplierNo")
+//            ->leftJoin("supplier c", "c.code=po.supplierNo")
             ->where($where)
             ->page($param['page'], $param['size'])
             ->order("a.addtime desc")
             ->cursor();
 
-        $list = [];
+        $list = $tmp=[];
         foreach ($data as $value) {
 
             $value['send_total_price'] = round($value['send_num'] * $value['sale_price'], 2);
@@ -2213,10 +2213,20 @@ class SaleReport extends Base
             }
 
             $value['addr'] = GetAddr($value['addr_code']) . $value['addr'];
+            if(!isset($tmp[$value['supplierNo']])) $tmp[$value['supplierNo']] = $value['supplierNo'];
 
             $list[] = $value;
         }
 
+        $person = \app\admin\common\User::getIns()->handle('sGetList',['more_code'=>array_values($tmp),'size'=>count($tmp)]);
+        $person = array_column($person['data']['list'],'person','code');
+        foreach ($list as &$value){
+            $value['cgder'] = $person[$value['supplierNo']]??'';
+        }
+
+        unset($tmp);
+        unset($person);
+
         return app_show(0, '请求成功', ['list' => $list, 'count' => $count]);
 
     }
@@ -2236,19 +2246,19 @@ class SaleReport extends Base
 
         $data = Db::name('order_out')
             ->alias('a')
-            ->field('a.addtime 下单日期,a.orderCode 订单编号,a.sendtime 发货时间,a.outCode 发货申请单号,a.status 发货申请单状态,b.good_name 商品名称,b.sale_price 产品单价,a.send_num 发货数量,"" 发货申请单总价,a.apply_name 申请人,ci.name 部门,c.person 采购员,a.post_name 快递公司,a.post_code 快递单号,oa.contactor 收货人,oa.mobile 收货电话,oa.addr 收货地址,oa.addr_code,a.remark 备注,b.order_type 订单类型')
+            ->field('a.addtime 下单日期,a.orderCode 订单编号,a.sendtime 发货时间,a.outCode 发货申请单号,a.status 发货申请单状态,b.good_name 商品名称,b.sale_price 产品单价,a.send_num 发货数量,"" 发货申请单总价,a.apply_name 申请人,ci.name 部门,"" 采购员,a.post_name 快递公司,a.post_code 快递单号,oa.contactor 收货人,oa.mobile 收货电话,oa.addr 收货地址,oa.addr_code,a.remark 备注,b.order_type 订单类型,po.supplierNo')
             ->leftJoin("sale b", "b.orderCode=a.orderCode")
             ->leftJoin("order_send os", "os.outCode=a.outCode")
             ->leftJoin("purchease_order po", "po.cgdNo=os.cgdNo")
             ->leftJoin("order_addr oa", "oa.id=a.addrid")
             ->leftJoin("depart_user u", "u.uid=a.apply_id AND u.is_del=0")
             ->leftJoin("company_item ci", "ci.id=u.itemid")
-            ->leftJoin("supplier c", "c.code=po.supplierNo")
+//            ->leftJoin("supplier c", "c.code=po.supplierNo")
             ->where($where)
             ->order("a.addtime desc")
             ->cursor();
 
-        $list = [];
+        $list = $tmp = [];
         foreach ($data as $value) {
 
             $value['发货申请单总价'] = round(bcmul($value['发货数量'], $value['产品单价'], 3), 2);
@@ -2264,11 +2274,23 @@ class SaleReport extends Base
 
             $value['收货地址'] = GetAddr($value['addr_code']) . $value['收货地址'];
 
+            if(!isset($tmp[$value['supplierNo']])) $tmp[$value['supplierNo']] = $value['supplierNo'];
+
             unset($value['addr_code']);
+            unset($value['supplierNo']);
 
             $list[] = $value;
         }
 
+        $person = \app\admin\common\User::getIns()->handle('sGetList',['more_code'=>array_values($tmp),'size'=>count($tmp)]);
+        $person = array_column($person['data']['list'],'person','code');
+        foreach ($list as &$value){
+            $value['采购员'] = $person[$value['supplierNo']]??'';
+        }
+
+        unset($tmp);
+        unset($person);
+
         if (empty($list)) $list[] = ['没有相关可导出的数据'];
         excelSave('直接发货申请单统计' . date('YmdHis'), array_keys($list[0]), $list);
 
@@ -2499,9 +2521,10 @@ class SaleReport extends Base
         $list = [];
 //        $total = ['cat_1' => '总计', 'cat_2' => '', 'cat_3' => '', 'tag_1' => 0, 'tag_2' => 0, 'tag_3' => 0, 'tag_supplier' => 0, 'tag_person' => 0, 'tag_logistics' => 0, 'tag_total' => 0];
 
-        $supplierNos = SupplierRelationUser::where(['is_del' => SupplierUser::$is_del_normal, 'status' => SupplierUser::$status_normal])
-            ->group('supplierNo')
-            ->column('supplierNo');
+//        $supplierNos = SupplierRelationUser::where(['is_del' => SupplierUser::$is_del_normal, 'status' => SupplierUser::$status_normal])
+//            ->group('supplierNo')
+//            ->column('supplierNo');
+        $has_sup_acc=checkHasAccountBySupplierNos();
 
         foreach ($data as $val) {
 
@@ -2527,7 +2550,7 @@ class SaleReport extends Base
                     break;
                 case 2: //非库存品
                 case 3: //咨询采反
-                    if (in_array($val['supplierNo'], $supplierNos)) $list[$val['cat_id']]['tag_supplier']++;
+                    if (in_array($val['supplierNo'], $has_sup_acc)) $list[$val['cat_id']]['tag_supplier']++;
                     else $list[$val['cat_id']]['tag_person']++;
                     break;
 
@@ -2562,9 +2585,11 @@ class SaleReport extends Base
             ->where($where)
             ->cursor();
 
-        $supplierNos = SupplierRelationUser::where(['is_del' => SupplierUser::$is_del_normal, 'status' => SupplierUser::$status_normal])
-            ->group('supplierNo')
-            ->column('supplierNo');
+        $has_sup_acc=checkHasAccountBySupplierNos();
+
+//        $supplierNos = SupplierRelationUser::where(['is_del' => SupplierUser::$is_del_normal, 'status' => SupplierUser::$status_normal])
+//            ->group('supplierNo')
+//            ->column('supplierNo');
 
         $list = [];
 
@@ -2598,12 +2623,12 @@ class SaleReport extends Base
                 case 2:
                     $list[$val['cat_id']]['非库存品']++;
 //                    $total['非库存品']++;
-                    if (in_array($val['supplierNo'], $supplierNos)) $list[$val['cat_id']]['供应商发货']++;
+                    if (in_array($val['supplierNo'], $has_sup_acc)) $list[$val['cat_id']]['供应商发货']++;
                     else $list[$val['cat_id']]['负责人发货']++;
                     break;
                 case 3:
                     $list[$val['cat_id']]['咨询采反']++;
-                    if (in_array($val['supplierNo'], $supplierNos)) $list[$val['cat_id']]['供应商发货']++;
+                    if (in_array($val['supplierNo'], $has_sup_acc)) $list[$val['cat_id']]['供应商发货']++;
                     else $list[$val['cat_id']]['负责人发货']++;
 //                    $total['咨询采反']++;
                     break;
@@ -2803,11 +2828,13 @@ class SaleReport extends Base
         if ($param['start_day'] != '' && $param['end_day'] != '') $where[] = ['a.addtime', 'between', [$param['start_day'] . ' 00:00:00', $param['end_day'] . ' 23:59:59']];
 
         if ($param['flag'] != '') {
-            $supplierNos = SupplierRelationUser::where(['is_del' => SupplierUser::$is_del_normal, 'status' => SupplierUser::$status_normal])
-                ->group('supplierNo')
-                ->column('supplierNo');
-            if ($param['flag'] == 1) $where[] = ['a.supplierNo', 'in', $supplierNos];//1.开通账号的
-            else $where[] = ['a.supplierNo', 'not in', $supplierNos];//2.未开通账号的
+//            $supplierNos = SupplierRelationUser::where(['is_del' => SupplierUser::$is_del_normal, 'status' => SupplierUser::$status_normal])
+//                ->group('supplierNo')
+//                ->column('supplierNo');
+            $has_sup_acc = checkHasAccountBySupplierNos();
+
+            if ($param['flag'] == 1) $where[] = ['a.supplierNo', 'in', array_keys($has_sup_acc)];//1.开通账号的
+            else $where[] = ['a.supplierNo', 'not in', array_keys($has_sup_acc)];//2.未开通账号的
         }
 
         $data = Db::name('purchease_order')
@@ -2903,11 +2930,13 @@ class SaleReport extends Base
         if ($param['start_day'] != '' && $param['end_day'] != '') $where[] = ['a.addtime', 'between', [$param['start_day'] . ' 00:00:00', $param['end_day'] . ' 23:59:59']];
 
         if ($param['flag'] != '') {
-            $supplierNos = SupplierRelationUser::where(['is_del' => SupplierUser::$is_del_normal, 'status' => SupplierUser::$status_normal])
-                ->group('supplierNo')
-                ->column('supplierNo');
-            if ($param['flag'] == 1) $where[] = ['a.supplierNo', 'in', $supplierNos];//1.开通账号的
-            else $where[] = ['a.supplierNo', 'not in', $supplierNos];//2.未开通账号的
+//            $supplierNos = SupplierRelationUser::where(['is_del' => SupplierUser::$is_del_normal, 'status' => SupplierUser::$status_normal])
+//                ->group('supplierNo')
+//                ->column('supplierNo');
+            $has_sup_acc = checkHasAccountBySupplierNos();
+
+            if ($param['flag'] == 1) $where[] = ['a.supplierNo', 'in', array_keys($has_sup_acc)];//1.开通账号的
+            else $where[] = ['a.supplierNo', 'not in', array_keys($has_sup_acc)];//2.未开通账号的
         }
 
         $data = Db::name('purchease_order')