Ver Fonte

商品报表

wufeng há 2 anos atrás
pai
commit
b976cf499c
2 ficheiros alterados com 344 adições e 2 exclusões
  1. 338 2
      app/admin/controller/Report.php
  2. 6 0
      app/admin/route/app.php

+ 338 - 2
app/admin/controller/Report.php

@@ -5,7 +5,7 @@ namespace app\admin\controller;
 use think\facade\Db;
 use think\facade\Validate;
 
-//采购报表处理类
+//报表处理类
 class Report extends Base
 {
     //商品表部分字段的中英文对照
@@ -202,7 +202,7 @@ class Report extends Base
             ];
 
         }
-      
+
         excelSaveBatch($data);
 
     }
@@ -1787,4 +1787,340 @@ class Report extends Base
          **/
     }
 
+
+    //【商品信息】基本信息(赵丹要的)_列表
+    public function goodSimpleZhao()
+    {
+        $param = $this->request->only([
+            'token',
+            'creater' => '',
+            'supplier_name' => '',
+            'start_date' => '',
+            'end_date' => '',
+            'page' => 1,
+            'size' => 15
+        ], 'post', 'trim');
+
+        $val_params = Validate::rule([
+            'start_date' => 'date|elt:end_date',
+            'end_date' => 'date'
+        ]);
+
+        if (!$val_params->check($param)) return error_show(1004, $val_params->getError());
+
+        $where = [['s.is_del', '=', 0]];
+        if ($param['start_date'] != '' && $param['end_date'] != '') $where[] = ['gp.online_time', 'between', [$param['start_date'] . ' 00:00:00', $param['end_date'] . ' 23:59:59']];
+        if ($param['creater'] != '') $where[] = ['gb.creater', 'like', '%' . $param['creater'] . '%'];
+        if ($param['supplier_name'] != '') $where[] = ['s.name', 'like', '%' . $param['supplier_name'] . '%'];
+
+        $count = Db::name('good_platform')
+            ->alias('gp')
+            ->leftJoin('good_basic gb', 'gb.spuCode=gp.spuCode')
+            ->leftJoin('brand b', 'b.id=gb.brand_id')
+            ->leftJoin('unit u', 'u.id=gb.good_unit')
+            ->leftJoin('supplier s', 's.code=gb.supplierNo')
+            ->leftJoin('platform p', 'p.id=gp.platform_code')
+            ->where($where)
+            ->count('gp.id');
+
+        $list = Db::name('good_platform')
+            ->alias('gp')
+            ->field('gp.skuCode,gp.spuCode,gp.plat_code,gb.good_name,b.brand_name,gb.cat_id,bi.company,gb.creater,p.platform_name,gp.online_time,gp.exam_status,gb.is_stock,gb.good_type,u.unit,gb.good_remark,gb.craft_desc,gb.noble_metal,gb.cgd_gold_price,gb.demo_fee,gb.open_fee,gb.sample_fee,gb.tax,gb.supply_area,s.name')
+            ->leftJoin('good_basic gb', 'gb.spuCode=gp.spuCode')
+            ->leftJoin('brand b', 'b.id=gb.brand_id')
+            ->leftJoin('unit u', 'u.id=gb.good_unit')
+            ->leftJoin('supplier s', 's.code=gb.supplierNo')
+            ->leftJoin('platform p', 'p.id=gp.platform_code')
+            ->leftJoin('business bi', 'bi.companyNo=gb.companyNo')
+            ->where($where)
+            ->order('gp.id', 'desc')
+            ->page($param['page'], $param['size'])
+            ->cursor();
+
+        $exam_status = [0 => '待提交', 1 => '待完善成本', 2 => '待产品审核', 3 => '待财务定价', 4 => '待财务审核定价', 5 => '待上线', 6 => '上线成功', 7 => '审核失败', 8 => '已下线'];
+        $is_stock = [0 => '不是', 1 => '是'];
+        $good_type = [0 => '不是', 1 => '是'];
+        $noble_metal = [1 => '18K', 2 => '24K', 3 => '白银'];
+        $supply_area = [1 => '全国', 2 => '全国除偏远'];
+
+        $data = [];
+        foreach ($list as $value) {
+            $value['catinfo'] = made($value['cat_id']);
+            $value['exam_status'] = isset($exam_status[$value['exam_status']]) ? $exam_status[$value['exam_status']] : '';
+            $value['is_stock'] = isset($is_stock[$value['is_stock']]) ? $is_stock[$value['is_stock']] : '';
+            $value['good_type'] = isset($good_type[$value['good_type']]) ? $good_type[$value['good_type']] : '';
+            $value['specifications'] = Db::name('good_spec')
+                ->alias('gp')
+                ->leftJoin('specs s', 's.id=gp.spec_id')
+                ->leftJoin('spec_value sv', 'sv.id=gp.spec_value_id')
+                ->where([
+                    'gp.spuCode' => $value['spuCode'],
+                    'gp.is_del' => 0,
+                    's.spec_name' => '规格',
+                ])->value('sv.spec_value', '');
+            $value['model'] = Db::name('good_spec')
+                ->alias('gp')
+                ->leftJoin('specs s', 's.id=gp.spec_id')
+                ->leftJoin('spec_value sv', 'sv.id=gp.spec_value_id')
+                ->where([
+                    'gp.spuCode' => $value['spuCode'],
+                    'gp.is_del' => 0,
+                    's.spec_name' => '型号',
+                ])->value('sv.spec_value', '');
+
+            $value['noble_metal'] = isset($noble_metal[$value['noble_metal']]) ? $noble_metal[$value['noble_metal']] : '';
+            $value['supply_area'] = isset($supply_area[$value['supply_area']]) ? $supply_area[$value['supply_area']] : '';
+
+            $data[] = $value;
+        }
+
+        return app_show(0, '请求成功', ['list' => $data, 'count' => $count]);
+
+    }
+
+    //【商品信息】基本信息(赵丹要的)_导出
+    public function goodSimpleZhaoExport()
+    {
+        $param = $this->request->only([
+            'token',
+            'creater' => '',
+            'supplier_name' => '',
+            'start_date' => '',
+            'end_date' => ''
+        ], 'post', 'trim');
+
+        $val_params = Validate::rule([
+            'start_date' => 'date|elt:end_date',
+            'end_date' => 'date'
+        ]);
+
+        if (!$val_params->check($param)) return error_show(1004, $val_params->getError());
+
+        $where = [['s.is_del', '=', 0]]; //exam_status==6 上线成功
+        if ($param['start_date'] != '' && $param['end_date'] != '') $where[] = ['gp.online_time', 'between', [$param['start_date'] . ' 00:00:00', $param['end_date'] . ' 23:59:59']];
+        if ($param['creater'] != '') $where[] = ['gb.creater', 'like', '%' . $param['creater'] . '%'];
+        if ($param['supplier_name'] != '') $where[] = ['s.name', 'like', '%' . $param['supplier_name'] . '%'];
+
+        $list = Db::name('good_platform')
+            ->alias('gp')
+            ->field('gp.skuCode as 商品上线编号,gp.spuCode as 商品成本编号,gp.plat_code as 平台商品编码,gb.good_name as 商品名称,b.brand_name as 品牌名称,gb.cat_id as 分类,bi.company as 业务企业名称,gb.creater as 采购员,p.platform_name as 上线平台,gp.online_time as 上线完成时间,gp.exam_status as 上下线状态,gb.is_stock as 是否库存品,gb.good_type as 是否定制,"" as 规格,"" as 型号,u.unit as 单位,gb.good_remark as 商品备注,gb.craft_desc as 工艺说明,gb.noble_metal as 贵金属信息,gb.cgd_gold_price as 供应商采购金价,gb.demo_fee as 打样费,gb.open_fee as 开模费,gb.sample_fee as 调样费,gb.tax as 税点,gb.supply_area as 供货区域,s.name as 供应商名称')
+            ->leftJoin('good_basic gb', 'gb.spuCode=gp.spuCode')
+            ->leftJoin('brand b', 'b.id=gb.brand_id')
+            ->leftJoin('unit u', 'u.id=gb.good_unit')
+            ->leftJoin('supplier s', 's.code=gb.supplierNo')
+            ->leftJoin('platform p', 'p.id=gp.platform_code')
+            ->leftJoin('business bi', 'bi.companyNo=gb.companyNo')
+            ->where($where)
+            ->order('gp.id', 'desc')
+            ->cursor();
+
+        $exam_status = [0 => '待提交', 1 => '待完善成本', 2 => '待产品审核', 3 => '待财务定价', 4 => '待财务审核定价', 5 => '待上线', 6 => '上线成功', 7 => '审核失败', 8 => '已下线'];
+        $is_stock = [0 => '不是', 1 => '是'];
+        $good_type = [0 => '不是', 1 => '是'];
+        $noble_metal = [1 => '18K', 2 => '24K', 3 => '白银'];
+        $supply_area = [1 => '全国', 2 => '全国除偏远'];
+
+        $data = [];
+        foreach ($list as $value) {
+            $value['分类'] = implode('/', array_column(made($value['分类']), 'name'));
+            $value['上下线状态'] = isset($exam_status[$value['上下线状态']]) ? $exam_status[$value['上下线状态']] : '';
+            $value['是否库存品'] = isset($is_stock[$value['是否库存品']]) ? $is_stock[$value['是否库存品']] : '';
+            $value['是否定制'] = isset($good_type[$value['是否定制']]) ? $good_type[$value['是否定制']] : '';
+            $value['规格'] = Db::name('good_spec')
+                ->alias('gp')
+                ->leftJoin('specs s', 's.id=gp.spec_id')
+                ->leftJoin('spec_value sv', 'sv.id=gp.spec_value_id')
+                ->where([
+                    'gp.spuCode' => $value['商品成本编号'],
+                    'gp.is_del' => 0,
+                    's.spec_name' => '规格',
+                ])->value('sv.spec_value', '');
+            $value['型号'] = Db::name('good_spec')
+                ->alias('gp')
+                ->leftJoin('specs s', 's.id=gp.spec_id')
+                ->leftJoin('spec_value sv', 'sv.id=gp.spec_value_id')
+                ->where([
+                    'gp.spuCode' => $value['商品成本编号'],
+                    'gp.is_del' => 0,
+                    's.spec_name' => '型号',
+                ])->value('sv.spec_value', '');
+
+            $value['贵金属信息'] = isset($noble_metal[$value['贵金属信息']]) ? $noble_metal[$value['贵金属信息']] : '';
+            $value['供货区域'] = isset($supply_area[$value['供货区域']]) ? $supply_area[$value['供货区域']] : '';
+
+            $data[] = $value;
+        }
+
+        if (empty($data)) $data[] = '没有可供导出的数据';
+
+        $headerArr = array_keys($data[0]);
+        excelSave('商品信息导出表(基本信息)' . date('YmdHis'), $headerArr, $data);
+
+    }
+
+    //【商品信息】成本(赵丹要的)_列表
+    public function goodCostZhao()
+    {
+        $param = $this->request->only([
+            'token',
+            'start_date' => '',
+            'end_date' => '',
+            'page' => 1,
+            'size' => 15
+        ], 'post', 'trim');
+
+        $val_params = Validate::rule([
+            'start_date' => 'date|elt:end_date',
+            'end_date' => 'date'
+        ]);
+
+        if (!$val_params->check($param)) return error_show(1004, $val_params->getError());
+
+        $where = [];
+        if ($param['start_date'] != '' && $param['end_date'] != '') $where[] = ['gp.online_time', 'between', [$param['start_date'] . ' 00:00:00', $param['end_date'] . ' 23:59:59']];
+
+        $count = Db::name('good_platform')
+            ->alias('gp')
+            ->leftJoin('good_basic gb', 'gb.spuCode=gp.spuCode')
+            ->leftJoin('platform p', 'p.id=gp.platform_code')
+            ->leftJoin('good_nake gn', 'gn.spuCode=gb.spuCode')
+            ->where($where)
+            ->count('gp.id');
+
+        $data = Db::name('good_platform')
+            ->alias('gp')
+            ->field('gp.skuCode,gp.spuCode,gp.plat_code,gb.good_name,p.platform_name,gp.online_time,gb.moq,gn.nake_fee,gb.cost_fee,gn.delivery_fee,gb.cert_fee,gb.mark_fee,gb.packing_fee,gn.other_fee,gn.nake_total')
+            ->leftJoin('good_basic gb', 'gb.spuCode=gp.spuCode')
+            ->leftJoin('platform p', 'p.id=gp.platform_code')
+            ->leftJoin('good_nake gn', 'gn.spuCode=gb.spuCode')
+            ->where($where)
+            ->order('gp.id', 'desc')
+            ->page($param['page'], $param['size'])
+            ->select()
+            ->toArray();
+
+        return app_show(0, '请求成功', ['list' => $data, 'count' => $count]);
+
+    }
+
+    //【商品信息】成本(赵丹要的)_导出
+    public function goodCostZhaoExport()
+    {
+        $param = $this->request->only([
+            'token',
+            'start_date' => '',
+            'end_date' => ''
+        ], 'post', 'trim');
+
+        $val_params = Validate::rule([
+            'start_date' => 'date|elt:end_date',
+            'end_date' => 'date'
+        ]);
+
+        if (!$val_params->check($param)) return error_show(1004, $val_params->getError());
+
+        $where = [];
+        if ($param['start_date'] != '' && $param['end_date'] != '') $where[] = ['gp.online_time', 'between', [$param['start_date'] . ' 00:00:00', $param['end_date'] . ' 23:59:59']];
+
+        $data = Db::name('good_platform')
+            ->alias('gp')
+            ->field('gp.skuCode as 商品上线编号,gp.spuCode as 商品成本编号,gp.plat_code as 平台商品编码,gb.good_name as 商品名称,p.platform_name as 上线平台,gp.online_time as 上线完成时间,gb.moq 起订量,gn.nake_fee 成本单价,gb.cost_fee 工艺费,gn.delivery_fee 物流费,gb.cert_fee 证书费,gb.mark_fee 加标费,gb.packing_fee 包装费,gn.other_fee 其他费用,gn.nake_total 成本合计')
+            ->where($where)
+            ->leftJoin('good_basic gb', 'gb.spuCode=gp.spuCode')
+            ->leftJoin('platform p', 'p.id=gp.platform_code')
+            ->leftJoin('good_nake gn', 'gn.spuCode=gb.spuCode')
+            ->order('gp.id', 'desc')
+            ->select()
+            ->toArray();
+
+        if (empty($data)) $data[] = '没有可供导出的数据';
+
+        $headerArr = array_keys($data[0]);
+        excelSave('商品信息导出表(成本)' . date('YmdHis'), $headerArr, $data);
+
+    }
+
+    //【商品信息】售价(赵丹要的)_列表
+    public function goodPriceZhao()
+    {
+        $param = $this->request->only([
+            'token',
+            'start_date' => '',
+            'end_date' => '',
+            'page' => 1,
+            'size' => 15
+        ], 'post', 'trim');
+
+        $val_params = Validate::rule([
+            'start_date' => 'date|elt:end_date',
+            'end_date' => 'date'
+        ]);
+
+        if (!$val_params->check($param)) return error_show(1004, $val_params->getError());
+
+        $where = [];
+        if ($param['start_date'] != '' && $param['end_date'] != '') $where[] = ['gp.online_time', 'between', [$param['start_date'] . ' 00:00:00', $param['end_date'] . ' 23:59:59']];
+
+        $count = Db::name('good_platform')
+            ->alias('gp')
+            ->where($where)
+            ->leftJoin('good_basic gb', 'gb.spuCode=gp.spuCode')
+            ->leftJoin('platform p', 'p.id=gp.platform_code')
+            ->leftJoin('good_ladder gl', 'gl.skuCode=gp.skuCode')
+            ->count('gp.id');
+
+        $data = Db::name('good_platform')
+            ->alias('gp')
+            ->field('gp.skuCode,gp.spuCode,gp.plat_code,gb.good_name,p.platform_name,gp.online_time,gb.moq,gl.sale_price,gl.cost_fee,gl.market_price,gl.market_platform')
+            ->where($where)
+            ->leftJoin('good_basic gb', 'gb.spuCode=gp.spuCode')
+            ->leftJoin('platform p', 'p.id=gp.platform_code')
+            ->leftJoin('good_ladder gl', 'gl.skuCode=gp.skuCode')
+            ->order('gp.id', 'desc')
+            ->page($param['page'], $param['size'])
+            ->select()
+            ->toArray();
+
+        return app_show(0, '请求成功', ['list' => $data, 'count' => $count]);
+
+    }
+
+    //【商品信息】售价(赵丹要的)_导出
+    public function goodPriceZhaoExport()
+    {
+        $param = $this->request->only([
+            'token',
+            'start_date' => '',
+            'end_date' => ''
+        ], 'post', 'trim');
+
+        $val_params = Validate::rule([
+            'start_date' => 'date|elt:end_date',
+            'end_date' => 'date'
+        ]);
+
+        if (!$val_params->check($param)) return error_show(1004, $val_params->getError());
+
+        $where = [];
+        if ($param['start_date'] != '' && $param['end_date'] != '') $where[] = ['gp.online_time', 'between', [$param['start_date'] . ' 00:00:00', $param['end_date'] . ' 23:59:59']];
+
+        $data = Db::name('good_platform')
+            ->alias('gp')
+            ->field('gp.skuCode as 商品上线编号,gp.spuCode as 商品成本编号,gp.plat_code as 平台商品编码,gb.good_name as 商品名称,p.platform_name as 上线平台,gp.online_time as 上线完成时间,gb.moq 起订量,gl.sale_price 售价,gl.cost_fee 工艺费,gl.market_price 市场价,gl.market_platform 对比平台')
+            ->where($where)
+            ->leftJoin('good_basic gb', 'gb.spuCode=gp.spuCode')
+            ->leftJoin('platform p', 'p.id=gp.platform_code')
+            ->leftJoin('good_ladder gl', 'gl.skuCode=gp.skuCode')
+            ->order('gp.id', 'desc')
+            ->select()
+            ->toArray();
+
+        if (empty($data)) $data[] = '没有可供导出的数据';
+
+        $headerArr = array_keys($data[0]);
+        excelSave('商品信息导出表(售价)' . date('YmdHis'), $headerArr, $data);
+
+    }
+
+
 }

+ 6 - 0
app/admin/route/app.php

@@ -517,6 +517,12 @@ Route::rule('reportchangeloglist','admin/Report/ChangeLogList');//报表-商品
 Route::rule('reportchangelogeexport','admin/Report/ChangeLogExport');//报表-商品报表-商品修改报表_导出
 Route::rule('reportgoodloglist','admin/Report/GoodLogList');//报表-出入库明细报表_列表
 Route::rule('reportgoodlogexport','admin/Report/GoodLogExport');//报表-出入库明细报表_导出
+Route::rule('goodSimpleZhao', 'admin/Report/goodSimpleZhao');//【商品信息】基本信息(赵丹要的)_列表
+Route::rule('goodSimpleZhaoExport', 'admin/Report/goodSimpleZhaoExport');//【商品信息】基本信息(赵丹要的)_导出
+Route::rule('goodCostZhao', 'admin/Report/goodCostZhao');//【商品信息】成本(赵丹要的)_列表
+Route::rule('goodCostZhaoExport', 'admin/Report/goodCostZhaoExport');//【商品信息】成本(赵丹要的)_导出
+Route::rule('goodPriceZhao', 'admin/Report/goodPriceZhao');//【商品信息】售价(赵丹要的)_列表
+Route::rule('goodPriceZhaoExport', 'admin/Report/goodPriceZhaoExport');//【商品信息】售价(赵丹要的)_导出
 
 //采购预约报表
 Route::rule("execlist",'admin/Exec/list');