Browse Source

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

wufeng 2 years ago
parent
commit
3ca67a8d82

+ 4 - 4
app/admin/controller/After.php

@@ -129,7 +129,7 @@ class After extends Base
 //                        'updatetime' => date("Y-m-d H:i:s")
 //                    ]);
 
-                Db::execute("UPDATE `wsm_standing_book` SET `returnCode`=CONCAT(`returnCode`,',{$returnCode}'),`updatetime`='" . date('Y-m-d H:i:s') . "' WHERE FIND_IN_SET('{$outCode}',`outCode`)");
+                Db::execute("UPDATE `wsm_standing_book` SET `returnCode`=CONCAT(IFNULL(`returnCode`,''),',{$returnCode}'),`updatetime`='" . date('Y-m-d H:i:s') . "' WHERE FIND_IN_SET('{$outCode}',`outCode`)");
 
                 $process = ["order_code" => $returnCode, "order_id" => $create, "order_status" => $in['status'], "order_type" => 'SHD', "before_status" => 1];
                     ProcessOrder::AddProcess($token,$process);
@@ -743,7 +743,7 @@ class After extends Base
 //                                'updatetime' => date("Y-m-d H:i:s")
 //                            ]);
 
-                        Db::execute("UPDATE `wsm_standing_book` SET `thNo`=CONCAT(`thNo`,',{$data['thNo']}'),`updatetime`='" . date('Y-m-d H:i:s') . "' WHERE FIND_IN_SET('{$bkcode}',`returnCode`)");//这里的returnCode可能有多个
+                        Db::execute("UPDATE `wsm_standing_book` SET `thNo`=CONCAT(IFNULL(`thNo`,''),',{$data['thNo']}'),`updatetime`='" . date('Y-m-d H:i:s') . "' WHERE FIND_IN_SET('{$bkcode}',`returnCode`)");//这里的returnCode可能有多个
 
 
                         $order = ["order_code"=>$data['thNo'],"status"=>0,"action_remark"=>'',"action_type"=>"create"];
@@ -1070,7 +1070,7 @@ class After extends Base
 //                                'thNo' => $thNo,
 //                                'updatetime' => date("Y-m-d H:i:s")
 //                            ]);
-                        Db::execute("UPDATE `wsm_standing_book` SET `thNo`=CONCAT(`thNo`,',{$thNo}'),`updatetime`='" . date('Y-m-d H:i:s') . "' WHERE FIND_IN_SET('{$bkcode}',`returnCode`)");//这里的returnCode可能有多个
+                        Db::execute("UPDATE `wsm_standing_book` SET `thNo`=CONCAT(IFNULL(`thNo`,''),',{$thNo}'),`updatetime`='" . date('Y-m-d H:i:s') . "' WHERE FIND_IN_SET('{$bkcode}',`returnCode`)");//这里的returnCode可能有多个
 
                         if($info['return_tag']==1){
                             $sale['th_num']+= $info['error_num'];
@@ -1998,7 +1998,7 @@ class After extends Base
 
                 //处理台账
                 if (isset($standing_book_data['outCode'])) {
-                    Db::execute("UPDATE `wsm_standing_book` SET `outCode`=CONCAT(`outCode`,'," . implode(',', $standing_book_data['outCode']) . "'),`updatetime`='" . date('Y-m-d H:i:s') . "' WHERE `infoNo`='{$standing_book_data['infoNo']}'");
+                    Db::execute("UPDATE `wsm_standing_book` SET `outCode`=CONCAT(IFNULL(`outCode`,''),'," . implode(',', $standing_book_data['outCode']) . "'),`updatetime`='" . date('Y-m-d H:i:s') . "' WHERE `infoNo`='{$standing_book_data['infoNo']}'");
                     unset($standing_book_data['outCode']);
                 }
 

+ 125 - 11
app/admin/controller/Data.php

@@ -5,6 +5,7 @@ namespace app\admin\controller;
 use app\BaseController;
 use think\App;
 use think\facade\Db;
+use think\facade\Validate;
 
 //数据统计类(数据看板,获取相关统计数据)
 class Data extends BaseController
@@ -364,26 +365,139 @@ class Data extends BaseController
 
 
     //******* 以下是新版数据大屏 的内容***********************************
+
+
+    //1.今日销售
     public function dnTodaySale()
     {
         $rs = Db::name('sale')
-            ->field('id,good_num,total_price')
-            ->where(['is_del' => 0])
-            ->where('status', '<>', 3)
+            ->field('count(id) orders_number,sum(total_price)-sum(th_fee) money,sum(good_num)-sum(th_num) good_num ')
+            ->where('is_del', 0)
             ->whereDay('addtime', 'today')
-//            ->fetchSql()->select();
-            ->cursor();
+            ->find();
 
-        $data = ['total_sale' => 0, 'total_num' => 0, 'total_price' => 0];
+        //跨库查询网络部
+        $internet = Db::connect('mysql3')
+            ->table('source_all')
+            ->field('SUM(sale_total) money,SUM(order_num) good_num,COUNT(id) orders_number')
+            ->whereDay('ordertime')
+            ->where('depart', '网络部')
+            ->find();
 
-        foreach ($rs as $value) {
-            $data['total_sale']++;
-            $data['total_num'] += $value['good_num'];
-            $data['total_price'] += $value['total_price'];
-        }
+        //组织数据
+        $data = [
+            'orders_number' => bcadd(isset($rs['orders_number']) ? $rs['orders_number'] : '0', isset($internet['orders_number']) ? $internet['orders_number'] : '0'),
+            'money' => bcadd(isset($rs['money']) ? $rs['money'] : '0', isset($internet['money']) ? $internet['money'] : '0', 2),
+            'good_num' => bcadd(isset($rs['good_num']) ? $rs['good_num'] : '0', isset($internet['good_num']) ? $internet['good_num'] : '0', 2),
+        ];
 
         return app_show(0, '请求成功', $data);
 
     }
 
+    //2.今日采购
+    public function dnTodayPurcheaseOrder()
+    {
+
+        $rs = Db::name('purchease_order')
+            ->field('count(id) orders_number,sum(good_num) good_num')
+            ->where('is_del', 0)
+            ->whereDay('addtime')
+            ->find();
+
+        $consult_info_total = Db::name('consult_info')
+            ->where(['is_del' => 0, 'status' => 5])//status==5成功转单
+            ->whereDay('updatetime')
+            ->count('id');
+
+        $consult_bids_total = Db::name('consult_bids')
+            ->where('is_del', 0)
+            ->whereDay('addtime')
+            ->count('id');
+
+        $data = [
+            'consult_info_total' => $consult_info_total,//竞价中标数
+            'consult_bids_total' => $consult_bids_total,//反馈商品数
+            'orders_number' => isset($rs['orders_number']) ? $rs['orders_number'] : 0,//采购订单
+            'good_num' => isset($rs['good_num']) ? $rs['good_num'] : 0,//商品数量
+        ];
+
+        return app_show(0, '请求成功', $data);
+    }
+
+    //3.今日结算
+
+    //4.销售转单数
+    public function dnTodayTransferOrder()
+    {
+
+        $param = $this->request->filter('trim')->only(['itemid' => '0', 'type' => '3', 'date' => date('Y-m-d')], 'post');
+
+        $val = Validate::rule([
+            'itemid|部门id' => 'require|integer',
+            'type|日期类型' => 'require|number|in:1,2,3',
+            'date|筛选日期' => 'require|date',
+        ]);
+
+        if (!$val->check($param)) return error_show(1005, $val->getError());
+
+        $rs = Db::name('consult_info')
+            ->alias('a')
+            ->leftJoin('consult_order b', 'b.zxNo=a.zxNo AND b.is_del=0')
+            ->leftJoin('depart_user u', 'u.uid=b.saleid AND u.is_del=0')
+            ->where(['a.is_del' => 0, 'bargain_num' => 1]);
+
+        //查询符合条件的竞价单
+        if ($param['itemid'] == '0') {
+            //以部门为维度
+            $rs = $rs
+                ->field('a.id,a.status,u.itemid total_id,c.name')
+                ->leftJoin('company_item c', 'c.id=u.itemid AND c.is_del=0');
+        } else {
+            //以部门下的人为维度
+            $rs = $rs
+                ->field('a.id,a.status,b.saleid total_id,b.salesman name')
+                ->where('u.itemid', $param['itemid']);
+        }
+
+        //时间段判断
+        switch ($param['type']) {
+            case '1':
+                $rs->whereYear('a.addtime', $param['date']);
+                break;
+            case '2':
+                $rs->whereMonth('a.addtime', $param['date']);
+                break;
+            default:
+                $rs->whereDay('a.addtime', $param['date']);
+                break;
+        }
+
+        $data = $rs->cursor();
+
+        $da = [];
+
+        //组织数据
+        foreach ($data as $value) {
+            if (!isset($da[$value['total_id']])) {
+                $da[$value['total_id']] = [
+                    'finish_total' => 0,//销售单(中标单数)
+                    'total' => 0,//竞价单(总单数)
+                    'name' => $value['name']//名称
+                ];
+            }
+
+            $da[$value['total_id']]['total']++;
+            if ($value['status'] == '5') $da[$value['total_id']]['finish_total']++;
+        }
+
+        //计算转单率
+        foreach ($da as &$val) {
+            $val['finish_rate'] = bcmul(round(bcdiv($val['finish_total'], $val['total'], 5), 4), '100', 2) . '%';
+        }
+
+        return app_show(0, '请求成功', array_merge($da));
+
+    }
+
 }

+ 2 - 2
app/admin/controller/Purchin.php

@@ -255,7 +255,7 @@ class Purchin extends Base
                 $order = ["order_code"=>$cgdNo,"status"=>$cgdinfo['status'],"action_remark"=>'',"action_type"=>"edit"];
 
                 //维护台账信息
-                Db::execute("UPDATE `wsm_standing_book` SET `wsm_in_code`=CONCAT(`wsm_in_code`,',{$wsm_in_code}'),`updatetime`='" . date('Y-m-d H:i:s') . "' WHERE `cgdNo`='{$cgdNo}'");
+                Db::execute("UPDATE `wsm_standing_book` SET `wsm_in_code`=CONCAT(IFNULL(`wsm_in_code`,''),',{$wsm_in_code}'),`updatetime`='" . date('Y-m-d H:i:s') . "' WHERE `cgdNo`='{$cgdNo}'");
 
                 if($status==1){
                             Db::commit();
@@ -909,7 +909,7 @@ class Purchin extends Base
 //                 'cgdReturnCode' => $returnCode,
 //                 'updatetime' => date('Y-m-d H:i:s'),
 //             ]);
-         Db::execute("UPDATE `wsm_standing_book` SET `cgdReturnCode`=CONCAT(`cgdReturnCode`,',{$returnCode}'),`updatetime`='" . date('Y-m-d H:i:s') . "' WHERE FIND_IN_SET('{$incode}',`wsm_in_code`)");//这里的wsm_in_code可能有多个
+         Db::execute("UPDATE `wsm_standing_book` SET `cgdReturnCode`=CONCAT(IFNULL(`cgdReturnCode`,''),',{$returnCode}'),`updatetime`='" . date('Y-m-d H:i:s') . "' WHERE FIND_IN_SET('{$incode}',`wsm_in_code`)");//这里的wsm_in_code可能有多个
 
             }
 

+ 2 - 2
app/admin/controller/Reorder.php

@@ -106,7 +106,7 @@ class Reorder extends Base
                 ProcessOrder::AddProcess($this->post['token'],$process);
 
                 //维护台账信息
-                Db::execute("UPDATE `wsm_standing_book` SET `returnGoodCode`=CONCAT(`returnGoodCode`,',{$returnCode}'),`updatetime`='" . date('Y-m-d H:i:s') . "' WHERE `orderCode`='{$ordeCode}'");
+                Db::execute("UPDATE `wsm_standing_book` SET `returnGoodCode`=CONCAT(IFNULL(`returnGoodCode`,''),',{$returnCode}'),`updatetime`='" . date('Y-m-d H:i:s') . "' WHERE `orderCode`='{$ordeCode}'");
 
 //                $rs = Db::name('standing_book')->where('orderCode', $ordeCode)->order('returnGoodCode')->find();
 //                if (!empty($rs)) {
@@ -1081,7 +1081,7 @@ class Reorder extends Base
 //                        'returnGoodCode' => $returnCode,
 //                        'updatetime' => date("Y-m-d H:i:s")
 //                    ]);
-                Db::execute("UPDATE `wsm_standing_book` SET `returnGoodCode`=CONCAT(`returnGoodCode`,',{$returnCode}'),`updatetime`='" . date('Y-m-d H:i:s') . "' WHERE `ordeCode`='{$ordeCode}'");
+                Db::execute("UPDATE `wsm_standing_book` SET `returnGoodCode`=CONCAT(IFNULL(`returnGoodCode`,''),',{$returnCode}'),`updatetime`='" . date('Y-m-d H:i:s') . "' WHERE `orderCode`='{$ordeCode}'");
 
                 if ($order['send_type'] == 1) {
                     $wsend = Db::name("order_out")->where(['orderCode' => $ordeCode, "status" => 1, "order_type"=>2])->select();

+ 30 - 4
app/admin/controller/Sale.php

@@ -328,6 +328,7 @@ class Sale extends Base
                 }
 
                 if ($sendtype == 1) {
+                    $i=1;
                     foreach ($addrlist as $value) {
                         $temp = [];
                         $addrs = [];
@@ -361,6 +362,10 @@ class Sale extends Base
                             }
                             $num = $value['receipt_quantity'];
                             $outCode = makeNo("DF");
+                            //改变编码规则,将原来的outCode后两位换成序列号
+                            //str_pad字符串填充
+                            $outCode = substr($outCode, 0, -2) . str_pad($i, 2, '0', STR_PAD_LEFT);
+                            $i++;
                             $order['wsend_num'] -= $num;
                             $order['send_num'] += $num;
                             $or = Db::name("order_num")->save($order);
@@ -794,7 +799,7 @@ class Sale extends Base
                         ]);
 
                         //处理台账-既然是根据orderCode更新的数据,那么肯定是有数据的,只需要更新就行了
-                        Db::execute("UPDATE `wsm_standing_book` SET `outCode`=CONCAT(`outCode`,',{$outCode}'),`updatetime`='" . date('Y-m-d H:i:s') . "' WHERE `orderCode`='{$orderCode}'");
+                        Db::execute("UPDATE `wsm_standing_book` SET `outCode`=CONCAT(IFNULL(`outCode`,''),',{$outCode}'),`updatetime`='" . date('Y-m-d H:i:s') . "' WHERE `orderCode`='{$orderCode}'");
 
                     }
 
@@ -1079,6 +1084,7 @@ class Sale extends Base
                         Db::rollback();
                         return error_show(1006, "采购单关联数据未找到");
                     }
+                    $i = 1;
                     foreach ($va as $value) {
                         $temp = [];
                         $addrs = [];
@@ -1105,6 +1111,11 @@ class Sale extends Base
                         $vmp = Db::name('order_addr')->insert($temp, true);
                         if ($vmp > 0) {
                             $outCode = makeNo("DF");
+                            //改变编码规则,将原来的outCode后两位换成序列号
+                            //str_pad字符串填充
+                            $outCode = substr($outCode, 0, -2) . str_pad($i, 2, '0', STR_PAD_LEFT);
+                            $i++;
+
                             $out = [
                                 "orderCode" => $orderCode,
                                 "outCode" => $outCode,
@@ -1179,7 +1190,7 @@ class Sale extends Base
 
                 //处理台账
                 if (isset($standing_book_data['outCode'])) {
-                    Db::execute("UPDATE `wsm_standing_book` SET `outCode`=CONCAT(`outCode`,'," . implode(',', $standing_book_data['outCode']) . "'),`updatetime`='" . date('Y-m-d H:i:s') . "' WHERE `infoNo`='{$standing_book_data['infoNo']}'");
+                    Db::execute("UPDATE `wsm_standing_book` SET `outCode`=CONCAT(IFNULL(`outCode`,''),'," . implode(',', $standing_book_data['outCode']) . "'),`updatetime`='" . date('Y-m-d H:i:s') . "' WHERE `infoNo`='{$standing_book_data['infoNo']}'");
                     unset($standing_book_data['outCode']);
                 }
 
@@ -1576,6 +1587,7 @@ class Sale extends Base
                 if ($order == false) {
                     return false;
                 }
+                $i = 1;
                 foreach ($data['addrlist'] as $value) {
                     $temp = [];
                     $addrs = [];
@@ -1602,6 +1614,10 @@ class Sale extends Base
                     $vmp = Db::name('order_addr')->insert($temp, true);
                     if ($vmp > 0) {
                         $outCode = makeNo("DF");
+                        //改变编码规则,将原来的outCode后两位换成序列号
+                        //str_pad字符串填充
+                        $outCode = substr($outCode, 0, -2) . str_pad($i, 2, '0', STR_PAD_LEFT);
+                        $i++;
                         $out = [
                             "orderCode" => $orderCode,
                             "outCode" => $outCode,
@@ -1837,6 +1853,7 @@ class Sale extends Base
 
             }
             if ($data['sendtype'] == 1 && !empty($data['addrlist'])) {
+                $i = 1;
                 foreach ($data['addrlist'] as $value) {
                     $temp = [];
                     $addrs = [];
@@ -1871,6 +1888,10 @@ class Sale extends Base
                         }
                         $num = $value['receipt_quantity'];
                         $outCode = makeNo("DF");
+                        //改变编码规则,将原来的outCode后两位换成序列号
+                        //str_pad字符串填充
+                        $outCode = substr($outCode, 0, -2) . str_pad($i, 2, '0', STR_PAD_LEFT);
+                        $i++;
                         $order['wsend_num'] -= $num;
                         $order['send_num'] += $num;
                         $or = Db::name("order_num")->save($order);
@@ -2515,8 +2536,13 @@ class Sale extends Base
                     }
                     if ($dio['send_type'] == 1) {
                         $addr = Db::name('order_addr')->where(["orderCode" => $dio['orderCode'], 'is_del' => 0])->select();
+                        $i = 1;
                         foreach ($addr as $value) {
                             $outCode = makeNo("DF");
+                            //改变编码规则,将原来的outCode后两位换成序列号
+                            //str_pad字符串填充
+                            $outCode = substr($outCode, 0, -2) . str_pad($i, 2, '0', STR_PAD_LEFT);
+                            $i++;
                             $data = [
                                 "wsm_code" => $wsm['wsm_code'],
                                 "orderCode" => $dio['orderCode'],
@@ -2586,7 +2612,7 @@ class Sale extends Base
                         }
 
                         //维护台账
-                        Db::execute("UPDATE `wsm_standing_book` SET `wsm_in_code`=CONCAT(`wsm_in_code`,',{$wsm_in_code}'),`updatetime`='" . date('Y-m-d H:i:s') . "' WHERE `cgdNo`='{$cgd}'");
+                        Db::execute("UPDATE `wsm_standing_book` SET `wsm_in_code`=CONCAT(IFNULL(`wsm_in_code`,''),',{$wsm_in_code}'),`updatetime`='" . date('Y-m-d H:i:s') . "' WHERE `cgdNo`='{$cgd}'");
 
                         $good = Db::name("good_stock")->where(["wsm_code" => $wsm['wsm_code'], "good_type_code" => $zxinfo['cpNo'], "is_del" => 0])->find();
                         if (empty($good)) {
@@ -3549,7 +3575,7 @@ class Sale extends Base
                             'updatetime' => date('Y-m-d H:i:s'),
                         ]);
 
-                    Db::execute("UPDATE `wsm_standing_book` SET `outCode`=CONCAT(`outCode`,',{$outCode}') WHERE `cgdNo`='{$cgd['cgdNo']}'");
+                    Db::execute("UPDATE `wsm_standing_book` SET `outCode`=CONCAT(IFNULL(`outCode`,''),',{$outCode}') WHERE `cgdNo`='{$cgd['cgdNo']}'");
 
                     Db::commit();
                     return app_show(0, "出库单新建成功");

+ 5 - 2
app/admin/controller/Suppler.php

@@ -115,6 +115,7 @@ class Suppler extends BaseController
         if($position==""){
             return error_show(1002,"参数position不能为空");
         }
+        $email= isset($this->post['email']) && $this->post['email']!==""?trim($this->post['email']) :"";
         Db::startTrans();
         try{
             $data=[
@@ -193,7 +194,7 @@ class Suppler extends BaseController
                     $temp['mobile'] = $mobile;
                     $temp['position'] = $position;
                     $temp['telephone'] =$telephone;
-                    $temp['email'] ="";
+                    $temp['email'] =$email;
                     $temp['is_del'] = 0;
                     $temp['addtime'] = date("Y-m-d H:i:s");
                     $temp['updatetime'] = date("Y-m-d H:i:s");
@@ -385,6 +386,8 @@ class Suppler extends BaseController
         if($position==""){
             return error_show(1002,"参数position不能为空");
         }
+        $email = isset($this->post['email']) && $this->post['email'] !=="" ? trim($this->post['email']):"";
+
 //        if($registercode==""){
 //            return error_show(1002,"参数registercode不能为空");
 //        }
@@ -460,7 +463,7 @@ class Suppler extends BaseController
                     $temp['mobile'] = $mobile;
                     $temp['position'] = $position;
                     $temp['telephone'] = $telephone;
-                    $temp['email'] ="";
+                    $temp['email'] =$email;
                     $temp['is_del'] = 0;
                 isset($item['id']) && $item['id'] !== "" ? '' : $temp['addtime'] = date("Y-m-d H:i:s");
                     $temp['updatetime'] = date("Y-m-d H:i:s");

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

@@ -557,7 +557,9 @@ Route::rule('datamonthfinishrate','admin/Data/monthFinishRate');//8.本月完成
 Route::rule('datatordertransferratetoday','admin/Data/orderTransferRateToday');//9.转单率,今日
 Route::rule('datatordertransferratemonth','admin/Data/orderTransferRateMonth');//9.转单率,本月
 Route::rule('datatordertransferrateyear','admin/Data/orderTransferRateYear');//9.转单率,本年
-Route::rule('dnTodaySale','admin/Data/dnTodaySale');//【新版】今日销售
+Route::rule('dnTodaySale','admin/Data/dnTodaySale');//【新版】1.今日销售
+Route::rule('dnTodayPurcheaseOrder','admin/Data/dnTodayPurcheaseOrder');//【新版】2.今日采购
+Route::rule('dnTodayTransferOrder','admin/Data/dnTodayTransferOrder');//【新版】4.销售转单数
 
 //销售报表
 Route::rule('saleexportconsultday','admin/SaleReport/consultDay');//管理报表-日报