فهرست منبع

Merge branch 'version1.5' of wugg/phpstock into master-online

wugg 3 سال پیش
والد
کامیت
81177f4898

+ 5 - 1
app/admin/controller/Consult.php

@@ -1438,7 +1438,11 @@ class Consult extends Base
             //reject驳回原因,status==5表示驳回
             $value['reject']=[];
             if ($value['status'] == 5) {
-                $value['reject'] = Db::name('bargain_order')->where(['infoNo' => $infoNo])->whereIn('status', [5, 6])->column('remark');
+                $value['reject'] = Db::name('bargain_order')
+                    ->field('id,remark,status')
+                    ->where(['infoNo' => $infoNo, 'bidsNo' => $value['bidNo']])
+                    ->whereIn('status', [5, 6])
+                    ->find();
             }
             $data[] = $value;
         }

+ 127 - 0
app/admin/controller/Data.php

@@ -0,0 +1,127 @@
+<?php
+
+namespace app\admin\controller;
+
+use think\App;
+use think\facade\Db;
+
+//数据统计类
+class Data extends Base
+
+{
+    //数据看板,获取相关统计数据
+    public function index()
+    {
+        $data = [];
+
+        //1.今日销量(单数、金额)
+        $data['today_sales_volume'] = [
+            'orders_number' => '0',
+            'money' => '00.00'
+        ];
+
+        //2.今日销冠(部门、姓名、单数、金额)
+        $data['today_sales_champion'] = [
+            'company_id' => '0',
+            'company' => 'xxx部',
+            'nickname' => '张三',
+            'orders' => '0',
+            'money' => '00.00'
+        ];
+
+        //3.今日采购(采购订单数量、商品数量、竞价单数、反馈商品数)
+        $data['today_purchase'] = [
+            'orders' => '0',
+            'goods' => '0',
+            'bidding_orders' => '0',
+            'feedback_goods' => '0'
+        ];
+
+        //4.今日订单列表(按照完成率排序,前三名的部门、单数、金额)
+        $data['today_order'] = [
+            ['company' => 'xxx部', 'orders' => '30', 'money' => '300'],
+            ['company' => 'xx部', 'orders' => '20', 'money' => '200'],
+            ['company' => 'x部', 'orders' => '10', 'money' => '100'],
+        ];
+
+        //5.本月完成率列表(按照完成率排序,前三名的部门、完成单数和完成率,区分今日、本周、本月和毛利率状态:2达标、1最低、0不达标等情况)
+        $data['month_completion_rate'] = [
+            'today' => [
+                ['company' => 'xxx部', 'completion' => 10, 'completion_rate' => '30%', 'type' => '2'],
+                ['company' => 'xx部', 'completion' => 10, 'completion_rate' => '20%', 'type' => '1'],
+                ['company' => 'x部', 'completion' => 10, 'completion_rate' => '10%', 'type' => '0'],
+            ],
+            'week' => [
+                ['company' => 'xxx部', 'completion' => 10, 'completion_rate' => '30%', 'type' => '2'],
+                ['company' => 'xx部', 'completion' => 10, 'completion_rate' => '20%', 'type' => '1'],
+                ['company' => 'x部', 'completion' => 10, 'completion_rate' => '10%', 'type' => '0'],
+            ],
+            'month' => [
+                ['company' => 'xxx部', 'completion' => 10, 'completion_rate' => '30%', 'type' => '2'],
+                ['company' => 'xx部', 'completion' => 10, 'completion_rate' => '20%', 'type' => '1'],
+                ['company' => 'x部', 'completion' => 10, 'completion_rate' => '10%', 'type' => '0'],
+            ],
+        ];
+
+        //6.待开票(单数、金额)
+        $data['wait_invoice'] = [
+            'orders' => '10',
+            'money' => '34.45'
+        ];
+
+        //7.待回款(单数、金额)
+        $data['wait_return'] = [
+            'orders' => '100',
+            'money' => '3.45'
+        ];
+
+        //8.待回票(单数、金额)
+        $data['wait_ticket'] = [
+            'orders' => '8',
+            'money' => '38.5'
+        ];
+
+        //9.待付款(单数、金额)
+        $data['wait_payment'] = [
+            'orders' => '34',
+            'money' => '5338.58'
+        ];
+
+
+
+        //10.竞价(招标单数、未竞标单数)
+        $data['bidding'] = [
+            'bidding_orders' => '10',
+            'no_bidding_orders' => '2'
+        ];
+
+        //11.采购单(采购单数、未下单数)
+        $data['purchase'] = [
+            'purchase_orders' => '10',
+            'no_purchase_orders' => '2'
+        ];
+
+        //12.采购单(采购下单数、未生产单数)
+        $data['purchase_2'] = [
+            'orders' => '10',
+            'no_orders' => '2'
+        ];
+
+        //13.未发货(单数、商品数)
+        $data['no_deliver'] = [
+            'orders' => '10',
+            'goods' => '2'
+        ];
+
+        //14.转单率(部门名称、今日转单率、本月转单率,今年转单率,按照年度转单率排序)
+        $data['transfer_order_rate'] = [
+            ['company' => 'xxx部', 'today_tor' => '34%', 'month_tor' => '68%', 'year_tor' => '45%'],
+            ['company' => 'xx部', 'today_tor' => '34%', 'month_tor' => '68%', 'year_tor' => '40%'],
+            ['company' => 'x部', 'today_tor' => '34%', 'month_tor' => '68%', 'year_tor' => '6%'],
+        ];
+
+        return app_show(0, '请求成功', $data);
+
+    }
+
+}

+ 80 - 0
app/admin/controller/Good.php

@@ -6,6 +6,7 @@ namespace app\admin\controller;
 use app\admin\model\GoodLog;
 use think\App;
 use think\facade\Db;
+use think\facade\Validate;
 
 //线上商品
 class Good extends Base
@@ -844,4 +845,83 @@ class Good extends Base
         return app_show(0,"获取成功",['list'=>$data,'count'=>$count]);
     }
 
+
+    //根据价格区间,筛选符合条件的商品列表
+    public function getGoodListByLadder()
+    {
+
+        //1.请求参数
+        $param=$this->request->only(['min_price','max_price','page'=>1,'size'=>15],'post','trim');
+
+        //2.参数校验
+        $val=Validate::rule([
+            'min_price'=>'require|float|elt:max_price',
+            'max_price'=>'require|float|egt:min_price',
+            'page'=>'require|number|gt:0',
+            'size'=>'require|number|gt:0',
+        ]);
+
+        if(!$val->check($param)) return error_show(1004,$val->getError());
+
+        //3.组织SQL语句
+        $skuCodes = Db::name('good_ladder')
+            ->field('skuCode')
+            ->whereBetween('sale_price', [$param['min_price'], $param['max_price']])
+            ->where(['is_del' => 0, 'status' => 1])
+            ->group('skuCode')
+            ->buildSql();
+
+        //4.查询列表并补充相关信息(从list方法照搬)
+        $list = Db::name('good')
+            ->alias("a")
+            ->field("b.skuCode,b.platform_code,b.plat_code,b.id as good_id,a.*,b.addtime,b.updatetime,b.exam_status,gb.createrid purchase_id,gb.creater purchase,gl.min_num,gl.max_num")//成本表里的创建人,也是线上商品的采购人,为了防止混淆,给creater取个别名
+            ->leftJoin("good_platform b", "a.spuCode=b.spuCode")
+            ->leftJoin("good_basic gb", "gb.spuCode=a.spuCode")
+            ->leftJoin("good_ladder gl", "gl.skuCode=b.skuCode")
+            ->where('b.skuCode in ' . $skuCodes)
+            ->page($param['page'], $param['size'])
+            ->order("b.addtime desc")
+            ->select();
+        $data = [];
+        foreach ($list as $value) {
+            $value['cat_info'] = made($value['cat_id'], []);
+            $platform = Db::name("platform")->where(["id" => $value['platform_code']])->find();
+            $value['platform_name'] = isset($platform['platform_name']) ? $platform['platform_name'] : "";
+            $value['platform_code_en'] = isset($platform['platform_code_en']) ? $platform['platform_code_en'] : "";
+            $supplier = Db::name("supplier")->where(["code" => $value['supplierNo']])->find();
+            $value['supplier_name'] = isset($supplier['name']) ? $supplier['name'] : "";
+            $brand = Db::name("brand")->where(["id" => $value['brand_id']])->find();
+            $value["brand_name"] = isset($brand['brand_name']) ? $brand['brand_name'] : "";
+            $unit = Db::name("unit")->where(["id" => $value['good_unit']])->find();
+            $value['unit'] = isset($unit['unit']) ? $unit['unit'] : "";
+            $company = Db::name("business")->where(["companyNo" => $value['companyNo']])->find();
+            $value['company'] = isset($company['company']) ? $company['company'] : "";
+            $value['stock_total'] = Db::name("good_stock")->where(['spuCode' => $value['spuCode'], "is_del" => 0])->sum("usable_stock");
+            $value['status'] = $value['exam_status'];
+            $value['exclusive'] = makeExcluse($value['is_exclusive']);
+            $value['good_info_img'] = $value['good_info_img'];
+            $value['good_img'] = $value['good_img'];
+            $spec = Db::name("good_spec")->where(["spuCode" => $value['spuCode'], "is_del" => 0])->select()->toArray();
+            $speclist = [];
+            if (!empty($spec)) {
+                foreach ($spec as $val) {
+                    $temp = [];
+                    $temp['spec_id'] = $val['spec_id'];
+                    $temp['spec_value_id'] = $val['spec_value_id'];
+                    $sp = Db::name("specs")->where(["id" => $val['spec_id']])->find();
+                    $temp['spec_name'] = isset($sp["spec_name"]) ? $sp["spec_name"] : "";
+                    $spv = Db::name("spec_value")->where(["id" => $val['spec_value_id']])->find();
+                    $temp['spec_value'] = isset($spv["spec_value"]) ? $spv["spec_value"] : "";
+                    $speclist[] = $temp;
+                }
+            }
+            $value['specinfo'] = $speclist;
+            $value['noble_name'] = isset($value['noble_metal']) && $value['noble_metal'] != 0 ? $this->noble[$value['noble_metal']] : "";
+            $data[] = $value;
+        }
+
+        return app_show(0, '请求成功', $data);
+
+    }
+
 }

+ 6 - 17
app/admin/controller/Project.php

@@ -111,16 +111,6 @@ class Project extends Base
                     }
                     $in = Db::name("project_info")->insertAll($la);
                     if($in>0){
-
-                        //项目创建成功之后,添加到待办列表中
-                        $process = [
-                            "order_code" => $projectNo,//把项目编码放到这儿
-                            //"order_id"=>0,//没有订单id,默认0
-                            "order_status" => 2,//2表示'流程中'
-                            "order_type" => 'PRO'//MLL表示'毛利率'
-                        ];
-                        ProcessOrder::AddProcess($this->post['token'], $process);
-
                         Db::commit();
                         return app_show(0,"项目新建成功",['projectNo'=>$projectNo]);
                     }
@@ -762,14 +752,13 @@ class Project extends Base
                 if ($pro) {
 
                     //把待办事项改为结束
-                    Db::name('workflow')->where([
-                        "order_code" => $project,//项目编码
-                        "order_status" => 2,//2表示'流程中'
-                        "order_type" => 'PRO'//PRO表示'项目'
-                    ])->update([
+                    $process = [
+                        "order_code" => $project,//把项目编码放到这儿
+                        //"order_id"=>0,//没有订单id,默认0
                         "order_status" => 3,//3表示'完成'
-                        'updatetime'=>date('Y-m-d H:i:s')
-                    ]);
+                        "order_type" => 'PRO'//PRO表示'项目流程'
+                    ];
+                    ProcessOrder::AddProcess($this->post['token'], $process);
 
                     Db::commit();
                     return app_show(0, "方案数据修改成功");

+ 48 - 0
app/admin/controller/Sale.php

@@ -8,6 +8,7 @@ use Exception;
 use think\App;
 use think\facade\Db;
 use app\admin\model\ActionLog;
+use think\facade\Validate;
 
 //销售单
 class Sale extends Base
@@ -3180,4 +3181,51 @@ class Sale extends Base
         $order["noble_weight"] = isset($order['weight'])?$order['weight']:0;
         return app_show(0,"获取成功",$order);
     }
+
+    //获取采反商品详情,当数据不在good_zixun中,模仿goodzxinfo
+    public  function getGoodZxInfoByNotZixun(){
+
+        $param=$this->request->only(['spuCode'],'post','trim');
+
+        $val=Validate::rule(['spuCode'=>'require']);
+
+        if(!$val->check($param)) return error_show(1004,$val->getError());
+
+        $order = Db::name('consult_bids')
+            ->field(true)
+            ->where(['spuCode'=>$param['spuCode'],'is_del'=>0])
+            ->find();
+
+//        $orderCode= isset($this->post['spuCode'])&&$this->post['spuCode']!=''?trim($this->post['spuCode']):"";
+//        if($orderCode==""){
+//            return error_show(1003,"参数spuCode不能为空");
+//        }
+//        $order= Db::name("good_zixun")->where(["spuCode"=>$orderCode,"is_del"=>0])->find();
+//        if(empty($order)){
+//            return error_show(1003,"订单数据未找到");
+//        }
+        $unit =Db::name("unit")->where(["id"=>$order['unit_id']])->find();
+        if($order['brand_id']!=0){
+            $brand=Db::name("brand")->where(["id"=>$order['brand_id']])->find();
+            $order["brand_name"]=isset($brand['brand_name'])?$brand['brand_name']:"";
+        }else{
+            $order["brand_name"]="";
+            $order["brand_id"]="";
+        }
+        $order['specinfo']=json_decode($order['specinfo'],true);
+        $order['unit'] = isset($unit['unit'])?$unit['unit']:'';
+        $order['cat_info'] = made($order['cat_id'],[]);
+        $order['noble_name']=isset($order['noble_metal'])&&$order['noble_metal']!=0?$this->noble[$order['noble_metal']] :"";
+        if($order['is_gold_price']==1){
+            $price=Db::name("gold_price1")->where(["type"=>$order['noble_metal'],"status"=>1,"is_del"=>0])->order("addtime desc")->find();
+
+        }
+        $supplier = Db::name("supplier")->where(["code"=>$order['supplierNo']])->find();
+        $order['supplier_name'] = isset($supplier['name']) ? $supplier['name']:"";
+//        $palt =Db::name("platform")->where(["id"=>$order['platform_id']])->find();
+//        $order['platform_name']=isset($palt['platform_name']) ? $palt['platform_name']:"";
+        $order["gold_price"] = isset($price['price'])?$price['price']:0;
+        $order["noble_weight"] = isset($order['weight'])?$order['weight']:0;
+        return app_show(0,"获取成功",$order);
+    }
 }

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

@@ -102,6 +102,7 @@ Route::rule('saleoutinfo','admin/Sale/outinfo');
 Route::rule('saleaddr','admin/Sale/addAddr');
 Route::rule('salegetprice','admin/Sale/getPrice');
 Route::rule('goodzxinfo','admin/Sale/goodzxinfo');
+Route::rule('getgoodzxinfobynotzixun','admin/Sale/getGoodZxInfoByNotZixun');
 
 Route::rule('checkflist','admin/Check/flist');
 Route::rule('checklist','admin/Check/list');
@@ -171,6 +172,7 @@ Route::rule("getstockwsm","admin/Good/GetStockWsm");
 Route::rule("getstockbet","admin/Good/GetStockBet");
 Route::rule("goodloglist","admin/Good/loglist");
 Route::rule("goodplist","admin/Good/goodlist");
+Route::rule("getgoodlistbyladder","admin/Good/getGoodListByLadder");
 
 Route::rule("purchlist","admin/Resign/list");
 Route::rule("purchadd","admin/Resign/add");
@@ -464,3 +466,4 @@ Route::rule("projectshareplan","admin/Version/project_plan");
 Route::rule("projectsharecheck","admin/Version/feedCheck");
 Route::rule("plancheck","admin/Version/planCheck");
 
+Route::rule('getdata','admin/Data/index');//数据看板,获取相关统计数据