Sfoglia il codice sorgente

Merge branch 'dev_wf' of wugg/phpstock into version1.5

wufeng 2 anni fa
parent
commit
a14699e2bf

+ 142 - 0
app/admin/controller/Exec.php

@@ -0,0 +1,142 @@
+<?php
+
+
+namespace app\Admin\controller;
+
+use app\BaseController;
+use think\facade\Db;
+use think\Request;
+use think\facade\Cache;
+
+class Exec extends Base
+{
+    public function list()
+    {
+        $post = $this->post;
+        $token = isset($post['token']) ? trim($post['token']) : "";
+        if ($token == "") {
+            return error_show(101, 'token不能为空');
+        }
+//        $effetc = VerifyTokens($token);
+//        if(!empty($effetc) && $effetc['code']!=0){
+//            return error_show($effetc['code'],$effetc['message']);
+//        }
+        $where = ['type' => 0];
+        $page = isset($post['page']) ? intval($post['page']) : 1;
+        $size = isset($post['size']) ? intval($post['size']) : 10;
+        $count = Db::name("exec")->where($where)->count();
+        $total = ceil($count / $size) > 1 ? ceil($count / $size) : 1;
+        $page = $page >= $total ? intval($total) : $page;
+        $list = Db::name("exec")->where($where)->page($page, $size)->select();
+        return app_show(0, "获取成功", ["list" => $list, "count" => $count]);
+    }
+
+    public function nowlist()
+    {
+        $post = $this->post;
+        $token = isset($post['token']) ? trim($post['token']) : "";
+        if ($token == "") {
+            return error_show(101, 'token不能为空');
+        }
+//        $effetc = VerifyTokens($token);
+//        if(!empty($effetc) && $effetc['code']!=0){
+//            return error_show($effetc['code'],$effetc['message']);
+//        }
+        $where = ['type' => 1];
+        $page = isset($post['page']) ? intval($post['page']) : 1;
+        $size = isset($post['size']) ? intval($post['size']) : 10;
+        $count = Db::name("exec")->where($where)->count();
+        $total = ceil($count / $size) > 1 ? ceil($count / $size) : 1;
+        $page = $page >= $total ? intval($total) : $page;
+        $list = Db::name("exec")->where($where)->page($page, $size)->select();
+        return app_show(0, "获取成功", ["list" => $list, "count" => $count]);
+    }
+
+    public function save()
+    {
+        $post = $this->post;
+        $token = isset($post['token']) ? trim($post['token']) : "";
+        if ($token == "") {
+            return error_show(101, 'token不能为空');
+        }
+//        $effetc = VerifyTokens($token);
+//        if(!empty($effetc) && $effetc['code']!=0){
+//            return error_show($effetc['code'],$effetc['message']);
+//        }
+        $userinfo = GetUserInfo($token);
+        if (!isset($userinfo['code']) || $userinfo['code'] != 0) {
+            return error_show(101, '未能获取用户信息');
+        }
+        $start = isset($post['start']) && $post['start'] != "" ? $post['start'] . " 00:00:00" : '';
+        $end = isset($post['end']) && $post['end'] != "" ? $post['end'] . " 23:59:59" : '';
+        $id = isset($post['id']) && $post['id'] !== '' ? intval($post['id']) : "";
+        if ($id == "") {
+            return error_show(1004, "参数id不能为空");
+        }
+        $info = Db::name("exec")->where(["id" => $id])->find();
+        if (empty($info)) {
+            return error_show(1004, "未找到下载数据");
+        }
+        if ($info['start'] == $start && $info['end'] == $end) {
+            return error_show(1004, "数据已提交");
+        }
+        if ($start != "") {
+            $info['start'] = $start;
+        }
+        if ($end != "") {
+            $info['end'] = $end;
+        }
+        if (is_file(root_path() . 'public' . $info['down_url'])) {
+            @unlink(root_path() . "public" . $info['down_url']);
+        }
+        $info['status'] = 1;
+        $info['apply_id'] = $userinfo['data']['id'];
+        $info['apply_name'] = $userinfo['data']['nickname'];
+        $info['down_url'] = '';
+        $info['remark'] = '';
+        $info['updatetime'] = date("Y-m-d H:i:s");
+        $info['addtime'] = date("Y-m-d H:i:s");
+        $info['expiretime'] = date("Y-m-d H:i:s", time() + 7 * 24 * 3600);
+        $up = Db::name("exec")->save($info);
+        $redis = Cache::store("redis");
+        $isPushed = $redis->handler()->lPush($info['type'] == 1 ? "nowreport" : "execreport", json_encode($info));
+        return $up ? app_show(0, "编辑成功") : error_show(1004, "编辑失败");
+    }
+
+    public function down()
+    {
+        $post = $this->post;
+        $token = isset($post['token']) ? trim($post['token']) : "";
+        if ($token == "") {
+            return error_show(101, 'token不能为空');
+        }
+        $id = isset($post['id']) && $post['id'] !== '' ? intval($post['id']) : "";
+        if ($id == "") {
+            return error_show(1004, "参数id不能为空");
+        }
+        $info = Db::name("exec")->where(["id" => $id])->find();
+        if (empty($info)) {
+            return error_show(1004, "未找到下载数据");
+        }
+//        $effetc = VerifyTokens($token);
+//        if(!empty($effetc) && $effetc['code']!=0){
+//            return error_show($effetc['code'],$effetc['message']);
+//        }
+        $userinfo = GetUserInfo($token);
+        if (!isset($userinfo['code']) || $userinfo['code'] != 0) {
+            return error_show(101, '未能获取用户信息');
+        }
+        $info['status'] = 1;
+        $info['down_url'] = '';
+        $info['remark'] = '';
+        $info['apply_id'] = $userinfo['data']['id'];
+        $info['apply_name'] = $userinfo['data']['nickname'];
+        $info['expiretime'] = date("Y-m-d H:i:s", time() + 7 * 24 * 3600);
+        $info['updatetime'] = date("Y-m-d H:i:s");
+        $info['addtime'] = date("Y-m-d H:i:s");
+        $up = Db::name("exec")->save($info);
+        $redis = Cache::store("redis");
+        $isPushed = $redis->handler()->lPush($info['type'] == 1 ? "nowreport" : "execreport", json_encode($info));
+        return $up ? app_show(0, "编辑成功") : error_show(1004, "编辑失败");
+    }
+}

+ 0 - 114
app/admin/controller/ReportReserve.php

@@ -1,114 +0,0 @@
-<?php
-
-namespace app\admin\controller;
-
-use think\Exception;
-use think\facade\Cache;
-use think\facade\Db;
-use think\facade\Validate;
-
-//报表预约处理类
-class ReportReserve extends Base
-{
-    //redis队列的key,在ReportReserveHandle脚本中也有定义,要同步修改(轻易不要修改)
-    private $key = 'wanyuhengtong_report_reserve';
-
-    //预约记录编码及对应名称
-    private $code_reserve_name = [
-        'A' => '退货台账-业务口径',
-        'B' => '库存预警汇总',
-        'C' => '退货明细',
-    ];
-
-
-    //获取预约列表
-    public function getList()
-    {
-        $param = $this->request->only([
-            'code' => '',
-            'start_addtime' => '',
-            'end_addtime' => '',
-            'status' => 0,
-            'applyname' => '',
-            'page' => 1,
-            'size' => 15
-        ], 'post', 'trim');
-
-        $where = [];
-        if (!empty($param['code'])) $where[] = ['code', '=', $param['code']];
-        if (!empty($param['start_addtime']) && !empty($param['end_addtime'])) $where[] = ['addtime', 'between', [$param['start_addtime'], $param['end_addtime']]];
-        if (!empty($param['status'])) $where[] = ['status', '=', $param['status']];
-        if (!empty($param['applyname'])) $where[] = ['applyname', 'like', '%' . $param['applyname'] . '%'];
-
-        $count = Db::name('report_form_reserve')
-            ->where($where)
-            ->count('id');
-
-        $list = Db::name('report_form_reserve')
-            ->where($where)
-            ->order('id')
-            ->page($param['page'], $param['size'])
-            ->select()
-            ->toArray();
-
-        return app_show(0, '请求成功', ['list' => $list, 'count' => $count]);
-
-    }
-
-
-    //添加预约记录
-    public function add()
-    {
-
-        $param = $this->request->only(['code', 'start_time', 'end_time', 'token', 'remark' => ''], 'post', 'trim');
-
-        $val = Validate::rule([
-            'token' => 'require',
-            'code|报表编码' => 'require|in:A,B,C',
-            'start_time|开始时间' => 'require|date|elt:end_time',
-            'end_time|结束时间' => 'require|date',
-        ]);
-
-        if (!$val->check($param)) return error_show(1004, $val->getError());
-
-        $user = GetUserInfo($param['token']);
-
-        Db::startTrans();
-        try {
-
-            $insert_id = Db::name('report_form_reserve')
-                ->insertGetId([
-                    'code' => $param['code'],
-                    'name' => $this->code_reserve_name[$param['code']],
-                    'start_time' => $param['start_time'],
-                    'end_time' => $param['end_time'],
-                    'apply_name' => isset($user['data']['nickname']) ? $user['data']['nickname'] : '',
-                    'apply_id' => isset($user['data']['id']) ? $user['data']['id'] : '',
-                    'status' => 1,
-                    'remark' => $param['remark'],
-                    'addtime' => date('Y-m-d H:i:s'),
-                    'updatetime' => date('Y-m-d H:i:s'),
-                ]);
-
-            if (!$insert_id) throw new Exception('预约记录新增失败');
-
-            //lpush 往头部插入元素
-            $rs = Cache::store('redis')->handler()->lpush($this->key, $insert_id);
-
-            if (!$rs) throw new Exception('预约记录加入redis队列失败');
-
-            Db::commit();
-
-            return app_show(0, '添加成功');
-
-        } catch (Exception $exception) {
-
-            Db::rollback();
-
-            return error_show(1005, '添加失败,' . $exception->getMessage());
-        }
-
-    }
-
-
-}

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

@@ -513,8 +513,10 @@ Route::rule('reportchangelogeexport','admin/Report/ChangeLogExport');//报表-
 Route::rule('reportgoodloglist','admin/Report/GoodLogList');//报表-出入库明细报表_列表
 Route::rule('reportgoodlogexport','admin/Report/GoodLogExport');//报表-出入库明细报表_导出
 
-Route::rule('reportreservegetlist','admin/ReportReserve/getList');//报表预约-列表
-Route::rule('reportreserveadd','admin/ReportReserve/add');//报表预约-添加
+Route::rule("execlist",'admin/Exec/list');
+Route::rule("execsave",'admin/Exec/save');
+Route::rule("execdown",'admin/Exec/down');
+Route::rule("nowlist",'admin/Exec/nowlist');
 
 //数据看板
 Route::rule('datatodaysalesvolume','admin/Data/todaySalesVolume');//1.今日销量

+ 57 - 0
app/command/ReportReserveHandle.php

@@ -86,6 +86,8 @@ class ReportReserveHandle extends Command
 
 
     //数据处理脚本,每个报表一个方法
+
+    //退货台账-业务口径
     private function A(string $start_date = '', string $end_date = '')
     {
 
@@ -140,5 +142,60 @@ class ReportReserveHandle extends Command
 
     }
 
+    //库存预警汇总表
+    private function B(string $start_date = '', string $end_date = '')
+    {
+
+        $data = Db::name('sale_return')
+            ->alias('sr')
+            ->field('sr.returnCode 退货单号,sr.status 流程进度,sr.addtime 退货发起日期,sup.name 公司名称,sr.apply_name 退货人,sr.num 退货数量,sr.total_fee 退货销售货款,sr.remark 退货备注,c.companyName 客户名称,or.customer_code 客户编码,"" 一级组织,"" 二级组织,"" 三级组织,p.platform_name 平台名称,s.poNo PO编号,sr.orderCode 确认单编号,s.order_type 确认单类型,s.addtime 确认单下单时间,s.apply_name 业务人员,sr.orderCode 确认单产品编号,sr.good_name 产品名称,sr.good_code 产品编码,"" 一级分类,s.cat_id,c.itemid')
+            ->leftJoin('platform p', 'p.id = sr.platform_id')
+            ->leftJoin('order_return or', 'or.orderCode = sr.orderCode')
+            ->leftJoin('customer_info c', 'c.companyNo = or.customer_code')
+            ->leftJoin('sale s', 's.orderCode = sr.orderCode')
+            ->leftJoin('supplier sup', 'sup.code = s.supplierNo')
+            ->where('sr.is_del', 0)
+            ->whereBetween('sr.addtime', [$start_date . ' 00:00:00', $end_date . ' 23:59:59'])
+            ->cursor();
+
+        $all_sale_return_status = [1 => '待业务审批', 2 => '待专员审批', 3 => '待主管审批', 4 => '退货完成', 5 => '业务驳回', 6 => '采购驳回', 7 => '专员审批不通过'];
+        $all_sale_order_type = [1 => '备库', 2 => '非库存', 3 => '咨询采反', 4 => '项目采反', 5 => '平台部订单销售',];
+        $list = [];
+        foreach ($data as $value) {
+
+            $value['流程进度'] = isset($all_sale_return_status[$value['流程进度']]) ? $all_sale_return_status[$value['流程进度']] : '';
+            $value['确认单类型'] = isset($all_sale_order_type[$value['确认单类型']]) ? $all_sale_order_type[$value['确认单类型']] : '';
+
+            $top = made($value['cat_id']);
+            $value['一级分类'] = isset($top[0]['name']) ? $top[0]['name'] : '';
+
+            if (!empty($value['itemid'])) {
+                $customer_org1 = get_top_customer_org($value['itemid']);
+
+                foreach ($customer_org1 as $vv) {
+                    switch ($vv['level']) {
+                        case 1:
+                            $value['一级组织'] = $vv['name'];
+                            break;
+                        case 2:
+                            $value['二级组织'] = $vv['name'];
+                            break;
+                        case 3:
+                            $value['三级组织'] = $vv['name'];
+                            break;
+                    }
+                }
+            }
+
+            unset($value['cat_id']);
+            unset($value['itemid']);
+
+            yield $list[] = $value;
+        }
+
+        return $list;
+
+    }
+
 
 }