Kaynağa Gözat

1.针对供应商的全局优化。2.有赞上线列表和详情增加字段(商品详情链接)

wufeng 2 yıl önce
ebeveyn
işleme
87617a33de

+ 22 - 15
app/admin/controller/Brand.php

@@ -203,21 +203,28 @@ class Brand extends Base
     }
     public function info(){
         $id = isset($this->post['id']) && $this->post['id'] !==""? intval($this->post['id']):"";
-        if($id==""){
-            return error_show(1002,"参数id不能为空");
-        }
-        $info =  Db::name("brand")->where([["id","=",$id]])->find();
-        if(!$info) {
-            return error_show(1002, "未找到对应数据");
-        }
-        $data = Db::name("brand_book")->alias('a')
-            ->join("brand b","a.brand_id=b.id")->field("b.logo_url,b.brand_name")
-            ->join("supplier c","c.code= a.gyscode","left")
-            ->field("a.creater,a.addtime,c.code as gyscode,c.name,c.status")->where(['brand_id'=>$info['id']])->find();
-        if($data){
-            return app_show(0,"获取成功",$data);
-        }else{
-            return app_show(1002,"获取失败",$data);
+        if($id=="") return error_show(1002,"参数id不能为空");
+
+        $info =  Db::name("brand")->field('id')->where([["id","=",$id]])->find();
+        if(!$info) return error_show(1002, "未找到对应数据");
+
+        $data = Db::name("brand_book")
+            ->alias('a')
+            ->field("b.logo_url,b.brand_name")
+            ->join("brand b","a.brand_id=b.id")
+//            ->join("supplier c","c.code= a.gyscode","left")
+            ->field("a.creater,a.addtime,a.gyscode")//c.name,c.status
+            ->where(['brand_id'=>$info['id']])
+            ->findOrEmpty();
+        if ($data) {
+
+            $userCommon = new \app\admin\common\User();
+            $sinfo = $userCommon->handle('sInfo', ['code' => $data['gyscode']]);
+            $data['name'] = $sinfo['data']['name'] ?? '';
+            $data['status'] = $sinfo['data']['status'] ?? '';
+            return app_show(0, "获取成功", $data);
+        } else {
+            return app_show(1002, "获取失败", $data);
         }
     }
 }

+ 53 - 34
app/admin/controller/Check.php

@@ -567,45 +567,64 @@ public function __construct(App $app)
     }
 
     //导出(盘点的明细)
-    public function exportGood(){
-        $id = isset($this->post['id']) && $this->post['id'] !=="" ? intval($this->post['id']) :"";
-        if($id==""){
-            return error_show(1002,"参数id不能为空");
+    public function exportGood()
+    {
+        $id = isset($this->post['id']) && $this->post['id'] !== "" ? intval($this->post['id']) : "";
+        if ($id == "") {
+            return error_show(1002, "参数id不能为空");
         }
-        $fo = Db::name('good_check')->alias('a')->join('warehouse_info b',"b.wsm_code=a.wsm_code","left")
-            ->join('supplier c',"c.code=b.supplierNo","left")->field("c.name,c.code,b.name,a.*")
-            ->where(['a.id'=>$id,'a.is_del'=>0])->find();
-        if(empty($fo)){
-            return error_show(1003,"未找到盘点信息");
+        $fo = Db::name('good_check')
+            ->alias('a')
+            ->join('warehouse_info b', "b.wsm_code=a.wsm_code", "left")
+//            ->join('supplier c',"c.code=b.supplierNo","left")
+//            ->field("c.name,c.code,b.name,a.*")
+            ->field("b.name,a.*")
+            ->where(['a.id' => $id, 'a.is_del' => 0])
+            ->find();
+        if (empty($fo)) {
+            return error_show(1003, "未找到盘点信息");
         }
         $list = Db::name("good_stock_info")->alias("d")
-            ->join("good_stock c","c.id=d.stockid and d.balance_num>0","left")
-            ->join("good b","c.spuCode=b.spuCode","left")
-            ->where(['c.wsm_code'=>$fo['wsm_code'],"b.is_del"=>0,"c.is_del"=>0])->field("d.bnCode '商品批次号',b.spuCode'商品编码',
-            b.good_name '商品名称',b.craft_desc '商品描述',b.brand_id '品牌',b.good_unit '单位',b.supplierNo '供应商编码','' as '供应商名称','' as  '一级分类','' as '二级分类','' as  '三级分类',
-            b.addtime '新建时间',c.wsm_code '仓库编码','' as '仓库名称',c.usable_stock '可用总库存',d.balance_num '批次库存数','' as '盘点库存'")
-            ->select()->toArray();
-        $data=[];
+            ->join("good_stock c", "c.id=d.stockid and d.balance_num>0", "left")
+            ->join("good b", "c.spuCode=b.spuCode", "left")
+            ->where(['c.wsm_code' => $fo['wsm_code'], "b.is_del" => 0, "c.is_del" => 0])
+            ->field("d.bnCode '商品批次号',b.spuCode'商品编码',b.good_name '商品名称',b.craft_desc '商品描述',b.brand_id '品牌',b.good_unit '单位',b.supplierNo '供应商编码','' as '供应商名称','' as  '一级分类','' as '二级分类','' as  '三级分类',b.addtime '新建时间',c.wsm_code '仓库编码','' as '仓库名称',c.usable_stock '可用总库存',d.balance_num '批次库存数','' as '盘点库存'")
+            ->select()
+            ->toArray();
+        $data = [];
         $userCommon = new \app\admin\common\User();
-        $tmp = $userCommon->handle('getCodeAndName', ['code' => array_column($list,"供应商编码")]);
-        $supplier=$tmp['data']??[];
-        foreach ($list as $key=>$value){
-            $wsm = Db::name("warehouse_info")->where(['wsm_code'=>$value['仓库编码']])->find();
+        $tmp = $userCommon->handle('getCodeAndName', ['code' => array_column($list, "供应商编码")]);
+        $supplier = $tmp['data'] ?? [];
+
+        $unit = Db::name('unit')
+            ->where(['id' => array_column($list, '单位')])
+            ->column('unit', 'id');
+
+        $brand = Db::name('brand')
+            ->where(['id' => array_column($list, '品牌')])
+            ->column('brand_name', 'id');
+
+        $wsm = Db::name('warehouse_info')
+            ->where(['wsm_code' => array_column($list, '仓库编码')])
+            ->column('name', 'wsm_code');
+
+        foreach ($list as $key => $value) {
+//            $wsm = Db::name("warehouse_info")->where(['wsm_code'=>$value['仓库编码']])->find();
 //            $supplier = Db::name("supplier")->where(["code"=>$value['供应商编码']])->find();
-            $value['供应商名称'] =$supplier[$value['供应商编码']]??"";
-            $value['仓库名称'] =isset($wsm['name']) ?$wsm['name'] :"";
-            $unit =Db::name("unit")->where(["id"=>$value['单位']])->find();
-            $brand =Db::name("brand")->where(["id"=>$value['品牌']])->find();
-            $value['单位'] =isset($unit['unit']) ?$unit['unit'] :"";
-            $value['品牌'] =isset($brand['brand_name']) ?$brand['brand_name'] :"";
-            $data[]=$value;
-        }
-        if(empty($data)){
-            $data[]=["暂无商品信息"=>''];
-        }
-        $headerArr= array_keys($data[0]);
-        excelSave('盘点商品',$headerArr,$data);
-       // return app_show(0,"获取成功",$data);
+            $value['供应商名称'] = $supplier[$value['供应商编码']] ?? "";
+            $value['仓库名称'] = $wsm[$value['仓库编码']] ?? '';//isset($wsm['name']) ?$wsm['name'] :"";
+//            $unit =Db::name("unit")->where(["id"=>$value['单位']])->find();
+//            $brand =Db::name("brand")->where(["id"=>$value['品牌']])->find();
+            $value['单位'] = $unit[$value['单位']] ?? '';//isset($unit['unit']) ?$unit['unit'] :"";
+            $value['品牌'] = $brand[$value['品牌']] ?? '';//isset($brand['brand_name']) ?$brand['brand_name'] :"";
+            $data[] = $value;
+        }
+        if (empty($data)) {
+            $data[] = ["暂无商品信息" => ''];
+        }
+        $headerArr = array_keys($data[0]);
+        excelSave('盘点商品', $headerArr, $data);
+        // return app_show(0,"获取成功",$data);
     }
 
     //导入

+ 1 - 0
app/admin/controller/Express.php

@@ -89,6 +89,7 @@ class Express extends Base
         return app_show(0, '获取成功', $list);
     }
 
+    //SupplierExpress 相关数据表不存在,以下5个接口貌似无用
     //获取公司关联的快递公司
     public function getSupplierExpress()
     {

+ 9 - 1
app/admin/controller/Good.php

@@ -5,6 +5,7 @@ namespace app\admin\controller;
 
 use app\admin\model\DataGroup as DataGroupModel;
 use app\admin\model\GoodLog;
+use app\txx\model\YzGood;
 use think\App;
 use think\db\Raw;
 use think\facade\Db;
@@ -275,7 +276,7 @@ class Good extends Base
         $count = Db::name('platform_youzan')
             ->alias("b")
             ->leftJoin("good_basic a", "a.spuCode=b.spuCode")
-            ->leftJoin("depart_user u", "u.uid=a.createrid AND u.is_del=0")
+//            ->leftJoin("depart_user u", "u.uid=a.createrid AND u.is_del=0")
             ->where($where)
             ->count();
 
@@ -294,6 +295,10 @@ class Good extends Base
         $all_createrid = array_column($list,'createrid');
         $item = get_company_name_by_uid($all_createrid);
 
+        //取回所有的详情链接字段
+        $all_skuCode = array_column($list,'skuCode');
+        $detail_url_skuCode = YzGood::where(['item_no'=>$all_skuCode,'is_del'=>0])
+            ->column('detail_url','item_no');
 
         $brand = Db::name('brand')
             ->where(['id'=>array_column($list,'brand_id')])
@@ -357,6 +362,9 @@ class Good extends Base
             $value['is_allow_update'] = 0;
             if (in_array($this->roleid, [1, 33]) || in_array($value['createrid'], $role[DataGroupModel::$type_可编辑])) $value['is_allow_update'] = 1;
 
+            //补充商品详情链接字段
+            $value['detail_url'] = $detail_url_skuCode[$value['skuCode']]??'';
+
             $data[] = $value;
         }
         return app_show(0, "获取成功", ['list' => $data, 'count' => $count]);

+ 41 - 21
app/admin/controller/Orderback.php

@@ -193,12 +193,6 @@ class Orderback extends Base
       $info['total_price']=$orderinfo['total_price'];
       $info['companyNo']=$orderinfo['supplierNo'];
 
-      $userCommon = new \app\admin\common\User();
-      $tmp = $userCommon->handle('getCodeAndName', ['code' => $orderinfo['supplierNo']]);
-      if (!isset($tmp['code']) || $tmp['code'] != 0) return json_show($tmp['code'], $tmp['message'], $tmp['data']);
-
-      $info['company'] = $tmp['data'][$orderinfo['supplierNo']] ?? '';
-
 //      $info['company'] = Db::name('business')
 //          ->where(['companyNo' => $orderinfo['supplierNo'], 'is_del' => 0])
 //          ->value('company','');
@@ -223,11 +217,15 @@ class Orderback extends Base
               return error_show(1003, "未找到出库单数据");
           }
           if($out['wsm_code']!=''){
-              $wsmcode = Db::name("warehouse_info")->alias("a")->leftJoin("supplier b","a.supplierNo=b.code")
-                  ->where(["a.wsm_code"=>$out['wsm_code']])->field("a.name as wsm_name,b.name,b.code")->find();
-              $info['out_wsm_name'] =isset($wsmcode['wsm_name']) ? $wsmcode['wsm_name']:"";
-              $info['out_wsm_supplier'] =isset($wsmcode['name']) ? $wsmcode['name']:"";
-              $info['out_wsm_supplierNo'] =isset($wsmcode['code']) ? $wsmcode['code']:"";
+//              $wsmcode = Db::name("warehouse_info")
+//                  ->alias("a")
+////                  ->leftJoin("supplier b","a.supplierNo=b.code")
+//                  ->where(["a.wsm_code"=>$out['wsm_code']])
+//                  ->field("a.name as wsm_name")
+//                  ->find();
+//              $info['out_wsm_name'] =isset($wsmcode['wsm_name']) ? $wsmcode['wsm_name']:"";
+//              $info['out_wsm_supplier'] =isset($wsmcode['name']) ? $wsmcode['name']:"";
+//              $info['out_wsm_supplierNo'] =isset($wsmcode['code']) ? $wsmcode['code']:"";
           }
       }
       $retutninfo = Db::name("order_return")->where(['returnCode'=>$info['returnCode']])->find();
@@ -239,11 +237,15 @@ class Orderback extends Base
       $info['wsm_supplier']='';
       $info['wsm_supplierNo']='';
       if($info['return_wsm']!=""){
-          $wsmcode = Db::name("warehouse_info")->alias("a")->leftJoin("supplier b","a.supplierNo=b.code")
-              ->where(["a.wsm_code"=>$info['return_wsm']])->field("a.name as wsm_name,b.name,b.code")->find();
-          $info['wsm_name'] =isset($wsmcode['wsm_name']) ? $wsmcode['wsm_name']:"";
-          $info['wsm_supplier'] =isset($wsmcode['name']) ? $wsmcode['name']:"";
-          $info['wsm_supplierNo'] =isset($wsmcode['code']) ? $wsmcode['code']:"";
+//          $wsmcode = Db::name("warehouse_info")
+//              ->alias("a")
+////              ->leftJoin("supplier b","a.supplierNo=b.code")
+//              ->where(["a.wsm_code"=>$info['return_wsm']])
+//              ->field("a.name as wsm_name")
+//              ->find();
+//          $info['wsm_name'] =isset($wsmcode['wsm_name']) ? $wsmcode['wsm_name']:"";
+//          $info['wsm_supplier'] =isset($wsmcode['name']) ? $wsmcode['name']:"";
+//          $info['wsm_supplierNo'] =isset($wsmcode['code']) ? $wsmcode['code']:"";
       }
       $inorder= Db::name("order_backinfo")->alias("a")->leftJoin("result_info b","a.error_code=b.result_code")
           ->where(['a.thNo'=>$info['thNo'],"a.is_del"=>0])->field("a.*,b.result as error_msg")->select();
@@ -256,16 +258,34 @@ class Orderback extends Base
       $warehouse = Db::name('warehouse_info')
           ->alias('wi')
           ->where(['wi.is_del' => 0, 'wi.status' => 1])
-          ->whereIn('wi.wsm_code', [$info['can_sell_wsm'], $info['defective_wsm']])
-          ->leftJoin('supplier s', 's.code=wi.supplierNo AND s.is_del=0')
-          ->column('wi.name,wi.supplierNo,s.name supplier', 'wi.wsm_code');
+          ->whereIn('wi.wsm_code', [$info['can_sell_wsm'], $info['defective_wsm'], $out['wsm_code'], $info['return_wsm']])
+//          ->leftJoin('supplier s', 's.code=wi.supplierNo AND s.is_del=0')
+          ->column('wi.name,wi.supplierNo', 'wi.wsm_code');
+
+      $userCommon = new \app\admin\common\User();
+      $names = $userCommon->handle('getCodeAndName', ['code' => array_unique(array_merge(array_column($warehouse, 'supplierNo'), $orderinfo['supplierNo']))]);
+
+      $info['company'] = $names['data'][$orderinfo['supplierNo']] ?? '';
 
       $info['can_sell_wsm_name'] = isset($warehouse[$info['can_sell_wsm']]['name']) ? $warehouse[$info['can_sell_wsm']]['name'] : '';
       $info['can_sell_wsm_supplierNo'] = isset($warehouse[$info['can_sell_wsm']]['supplierNo']) ? $warehouse[$info['can_sell_wsm']]['supplierNo'] : '';
-      $info['can_sell_wsm_supplier'] = isset($warehouse[$info['can_sell_wsm']]['supplier']) ? $warehouse[$info['can_sell_wsm']]['supplier'] : '';
+      $info['can_sell_wsm_supplier'] = $names['data'][$warehouse[$info['can_sell_wsm']]['supplierNo']] ?? '';
       $info['defective_wsm_name'] = isset($warehouse[$info['defective_wsm']]['name']) ? $warehouse[$info['defective_wsm']]['name'] : '';
       $info['defective_wsm_supplierNo'] = isset($warehouse[$info['defective_wsm']]['supplierNo']) ? $warehouse[$info['defective_wsm']]['supplierNo'] : '';
-      $info['defective_wsm_supplier'] = isset($warehouse[$info['defective_wsm']]['supplier']) ? $warehouse[$info['defective_wsm']]['supplier'] : '';
+      $info['defective_wsm_supplier'] = $names['data'][$warehouse[$info['defective_wsm']]['supplierNo']] ?? '';
+
+
+      if ($out['wsm_code'] != '') {
+          $info['out_wsm_name'] = $warehouse[$info['out_wsm_name']]['name'] ?? '';
+          $info['out_wsm_supplier'] = $names['data'][$warehouse[$info['out_wsm_name']]['supplierNo']] ?? '';
+          $info['out_wsm_supplierNo'] = $warehouse[$info['out_wsm_name']]['supplierNo'] ?? '';
+      }
+      if ($info['return_wsm'] != '') {
+          $info['wsm_name'] = $warehouse[$info['wsm_name']]['name'] ?? '';
+          $info['wsm_supplier'] = $names['data'][$warehouse[$info['wsm_name']]['supplierNo']] ?? '';
+          $info['wsm_supplierNo'] = $warehouse[$info['wsm_name']]['supplierNo'] ?? '';
+      }
+
       return app_show(0, "获取成功", $info);
   }
 

+ 29 - 11
app/admin/controller/Purch.php

@@ -128,13 +128,22 @@ class Purch extends Base
 //		$role = $this->checkDataShare();
 //        if (!empty($role[DataGroupModel::$type_全部])) $where[] = ["sip.personid", "in", $role[DataGroupModel::$type_全部]];
 
+        $userCommon = new \app\admin\common\User();
+
         //只有level2的账号过滤数据权限
         if ($this->level == 2) {
             $role = $this->checkDataShare();
             $hand = resign_hand_user($this->uid, 0);
             if (!empty($role[DataGroupModel::$type_全部])) {
                 $arr = array_unique(array_merge($hand, $role[DataGroupModel::$type_全部]));
-                $where[] = ['sip.personid', 'in', $arr];
+
+                $sql = Db::connect('mysql_sys')
+                    ->name('supplier')
+                    ->field('code')
+                    ->where(['is_del'=>0,'personid'=>$arr])
+                    ->buildSql();
+
+                $where[] = ['po.supplierNo', 'in', $sql];
             }
         }
 
@@ -156,7 +165,7 @@ class Purch extends Base
             ->alias('po')
             ->leftJoin('order_num on', 'on.cgdNo=po.cgdNo')
             ->leftJoin("depart_user u", "u.uid=po.cgder_id AND u.is_del=0")
-            ->leftJoin('supplier sip', 'sip.code=po.supplierNo')
+//            ->leftJoin('supplier sip', 'sip.code=po.supplierNo')
             ->where($where)
             ->where(function ($query) use ($where) {
                 $query->whereOr([['po.order_type', '<>', 1], ['po.order_source', '=', 0]]);
@@ -166,8 +175,8 @@ class Purch extends Base
         $list = Db::name("purchease_order")
             ->alias('po')
             ->leftJoin('order_num on','on.cgdNo=po.cgdNo')
-            ->leftJoin('supplier sip', 'sip.code=po.supplierNo')
-            ->field('po.*,on.orderCode,sip.personid as supplier_cgderid,sip.person as supplier_cgder')
+//            ->leftJoin('supplier sip', 'sip.code=po.supplierNo')
+            ->field('po.*,on.orderCode,"" supplier_cgderid,"" supplier_cgder')
             ->where($where)
             ->where(function($query) use ($where){$query->whereOr([['po.order_type', '<>', 1],['po.order_source', '=', 0]]);})
             ->page($page,$size)
@@ -179,20 +188,29 @@ class Purch extends Base
         $all_createrid = array_column($list,'cgder_id');
         $item = get_company_name_by_uid($all_createrid);
         $data=[];
-        $wsmCodes = array_column($list,'wsm_code');
-         $wsmcode = Db::name("warehouse_info")->alias("a")
-                    ->where(["a.wsm_code"=>$wsmCodes])->column("a.name as wsm_name,a.supplierNo as code","wsm_code");
-          $userCommon = new \app\admin\common\User();
+        $wsmCodes = array_column($list, 'wsm_code');
+        $wsmcode = Db::name("warehouse_info")
+            ->alias("a")
+            ->where(["a.wsm_code" => $wsmCodes])
+            ->column("a.name as wsm_name,a.supplierNo as code", "wsm_code");
+
           $wsmsupplier=[];
          if(!empty($wsmcode)){
             $names = $userCommon->handle('getCodeAndName', ['code' => array_column($wsmcode,"code")]);
             $wsmsupplier = $names['data']??[];
          }
 
+        //补充供应商负责人(sip.personid as supplier_cgderid,sip.person as supplier_cgder)
+        $person_list = $userCommon->handle('sGetList', ['code' => array_unique(array_column($list, 'supplierNo')), 'size' => $size]);
+        $person_list = array_column($person_list['data']['list'], null, 'code');
+
         foreach ($list as $value){
-        	     $value['wsm_name'] =isset($wsmcode[$value['wsm_code']]['wsm_name']) ? $wsmcode[$value['wsm_code']]['wsm_name']:"";
-                $value['wsm_supplier'] =$wsmsupplier[$wsmcode[$value['wsm_code']]['code']]??"";
-                $value['wsm_supplierNo'] =$wsmcode[$value['wsm_code']]['code']??"";
+            $value['wsm_name'] = isset($wsmcode[$value['wsm_code']]['wsm_name']) ? $wsmcode[$value['wsm_code']]['wsm_name'] : "";
+            $value['wsm_supplier'] = $wsmsupplier[$wsmcode[$value['wsm_code']]['code']] ?? "";
+            $value['wsm_supplierNo'] = $wsmcode[$value['wsm_code']]['code'] ?? "";
+
+            $value['supplier_cgderid'] = $person_list[$value['supplierNo']]['personid'] ?? '';
+            $value['supplier_cgder'] = $person_list[$value['supplierNo']]['person'] ?? '';
 //            $value['wsm_name']="";
 //            if($value['wsm_code']!=""){
 ////                $wsmcode = Db::name("warehouse_info")->alias("a")->leftJoin("supplier b","a.supplierNo=b.code")

+ 37 - 8
app/admin/controller/Purchin.php

@@ -98,7 +98,16 @@ class Purchin extends Base
             $hand = resign_hand_user($this->uid, 0);
             if (!empty($role[DataGroupModel::$type_全部])) {
                 $arr = array_unique(array_merge($hand, $role[DataGroupModel::$type_全部]));
-                $condition[] = ["sip.personid", "in", $arr];
+
+                if($arr){
+                    $sys_supplier = Db::connect('mysql_sys')
+                        ->name('supplier')
+                        ->field('code')
+                        ->where(['is_del'=>0,'personid'=>$arr])
+                        ->buildSql();
+                    $condition[] = ["sip.personid", "in", $sys_supplier];
+                }
+
                 $condition[] = ["a.apply_id", "in", $hand];
                 $condition[] = ["c.contactor", "in", $hand];
 //        	$condition.="sip.personid in (".implode(",",
@@ -117,7 +126,7 @@ class Purchin extends Base
             ->alias('a')
             ->join("purchease_order b","b.cgdNo=a.cgdNo","left")
             ->leftJoin("warehouse_info c","a.wsm_code=c.wsm_code")
-            ->leftJoin('supplier sip', 'sip.code=b.supplierNo')
+//            ->leftJoin('supplier sip', 'sip.code=b.supplierNo')
             ->where($where)
 //            ->whereOr($condition)
             ->where(function ($query)use ($condition){$query->whereOr($condition);})
@@ -127,12 +136,12 @@ class Purchin extends Base
         $list = Db::name('purchease_in')
             ->alias('a')
             ->join("purchease_order b","b.cgdNo=a.cgdNo","left")
-            ->leftJoin('supplier sip', 'sip.code=b.supplierNo')
+//            ->leftJoin('supplier sip', 'sip.code=b.supplierNo')
             ->leftJoin("warehouse_info c","a.wsm_code=c.wsm_code")
             ->where($where)
              ->where(function ($query)use ($condition){$query->whereOr($condition);})
             ->page($page,$size)
-            ->field("a.apply_name,a.sendtime,b.order_type,b.order_source,a.status,a.cgdNo,a.wsm_in_code,a.send_num,a.wsm_code,b.good_name,b.spuCode,a.post_company,a.post_code,a.post_fee,a.apply_id,a.wsm_num,a.error_num,a.wait_num,a.status,a.check_name,a.checkid,b.bkcode,b.supplierNo,sip.personid as cgder_id,sip.person as cgder,b.good_createrid,b.good_creater")
+            ->field("a.apply_name,a.sendtime,b.order_type,b.order_source,a.status,a.cgdNo,a.wsm_in_code,a.send_num,a.wsm_code,b.good_name,b.spuCode,a.post_company,a.post_code,a.post_fee,a.apply_id,a.wsm_num,a.error_num,a.wait_num,a.status,a.check_name,a.checkid,b.bkcode,b.supplierNo,'' cgder_id,'' cgder,b.good_createrid,b.good_creater,c.name wsm_name,c.supplierNo wsm_supplierNo")
             ->order("a.addtime desc")
             ->select()
             ->toArray();
@@ -140,9 +149,19 @@ class Purchin extends Base
         $all_createrid = array_column($list,'apply_id');
         $item = get_company_name_by_uid($all_createrid);
 
+        //获取采购单供应商和仓库供应商的名称
+        $userCommon = new \app\admin\common\User();
+        $names = $userCommon->handle('getCodeAndName',['code'=>array_unique(array_merge(array_column($list,'supplierNo'),array_column($list,'wsm_supplierNo')))]);
+
+        $all_supplier = $userCommon->handle('sGetList',['more_code'=>array_column($list,'supplierNo'),'page'=>1,'size'=>$size]);
+        $all_supplier_list = array_column($all_supplier['data']['list'],null,'code');
+
         $data=[];
         foreach ($list as $value){
 
+            $value['cgder_id'] = $all_supplier_list[$value['supplierNo']]['personid']??'';
+            $value['cgder'] = $all_supplier_list[$value['supplierNo']]['person']??'';
+
             //获取规格、品牌信息
             if ($value['order_type'] == 3) {
                 $temp = Db::name('good_zixun')
@@ -184,10 +203,15 @@ class Purchin extends Base
             }
 
 
-            $wsmcode = Db::name("warehouse_info")->alias("k")->leftJoin("supplier c","k.supplierNo=c.code")->where(["k.wsm_code"=>$value['wsm_code']])->field("k.name as wsm_name,c.name,c.code")->find();
-            $value['wsm_name'] = $wsmcode['wsm_name'];
-            $value['wsm_supplier'] = $wsmcode['name'];
-            $value['wsm_supplierNo'] = $wsmcode['code'];
+//            $wsmcode = Db::name("warehouse_info")
+//                ->alias("k")
+//                ->leftJoin("supplier c","k.supplierNo=c.code")
+//                ->where(["k.wsm_code"=>$value['wsm_code']])
+//                ->field("k.name as wsm_name,c.name,c.code")
+//                ->find();
+//            $value['wsm_name'] = $wsmcode['wsm_name'];
+            $value['wsm_supplier'] = $names['data'][$value['wsm_supplierNo']]??'';
+//            $value['wsm_supplierNo'] = $wsmcode['code'];
 
             $value['company_name'] = $item[$value['apply_id']]??'';
 
@@ -197,6 +221,11 @@ class Purchin extends Base
 
             $data[]=$value;
         }
+
+
+
+
+
         return app_show(0,"获取成功",['list'=>$data,'count'=>$count]);
     }
     public function  add(){

+ 161 - 162
app/admin/controller/Reorder.php

@@ -574,6 +574,7 @@ class Reorder extends Base
        $info['post_fee'] = isset($orderinfo['post_fee'])?$orderinfo['post_fee']:'0';
        $info['customer_code'] = isset($orderinfo['customer_code'])?$orderinfo['customer_code']:'';
 
+        $userCommon = new \app\admin\common\User();
         if($info['return_wsm']!=""){
             $wsmcode = Db::name("warehouse_info")
                 ->alias("a")
@@ -582,19 +583,16 @@ class Reorder extends Base
                 ->field("a.name as wsm_name,a.supplierNo")
                 ->find();
             $info['wsm_name'] =isset($wsmcode['wsm_name']) ? $wsmcode['wsm_name']:"";
-        }
-
-
-        $userCommon = new \app\admin\common\User();
-        $tmp = $userCommon->handle('getCodeAndName', ['code' => [
-            $orderinfo['supplierNo'],
-            $orderinfo['customer_code'],
-            $wsmcode['supplierNo']??'',
-        ]]);
 
-        $info['wsm_supplier'] =$tmp['data'][$wsmcode['supplierNo']]??'';//isset($wsmcode['name']) ? $wsmcode['name']:"";
-        $info['wsm_supplierNo'] =$wsmcode['supplierNo']??'';//isset($wsmcode['code']) ? $wsmcode['code']:"";
+            $tmp = $userCommon->handle('getCodeAndName', ['code' => [
+                $orderinfo['supplierNo'],
+                $orderinfo['customer_code'],
+                $wsmcode['supplierNo']??'',
+            ]]);
 
+            $info['wsm_supplier'] =$tmp['data'][$wsmcode['supplierNo']]??'';//isset($wsmcode['name']) ? $wsmcode['name']:"";
+            $info['wsm_supplierNo'] =$wsmcode['supplierNo']??'';//isset($wsmcode['code']) ? $wsmcode['code']:"";
+        }
 
         $info['customer_name']='';
         if(isset($orderinfo['customer_code'])&&$orderinfo['customer_code']!=''){
@@ -660,7 +658,7 @@ class Reorder extends Base
         $info['wsminfo']=$wsm;
         $addr =Db::name("sale_returnaddr")
             ->alias('a')
-            ->field('a.*,b.addr,b.addr_code,b.contactor,b.mobile,b.post_fee,b.addive_time,b.customer_code,b.receipt_quantity,b.orderCode')
+            ->field('a.*,b.addr,b.addr_code,b.contactor,b.mobile,b.post_fee,b.arrive_time,b.customer_code,b.receipt_quantity,b.orderCode')
             ->leftJoin('order_addr b','b.id=a.addrid')
             ->where(["a.returnCode"=>$info["returnCode"],"a.is_del"=>0])
             ->select()
@@ -1093,156 +1091,157 @@ class Reorder extends Base
 //                        'holder_id' => $holder_id
 //                    ]);
 
-                    if ($orderinfo['is_stock'] == 1 || $info['is_th'] == 0) {
-
-                        if ($orderinfo['order_type'] != 1) {
-                            if ($orderinfo['order_type'] == 3) {
-                                $goon = Db::name("good_zixun")
-                                    ->where(["spuCode" => $orderinfo['good_code'], "is_del" => 0])
-                                    ->findOrEmpty();
-                                $isZx = 1;
-                            } else {
-                                $goon = Db::name('good_basic')
-                                    ->where(['spuCode' => $orderinfo['good_code']])
-                                    ->findOrEmpty();
-                                $isZx = 2;
-                            }
-                            $spuCode = $this->CheckGoodZx($goon, $isZx, $code);
-                            $wsmcode = $info['return_wsm'];
-                            if ($wsmcode == "") throw new Exception('未找到退货仓库');
-
-                            $stock = Db::name("good_stock")
-                                ->where(['is_del' => 0, "spuCode" => $spuCode, 'wsm_code' => $wsmcode])
-                                ->findOrEmpty();
-                            if (empty($stock)) {
-                                $stock = [
-                                    "spuCode" => $spuCode,
-                                    "wsm_code" => $wsmcode,
-                                    "usable_stock" => 0,
-                                    "wait_out_stock" => 0,
-                                    "wait_in_stock" => 0,
-                                    "total_stock" => 0,
-                                    "addtime" => $date,
-                                    "updatetime" => $date,
-                                ];
-                            }
-                            $stock['usable_stock'] += $info['num'];
-                            $stock['updatetime'] = $date;
-                            $st_up = Db::name("good_stock")->save($stock);
-                            if ($st_up == false) throw new Exception('可售商品入库失败');
-
-                            $stockid = isset($stock['id']) ? $stock['id'] : Db::name("good_stock")->getLastInsID();
-                            $sabebn = Db::name("sale_info")
-                                ->where(["orderCode" => $orderinfo["orderCode"]])
-                                ->select()
-                                ->toArray();
-                            if (!empty($sabebn)) {
-                                $total_num = $info['num'];
-                                foreach ($sabebn as $ve) {
-                                    $tempnum = 0;
-                                    if ($total_num == 0) break;
-                                    if ($total_num >= $ve['num']) {
-                                        $tempnum = $ve['num'];
-                                        $total_num -= $ve['num'];
-                                        $ve['th_num'] += $ve['num'];
-                                        $ve['num'] = 0;
-                                    } else {
-                                        $tempnum = $total_num;
-                                        $ve['num'] -= $total_num;
-                                        $ve['th_num'] += $total_num;
-                                        $total_num = 0;
-                                    }
-                                    $bnin = GoodStockInfo::AddBn($stockid, $ve['bnCode'], $tempnum, $ve['origin_price']);
-                                    if ($bnin == false) throw new Exception('可售商品Bn库存数入库失败');
-
-                                    $ve['updatetime'] = $date;
-                                    $up = Db::name("sale_info")->save($ve);
-                                    if ($up == false) throw new Exception('可售商品Bn库存数入库失败');
-
-                                    $bnin = GoodStockInfo::ReturnBn($info['returnCode'], $ve['id'], $tempnum);
-                                    if ($bnin == false) throw new Exception('可售商品Bn库存数入库失败');
-
-                                }
-                            } else {
-                                $bn = makeNo("BN");
-                                $bnin = GoodStockInfo::AddBn($stockid, $bn, $info['num'], $cgd['good_price'] ?? 0);
-                                if ($bnin == false) throw new Exception('可售商品Bn库存数入库失败');
-
-                            }
-                            $good_data = ['good_log_code' => $info['returnCode'], "stock_id" => $stockid, "type" => 1, 'stock' => $info['num'], "stock_name" => "usable_stock"];
-                            GoodLog::LogAdd(['id' => $this->uid, 'nickname' => $this->uname], $good_data, 'XSTHD');
-                        } else {
-                            $sabebn = Db::name("sale_info")
-                                ->where(["orderCode" => $orderinfo["orderCode"]])
-                                ->select()
-                                ->toArray();
-                            if (!empty($sabebn)) {
-                                $total_num = $info['num'];
-                                foreach ($sabebn as $ve) {
-                                    $stock = Db::name("good_stock")
-                                        ->where(['is_del' => 0, "spuCode" => $orderinfo['good_code'], 'id' => $ve['stockid']])
-                                        ->findOrEmpty();
-                                    if ($stock == false) throw new Exception('商品库存数据未找到');
-
-                                    $tempnum = 0;
-                                    if ($total_num == 0) break;
-                                    if ($total_num >= $ve['num']) {
-                                        $tempnum = $ve['num'];
-                                        $total_num -= $ve['num'];
-                                        $ve['th_num'] += $ve['num'];
-                                        $ve['num'] = 0;
-                                    } else {
-                                        $tempnum = $total_num;
-                                        $ve['num'] -= $total_num;
-                                        $ve['th_num'] += $total_num;
-                                        $total_num = 0;
-                                    }
-                                    $stock['usable_stock'] += $tempnum;
-                                    $stock['wait_out_stock'] -= $tempnum;
-                                    $stock['updatetime'] = $date;
-                                    $st_up = Db::name("good_stock")->save($stock);
-                                    if ($st_up == false) throw new Exception('可售商品入库失败');
-
-
-                                    $bnin = GoodStockInfo::AddBn($ve['stock_id'], $ve['bnCode'], $tempnum, $ve['origin_price']);
-                                    if ($bnin == false) throw new Exception('可售商品Bn库存数入库失败');
-
-                                    $ve['updatetime'] = $date;
-                                    $up = Db::name("sale_info")->save($ve);
-                                    if ($up == false) throw new Exception('可售商品Bn库存数入库失败');
-
-                                    $bnin = GoodStockInfo::ReturnBn($info['returnCode'], $ve['id'], $tempnum);
-                                    if ($bnin == false) throw new Exception('可售商品Bn库存数入库失败');
-
-                                }
-                            } else {
-
-                                $ordernum = Db::name("order_num")->where(['orderCode' => $orderinfo["orderCode"]])->findOrEmpty();
-                                if ($ordernum == false) throw new Exception('未找到关联采购单');
-
-                                $cgd = Db::name("purchease_order")
-                                    ->where(["cgdNo" => $ordernum['cgdNo'], "is_del" => 0])
-                                    ->findOrEmpty();
-                                if ($cgd == false) throw new Exception('未找到采购单数据');
-
-                                $bn = makeNo("BN");
-                                $stock = Db::name("good_stock")
-                                    ->where(["spuCode" => $orderinfo['good_code'], 'wsm_code' => $cgd['wsm_code'], "is_del" => 0, "status" => 1])
-                                    ->findOrEmpty();
-                                if ($stock == false) throw new Exception('商品库存数据未找到');
-
-                                $stock['usable_stock'] += $info['num'];
-                                $stock['wait_out_stock'] -= $info['num'];
-                                $stock['updatetime'] = $date;
-                                $st_up = Db::name("good_stock")->save($stock);
-                                if ($st_up == false) throw new Exception('可售商品入库失败');
-
-                                $yp = GoodStockInfo::AddBn($stock['id'], $bn, $info['num'], $cgd['good_price']);
-                                if ($yp == false) throw new Exception('商品批次退货入库失败');
-
-                            }
-                        }
-                    }
+                    //以下判断是当供应商不同意要退回到业务公司的时候触发的,在3.0系统中不需要了2023-02-09@by武
+//                    if ($orderinfo['is_stock'] == 1 || $info['is_th'] == 0) {
+//
+//                        if ($orderinfo['order_type'] != 1) {
+//                            if ($orderinfo['order_type'] == 3) {
+//                                $goon = Db::name("good_zixun")
+//                                    ->where(["spuCode" => $orderinfo['good_code'], "is_del" => 0])
+//                                    ->findOrEmpty();
+//                                $isZx = 1;
+//                            } else {
+//                                $goon = Db::name('good_basic')
+//                                    ->where(['spuCode' => $orderinfo['good_code']])
+//                                    ->findOrEmpty();
+//                                $isZx = 2;
+//                            }
+//                            $spuCode = $this->CheckGoodZx($goon, $isZx, $code);
+//                            $wsmcode = $info['return_wsm'];
+//                            if ($wsmcode == "") throw new Exception('未找到退货仓库');
+//
+//                            $stock = Db::name("good_stock")
+//                                ->where(['is_del' => 0, "spuCode" => $spuCode, 'wsm_code' => $wsmcode])
+//                                ->findOrEmpty();
+//                            if (empty($stock)) {
+//                                $stock = [
+//                                    "spuCode" => $spuCode,
+//                                    "wsm_code" => $wsmcode,
+//                                    "usable_stock" => 0,
+//                                    "wait_out_stock" => 0,
+//                                    "wait_in_stock" => 0,
+//                                    "total_stock" => 0,
+//                                    "addtime" => $date,
+//                                    "updatetime" => $date,
+//                                ];
+//                            }
+//                            $stock['usable_stock'] += $info['num'];
+//                            $stock['updatetime'] = $date;
+//                            $st_up = Db::name("good_stock")->save($stock);
+//                            if ($st_up == false) throw new Exception('可售商品入库失败');
+//
+//                            $stockid = isset($stock['id']) ? $stock['id'] : Db::name("good_stock")->getLastInsID();
+//                            $sabebn = Db::name("sale_info")
+//                                ->where(["orderCode" => $orderinfo["orderCode"]])
+//                                ->select()
+//                                ->toArray();
+//                            if (!empty($sabebn)) {
+//                                $total_num = $info['num'];
+//                                foreach ($sabebn as $ve) {
+//                                    $tempnum = 0;
+//                                    if ($total_num == 0) break;
+//                                    if ($total_num >= $ve['num']) {
+//                                        $tempnum = $ve['num'];
+//                                        $total_num -= $ve['num'];
+//                                        $ve['th_num'] += $ve['num'];
+//                                        $ve['num'] = 0;
+//                                    } else {
+//                                        $tempnum = $total_num;
+//                                        $ve['num'] -= $total_num;
+//                                        $ve['th_num'] += $total_num;
+//                                        $total_num = 0;
+//                                    }
+//                                    $bnin = GoodStockInfo::AddBn($stockid, $ve['bnCode'], $tempnum, $ve['origin_price']);
+//                                    if ($bnin == false) throw new Exception('可售商品Bn库存数入库失败');
+//
+//                                    $ve['updatetime'] = $date;
+//                                    $up = Db::name("sale_info")->save($ve);
+//                                    if ($up == false) throw new Exception('可售商品Bn库存数入库失败');
+//
+//                                    $bnin = GoodStockInfo::ReturnBn($info['returnCode'], $ve['id'], $tempnum);
+//                                    if ($bnin == false) throw new Exception('可售商品Bn库存数入库失败');
+//
+//                                }
+//                            } else {
+//                                $bn = makeNo("BN");
+//                                $bnin = GoodStockInfo::AddBn($stockid, $bn, $info['num'], $cgd['good_price'] ?? 0);
+//                                if ($bnin == false) throw new Exception('可售商品Bn库存数入库失败');
+//
+//                            }
+//                            $good_data = ['good_log_code' => $info['returnCode'], "stock_id" => $stockid, "type" => 1, 'stock' => $info['num'], "stock_name" => "usable_stock"];
+//                            GoodLog::LogAdd(['id' => $this->uid, 'nickname' => $this->uname], $good_data, 'XSTHD');
+//                        } else {
+//                            $sabebn = Db::name("sale_info")
+//                                ->where(["orderCode" => $orderinfo["orderCode"]])
+//                                ->select()
+//                                ->toArray();
+//                            if (!empty($sabebn)) {
+//                                $total_num = $info['num'];
+//                                foreach ($sabebn as $ve) {
+//                                    $stock = Db::name("good_stock")
+//                                        ->where(['is_del' => 0, "spuCode" => $orderinfo['good_code'], 'id' => $ve['stockid']])
+//                                        ->findOrEmpty();
+//                                    if ($stock == false) throw new Exception('商品库存数据未找到');
+//
+//                                    $tempnum = 0;
+//                                    if ($total_num == 0) break;
+//                                    if ($total_num >= $ve['num']) {
+//                                        $tempnum = $ve['num'];
+//                                        $total_num -= $ve['num'];
+//                                        $ve['th_num'] += $ve['num'];
+//                                        $ve['num'] = 0;
+//                                    } else {
+//                                        $tempnum = $total_num;
+//                                        $ve['num'] -= $total_num;
+//                                        $ve['th_num'] += $total_num;
+//                                        $total_num = 0;
+//                                    }
+//                                    $stock['usable_stock'] += $tempnum;
+//                                    $stock['wait_out_stock'] -= $tempnum;
+//                                    $stock['updatetime'] = $date;
+//                                    $st_up = Db::name("good_stock")->save($stock);
+//                                    if ($st_up == false) throw new Exception('可售商品入库失败');
+//
+//
+//                                    $bnin = GoodStockInfo::AddBn($ve['stock_id'], $ve['bnCode'], $tempnum, $ve['origin_price']);
+//                                    if ($bnin == false) throw new Exception('可售商品Bn库存数入库失败');
+//
+//                                    $ve['updatetime'] = $date;
+//                                    $up = Db::name("sale_info")->save($ve);
+//                                    if ($up == false) throw new Exception('可售商品Bn库存数入库失败');
+//
+//                                    $bnin = GoodStockInfo::ReturnBn($info['returnCode'], $ve['id'], $tempnum);
+//                                    if ($bnin == false) throw new Exception('可售商品Bn库存数入库失败');
+//
+//                                }
+//                            } else {
+//
+//                                $ordernum = Db::name("order_num")->where(['orderCode' => $orderinfo["orderCode"]])->findOrEmpty();
+//                                if ($ordernum == false) throw new Exception('未找到关联采购单');
+//
+//                                $cgd = Db::name("purchease_order")
+//                                    ->where(["cgdNo" => $ordernum['cgdNo'], "is_del" => 0])
+//                                    ->findOrEmpty();
+//                                if ($cgd == false) throw new Exception('未找到采购单数据');
+//
+//                                $bn = makeNo("BN");
+//                                $stock = Db::name("good_stock")
+//                                    ->where(["spuCode" => $orderinfo['good_code'], 'wsm_code' => $cgd['wsm_code'], "is_del" => 0, "status" => 1])
+//                                    ->findOrEmpty();
+//                                if ($stock == false) throw new Exception('商品库存数据未找到');
+//
+//                                $stock['usable_stock'] += $info['num'];
+//                                $stock['wait_out_stock'] -= $info['num'];
+//                                $stock['updatetime'] = $date;
+//                                $st_up = Db::name("good_stock")->save($stock);
+//                                if ($st_up == false) throw new Exception('可售商品入库失败');
+//
+//                                $yp = GoodStockInfo::AddBn($stock['id'], $bn, $info['num'], $cgd['good_price']);
+//                                if ($yp == false) throw new Exception('商品批次退货入库失败');
+//
+//                            }
+//                        }
+//                    }
 
 
                     $data = [

+ 35 - 28
app/admin/controller/Sale.php

@@ -3550,13 +3550,13 @@ class Sale extends Base
         if ($status !== "") {
             $where[] = ['a.status', "=", $status];
         }
-          $start = isset($this->post['start']) && $this->post['start'] !== "" ? $this->post['start'] : "";
+        $start = isset($this->post['start']) && $this->post['start'] !== "" ? $this->post['start'] : "";
         if ($start != "") {
-            $where[] = ["a.addtime", '>=', $start." 00:00:00"];
+            $where[] = ["a.addtime", '>=', $start . " 00:00:00"];
         }
         $end = isset($this->post['end']) && $this->post['end'] !== "" ? $this->post['end'] : "";
         if ($end != "") {
-            $where[] = ["a.addtime", '<=', $end." 23:59:59"];
+            $where[] = ["a.addtime", '<=', $end . " 23:59:59"];
         }
         $companyNo = isset($this->post['companyNo']) && $this->post['companyNo'] !== "" ? trim($this->post['companyNo']) : "";
         if ($companyNo != "") {
@@ -3582,7 +3582,7 @@ class Sale extends Base
             $where[] = ["os.cgdNo", 'like', '%' . $cgdNo . '%'];
         }
 //        $role = $this->checkRole();
-        $condition ='';
+        $condition = '';
 //        if (!empty($role['write']) && $this->uid != "") {
 //            // $where[]=["a.apply_id","in",$role['write']];
 //            $condition .= " (b.is_stock=1 and n.contactor = {$this->uid}) or (b.is_stock=0 and wpo.cgder_id = {$this->uid}) or a.apply_id in (" . implode(',',
@@ -3608,7 +3608,14 @@ class Sale extends Base
 //                $personid = Db::name('supplier')->field('id')->where(['is_del' => 0, 'personid' => $hand])->findOrEmpty();
                 if (!empty($hand)) {
                     if ($condition != '') $condition .= " or ";
-                    $condition .= "(b.is_stock=0 and sip.personid in ($uidarr))";
+//                    $condition .= "(b.is_stock=0 and sip.personid in ($uidarr))";
+
+                    $person_supplier = Db::connect('mysql_sys')
+                        ->name('supplier')
+                        ->field('code')
+                        ->where(['is_del'=>0,'personid'=>$uidarr])
+                        ->buildSql();
+                    $condition .= "(b.is_stock=0 and wpo.supplierNo in {$person_supplier})";
                 }
             }
         }
@@ -3627,7 +3634,7 @@ class Sale extends Base
         $end_sendtime = isset($this->post['end_sendtime']) && $this->post['end_sendtime'] !== "" ? $this->post['end_sendtime'] : "";
 
         if ($start_sendtime != "" && $end_sendtime != "") {
-            $where[] = ["a.sendtime", 'between', [$start_sendtime." 00:00:00", $end_sendtime." 23:59:59"]];
+            $where[] = ["a.sendtime", 'between', [$start_sendtime . " 00:00:00", $end_sendtime . " 23:59:59"]];
             $where[] = ["a.status", '>=', 2];//搜索发货时间时,要指定状态为已发货及之后的状态值(0待发货,1待库管发货,2已发货待收货,3已收货,4已全部退货',)
         }
 
@@ -3652,7 +3659,7 @@ class Sale extends Base
             ->leftJoin("order_send os", "os.outCode=a.outCode")
             ->leftJoin("purchease_order wpo", "wpo.cgdNo=os.cgdNo")
 //	        ->leftJoin('supplier sip', 'sip.code=wpo.supplierNo')
-            ->field("a.*,b.order_type,b.order_source,b.good_name,b.good_code,b.skuCode,b.supplierNo,b.customer_code,'' companyName,b.origin_price,b.sale_price,b.total_price,os.cgdNo,wpo.supplierNo")
+            ->field("a.*,b.order_type,b.order_source,b.good_name,b.good_code,b.skuCode,b.customer_code,'' companyName,b.origin_price,b.sale_price,b.total_price,os.cgdNo,wpo.supplierNo,n.supplierNo wsm_supplierNo")
             ->where($where)
             ->where($condition)
             ->order("addtime desc")
@@ -3660,50 +3667,50 @@ class Sale extends Base
             ->select()
             ->toArray();
 
-        $all_createrid = array_column($list,'apply_id');
+        $all_createrid = array_column($list, 'apply_id');
         $item = get_company_name_by_uid($all_createrid);
-		$user= new \app\admin\common\User();
-        $supplier =$user->handle("getCodeAndName",["code"=>array_merge(array_column($list,"supplierNo"),array_column($list,"wsm_supplierNo"))]);
+        $user = new \app\admin\common\User();
+        $names = $user->handle("getCodeAndName", ["code" => array_merge(array_column($list, "supplierNo"), array_column($list, "customer_code"), array_column($list, "wsm_supplierNo"))]);
 
-        $userCommon = new \app\admin\common\User();
-        $names = $userCommon->handle('getCodeAndName',['code'=>array_column($list,'customer_code')]);
+//        $userCommon = new \app\admin\common\User();
+//        $names = $userCommon->handle('getCodeAndName',['code'=>array_column($list,'customer_code')]);
 
         $data = [];
         foreach ($list as $value) {
 
-            $value['companyName'] = $names['data'][$value['customer_code']]??'';
+            $value['companyName'] = $names['data'][$value['customer_code']] ?? '';
 
-            if($value['order_type']==1 && $value['wsm_code']==''){
+            if ($value['order_type'] == 1 && $value['wsm_code'] == '') {
 //            	$wsmcode = Db::name("good")->alias("a")
 //            	->leftJoin("supplier b","a.supplierNo=b.code")
 //            	->where(["a.spuCode"=>$value['good_code']])->field("'' wsm_name,b.name,b.code")->find();
-            $value['wsm_supplierNo'] =$value['supplierNo'];
-            $value['wsm_supplier'] = $supplier['data'][$value['supplierNo']]??"";
-            }else{
+                $value['wsm_supplierNo'] = $value['supplierNo'];
+                $value['wsm_supplier'] = $names['data'][$value['supplierNo']] ?? "";
+            } else {
 //            	 $wsmcode = Db::name("warehouse_info")->alias("k")->leftJoin("supplier c", "k.supplierNo=c.code")
 //                ->where(["k.wsm_code" => $value['wsm_code']])->field("k.name as wsm_name,c.name,c.code")->find();
-            $value['wsm_supplier'] = $supplier['data'][$value['wsm_supplierNo']]??"";
+                $value['wsm_supplier'] = $names['data'][$value['wsm_supplierNo']] ?? "";
             }
             $addr = Db::name("order_addr")->where(["id" => $value['addrid']])->find();
-            if($addr){
-                 $addinfo =$addr['addr_code']!=''?json_decode($addr['addr_code'],true)??$addr['addr_code']: '' ;
-                if(is_string($addinfo) &&$addinfo!=''){
-                    $addinfo=["provice_code"=>'',"city_code"=>'',"area_code"=>''];
-                    list($addinfo['provice_code'],$addinfo['city_code'],$addinfo['area_code']) = explode(",",$addr['addr_code']);
-                 }
-                $addr['addr_cn'] =GetAddr(json_encode($addinfo));
+            if ($addr) {
+                $addinfo = $addr['addr_code'] != '' ? json_decode($addr['addr_code'], true) ?? $addr['addr_code'] : '';
+                if (is_string($addinfo) && $addinfo != '') {
+                    $addinfo = ["provice_code" => '', "city_code" => '', "area_code" => ''];
+                    list($addinfo['provice_code'], $addinfo['city_code'], $addinfo['area_code']) = explode(",", $addr['addr_code']);
+                }
+                $addr['addr_cn'] = GetAddr(json_encode($addinfo));
             }
             if ($value['order_type'] == 3) {
                 $goon = Db::name("good_zixun")->field('id,cat_id')->where(["spuCode" => $value['good_code'], "is_del" => 0])->find();
             } else {
                 $goon = Db::name('good_platform')->field('a.id,b.cat_id')->alias('a')->join('good b', 'b.spuCode=a.spuCode', 'left')->where(['a.skuCode' => $value['skuCode']])->find();
             }
-            $value['wsm_has_account'] = (int)isset(checkHasAccountBySupplierNos([$wsmcode['wsm_supplierNo']])[$wsmcode['wsm_supplierNo']]);
-            $value['addr'] = isset($addr['addr']) ?  $addr['addr_cn'].$addr['addr'] : "";
+            $value['wsm_has_account'] = 0;//(int)isset(checkHasAccountBySupplierNos([$wsmcode['wsm_supplierNo']])[$wsmcode['wsm_supplierNo']]);
+            $value['addr'] = isset($addr['addr']) ? $addr['addr_cn'] . $addr['addr'] : "";
             $value['contactor'] = isset($addr['contactor']) ? $addr['contactor'] : "";
             $value['mobile'] = isset($addr['mobile']) ? $addr['mobile'] : "";
             $value['can'] = isset($goon['cat_id']) && $goon['cat_id'] != 0 ? made($goon['cat_id']) : [];
-            $value['company_name'] = $item[$value['apply_id']]??'';
+            $value['company_name'] = $item[$value['apply_id']] ?? '';
 
             $value['sendtime'] = $value['status'] < 2 ? '' : $value['sendtime'];
 

+ 26 - 9
app/admin/controller/Salezx.php

@@ -611,17 +611,34 @@ class Salezx extends \app\BaseController
 //                    $ord = ["order_type" => "CKD", "order_code" => $der['outCode'], "order_id" => $der['id'], "order_status" => $der['status'], 'holder_id' => $der['apply_id'], 'handle_user_list' => implode(',', $uids)];
 //                } elseif ($order['is_stock'] == 0 || $order['order_typee'] == 3) {
                     //推给供应商负责人
-                    $supplier = Db::name('supplier')
-                        ->alias('a')
-                        ->field('a.id,a.person,a.personid')
-                        ->leftJoin('purchease_order b', 'b.is_del=0 AND b.supplierNo=a.code')
-                        ->leftJoin('order_num c', 'c.cgdNo=b.cgdNo')
-                        ->where('c.orderCode', $der['orderCode'])
-                        ->findOrEmpty();
-                    $ord = ["order_type" => "CKD", "order_code" => $der['outCode'], "order_id" => $der['id'], "order_status" => $der['status'], 'holder_id' => $der['apply_id'], 'wait_id' => $supplier['personid'], 'wait_name' => $supplier['person']];
+//                    $supplier = Db::name('supplier')
+//                        ->alias('a')
+//                        ->field('a.id,a.person,a.personid')
+//                        ->leftJoin('purchease_order b', 'b.is_del=0 AND b.supplierNo=a.code')
+//                        ->leftJoin('order_num c', 'c.cgdNo=b.cgdNo')
+//                        ->where('c.orderCode', $der['orderCode'])
+//                        ->findOrEmpty();
+
+                //查找供应商编码
+                $supplierNo = Db::name('order_num')
+                    ->alias('a')
+                    ->where(['a.orderCode'=>$der['orderCode']])
+                    ->leftJoin('purchease_order b','b.is_del=0 AND b.cgdNo=a.cgdNo')
+                    ->value('supplierNo','');
+                if($supplierNo !=''){
+                    $userCommon=new \app\admin\common\User();
+                    $tmp = $userCommon->handle('sInfo',['code'=>$supplierNo]);
+                    if(isset($tmp['data'])){
+                        $ord = ["order_type" => "CKD", "order_code" => $der['outCode'], "order_id" => $der['id'], "order_status" => $der['status'], 'holder_id' => $der['apply_id'], 'wait_id' => $tmp['data']['personid'], 'wait_name' => $tmp['data']['person']];
+                        ProcessOrder::AddProcess($this->post['token'], $ord);
+                    }
+                }
+
+
+
 //                }
 //                if (empty($ord)) $ord = ["order_type" => "CKD", "order_code" => $der['outCode'], "order_id" => $der['id'], "order_status" => $der['status'], 'holder_id' => $der['apply_id']];
-                ProcessOrder::AddProcess($this->post['token'], $ord);
+
 //                    $send =Db::name("order_out")->where(["wsm_code"=>$der['wsm_code'],'orderCode'=>$der['orderCode']])->sum("send_num");
 //                    $order['send_num']+= $der['send_num'];
 //                    $order['wsend_num']-=$der['send_num'] ;//($der['send_num'])?$der['wsend_num'] =="" ? $der['send']

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

@@ -19,10 +19,10 @@ class Suppler extends Base
         if ($name == "") {
             return error_show(1002, "参数name不能为空");
         }
-        $rename = Db::name('supplier')->where(['is_del' => 0, 'name' => $name])->find();
-        if (!empty($rename)) {
-            return error_show(1002, "公司名称已存在");
-        }
+//        $rename = Db::name('supplier')->field('id')->where(['is_del' => 0, 'name' => $name])->find();
+//        if (!empty($rename)) {
+//            return error_show(1002, "公司名称已存在");
+//        }
 
 
         $tr = makeNo("QS");

+ 2 - 0
app/admin/controller/Supplier.php

@@ -8,6 +8,8 @@ use think\facade\Db;
 use app\admin\model\ActionLog;
 class Supplier extends Base
 {
+    
+    //该控制器,除了comprehensiveList方法之外,其他对供应商维护的接口都没用,对供应商维护的接口在Suppler控制器中
 
 /*列表*/
 public function list(){

+ 2 - 2
app/admin/model/ProcessWait.php

@@ -2,8 +2,8 @@
 
 namespace app\admin\model;
 
-use app\abutment\model\SupplierRelationUser as SupplierRelationUserModel;
-use app\abutment\model\SupplierUser as SupplierUserModel;
+//use app\abutment\model\SupplierRelationUser as SupplierRelationUserModel;
+//use app\abutment\model\SupplierUser as SupplierUserModel;
 use think\facade\Db;
 use think\Model;
 

+ 5 - 5
app/admin/route/app.php

@@ -261,11 +261,11 @@ Route::rule('action_process_all', 'admin/ActionProcess/getAll');
 Route::rule("expresslist", "admin/Express/list");
 Route::rule("expressuse", "admin/Express/SetUse");
 Route::rule("express", "admin/Express/GetExpress");
-Route::rule('getSupplierExpress', 'admin/Express/getSupplierExpress');
-Route::rule('setSupplierExpress', 'admin/Express/setSupplierExpress');
-Route::rule('statusSupplierExpress', 'admin/Express/statusSupplierExpress');
-Route::rule('infoSupplierExpress', 'admin/Express/infoSupplierExpress');
-Route::rule('deleteSupplierExpress', 'admin/Express/deleteSupplierExpress');
+//Route::rule('getSupplierExpress', 'admin/Express/getSupplierExpress');
+//Route::rule('setSupplierExpress', 'admin/Express/setSupplierExpress');
+//Route::rule('statusSupplierExpress', 'admin/Express/statusSupplierExpress');
+//Route::rule('infoSupplierExpress', 'admin/Express/infoSupplierExpress');
+//Route::rule('deleteSupplierExpress', 'admin/Express/deleteSupplierExpress');
 
 Route::rule('catlist', 'admin/Cat/list');
 Route::rule('catplist', 'admin/Cat/plist');

+ 37 - 13
app/command/NowReportHandle.php

@@ -204,7 +204,7 @@ class NowReportHandle extends Command
     {
         $data = Db::name('good_stock')
             ->alias('wgs')
-            ->field("	wb.company '公司名称',
+            ->field("	'' as '公司名称',
 							wpo.bkcode as '备库单号',
 							wpo.cgdNo as '采购单号',
 							wp.apply_id as '申请部门',
@@ -223,24 +223,34 @@ class NowReportHandle extends Command
 							'' as '保质期时间',
 							'' as '库存天数',
 							wgb.creater as 'CGD.采购员',
-							ws.`name` as '供应商名称',
+							'' as '供应商名称',
 							wwi.`name` as '仓库名称',
-							wp.addtime as '备库创建时间' ")
+							wp.addtime as '备库创建时间' ,
+							wwi.companyNo,
+							wgb.supplierNo
+							")
             ->leftJoin('purchease_order wpo', 'wgs.spuCode = wpo.spuCode and order_source=0')
             ->leftJoin('purchease wp', 'wp.bk_code = wpo.bkcode')
             ->leftJoin('warehouse_info wwi', 'wwi.wsm_code = wgs.wsm_code')
-            ->leftJoin('business wb', 'wb.companyNo = wwi.companyNo')
+//            ->leftJoin('business wb', 'wb.companyNo = wwi.companyNo')
             ->leftJoin('good_basic wgb', 'wgb.spuCode = wgs.spuCode')
-            ->leftJoin('supplier ws', 'wgb.supplierNo = ws.`code`')
+//            ->leftJoin('supplier ws', 'wgb.supplierNo = ws.`code`')
             ->where('wgs.is_del', 0)
             ->where('wgb.is_stock', 1)
             ->whereBetween('wgs.updatetime', [$start_date, $end_date])
             ->order('wgs.updatetime', 'desc')
             ->cursor();
 
+        $userCommon = new User();
         $list = [];
         foreach ($data as $value) {
             $cat = made($value['一级分类']);
+
+            $names = $userCommon->handle('getCodeAndName',['code'=>[$value['companyNo'],$value['supplierNo']]]);
+
+            $value['公司名称'] = $names['data']['companyNo']??'';
+            $value['供应商名称'] = $names['data']['supplierNo']??'';
+
             $value['申请部门'] = get_company_name_by_uid(intval($value['申请部门']));
             $value['一级分类'] = isset($cat[0]['name'])?$cat[0]['name']:"";
             $value['可用库存金额'] = bcmul((string)$value['可用库存数量'] ?? '0', (string)$value['成本单价'] ?? '0', 2);
@@ -250,6 +260,10 @@ class NowReportHandle extends Command
                 $value['保质期时间'] = date('Y-m-d H:i:s', strtotime($value['备库创建时间']) + 31536000);//365天之后
                 $value['库存天数'] = bcdiv((string)(time() - strtotime($value['备库创建时间'])), (string)(24 * 3600));//365天之后
             }
+
+            unset($value['companyNo']);
+            unset($value['supplierNo']);
+
             yield $list[] = $value;
         }
 
@@ -265,17 +279,17 @@ class NowReportHandle extends Command
            ->leftJoin('sale_return wsr', 'wtd.thCode = wsr.returnCode and wtd.th_type=1')
             ->leftJoin('order_return wor', 'wtd.thCode = wor.returnCode and wtd.th_type in (2,3)')
             ->leftJoin('sale ws', 'ws.orderCode=wtd.orderCode and ws.is_del=0')
-            ->leftJoin('business wb', ' ws.supplierNo=wb.companyNo')
+//            ->leftJoin('business wb', ' ws.supplierNo=wb.companyNo')
             ->leftJoin('order_num won', 'won.orderCode=wtd.orderCode')
             ->leftJoin('purchease_order wpo', 'wpo.cgdNo=won.cgdNo and wpo.is_del=0')
-            ->leftJoin('supplier wps', 'wps.code=wpo.supplierNo')
+//            ->leftJoin('supplier wps', 'wps.code=wpo.supplierNo')
 //            ->leftJoin('customer_info wci', 'wci.companyNo =ws.customer_code')
             ->whereBetween('wtd.addtime', [$start_date, $end_date])
             ->field("	year(wtd.addtime) '年',
 	month(wtd.addtime) '月',
 	DAYOFMONTH(wtd.addtime) '日',
 	wtd.addtime '退货单创建时间',
-	wb.company '公司名称',
+	'' as '公司名称',
 	thCode '退货单号',
 	if(wtd.th_type=1,'售前','售后') '退货类型',
 	'已完成' as '流程进度',
@@ -313,10 +327,10 @@ class NowReportHandle extends Command
 	if(ws.is_stock=1,'是','否') '是否库存',
 	'' as '发货方式',
 	if(ifnull(wsr.is_th,wor.is_th)=0,'否','是') as '供应商是否同意退货',
-	if(wps.pay_type='0','现结',if(wps.pay_type='1','月结',if(wps.pay_type='2','双月结',wps.pay_type))) as '付款方式',
+	'' as '付款方式',
 	ws.customer_code
 	")->order("wtd.addtime")->cursor();
-
+//if(wps.pay_type='0','现结',if(wps.pay_type='1','月结',if(wps.pay_type='2','双月结',wps.pay_type))) as '付款方式',
         $userCommon = new User();
 
         $temp_customer = [];
@@ -712,19 +726,27 @@ class NowReportHandle extends Command
     {
         $data = Db::name('good_stock')
             ->alias('wgs')
-            ->field("	 wb.company '公司名称',wgs.spuCode '产品编号',cat_id '一级分类',good_name '产品名称',wait_in_stock '待入库存数量',wait_out_stock '待出库存数量',usable_stock '可用库存数量',wait_out_stock+usable_stock '当前库存','' as '保质期时间','' as '库存天数',wgb.creater as 'CGD.采购员','' as '备库单号',ws.`name` as '供应商名称',wwi.`name` as '仓库名称','' as '最近入库时间'")
+            ->field("	 '' '公司名称',wgs.spuCode '产品编号',cat_id '一级分类',good_name '产品名称',wait_in_stock '待入库存数量',wait_out_stock '待出库存数量',usable_stock '可用库存数量',wait_out_stock+usable_stock '当前库存','' as '保质期时间','' as '库存天数',wgb.creater as 'CGD.采购员','' as '备库单号','' as '供应商名称',wwi.`name` as '仓库名称','' as '最近入库时间',wwi.companyNo,wgb.supplierNo")
             ->leftJoin('warehouse_info wwi', 'wwi.wsm_code = wgs.wsm_code')
-            ->leftJoin('business wb', 'wb.companyNo = wwi.companyNo')
+//            ->leftJoin('business wb', 'wb.companyNo = wwi.companyNo')
             ->leftJoin('good_basic wgb', 'wgb.spuCode = wgs.spuCode')
-            ->leftJoin('supplier ws', 'wgb.supplierNo = ws.`code`')
+//            ->leftJoin('supplier ws', 'ws.`code` = wgb.supplierNo')
             ->where('wgs.is_del', 0)
             ->where('wgb.is_stock', 1)
             ->whereBetween('wgs.addtime', [$start_date, $end_date])
             ->order('wgs.addtime', 'desc')
             ->cursor();
 
+        $userCommon = new User();
+
         $list = [];
         foreach ($data as $value) {
+
+            $names = $userCommon->handle('getCodeAndName', ['code' => [$value['companyNo'], $value['supplierNo']]]);
+
+            $value['公司名称'] = $names['data'][$value['companyNo']] ?? '';
+            $value['供应商名称'] = $names['data'][$value['supplierNo']] ?? '';
+
             $cat = made($value['一级分类']);
             $value['一级分类'] = isset($cat[0]['name'])?$cat[0]['name']:"";
 
@@ -734,6 +756,8 @@ class NowReportHandle extends Command
                 $value['保质期时间'] = date('Y-m-d H:i:s', strtotime($value['最近入库时间']) + 31536000);//365天之后
                 $value['库存天数'] = bcdiv((string)(time() - strtotime($value['最近入库时间'])), (string)(24 * 3600));//365天之后
             }
+            unset($value['companyNo']);
+            unset($value['supplierNo']);
             yield $list[] = $value;
         }
 

+ 20 - 14
app/command/handleYzOrderData.php

@@ -2,6 +2,7 @@
 
 namespace app\command;
 
+use app\admin\common\User;
 use app\admin\model\ActionLog;
 use app\admin\model\GoodLog;
 use app\admin\model\GoodStockInfo;use app\admin\model\ProcessOrder;
@@ -268,10 +269,13 @@ class handleYzOrderData extends Command
                 $ri = isset($user['nickname']) ? $user['nickname'] : 'youzan';
 				if($rm==0)throw new Exception('平台转单未找到对应的平台账户');
 
-                $supplier_temp_info = Db::name('supplier')
-                    ->field('id,person,personid')
-                    ->where('code', $ct['supplierNo'])
-                    ->findOrEmpty();
+//                $supplier_temp_info = Db::name('supplier')
+//                    ->field('id,person,personid')
+//                    ->where('code', $ct['supplierNo'])
+//                    ->findOrEmpty();
+                $userCommon = new User();
+                $tmp = $userCommon->handle('sInfo',['code'=>$ct['supplierNo']]);
+                $supplier_temp_info = $tmp['data']??[];
 
                 $data = [
                     "orderCode" => $orderCode,
@@ -313,8 +317,8 @@ class handleYzOrderData extends Command
                     "addtime" => date("Y-m-d H:i:s"),
                     "updatetime" => date("Y-m-d H:i:s"),
                     'total_price' => bcmul((string)$sale_price, (string)$good_num, 2),
-                    'cgderid' => $supplier_temp_info['personid'],
-                    'cgder' => $supplier_temp_info['person'],//采购员(供应商负责人)
+                    'cgderid' => $supplier_temp_info['personid']??'',
+                    'cgder' => $supplier_temp_info['person']??'',//采购员(供应商负责人)
                     'good_createrid' => $goodinfo['createrid'],
                     'good_creater' => $goodinfo['creater'],//商品创建人
                 ];
@@ -369,8 +373,8 @@ class handleYzOrderData extends Command
                             "good_type" => $goodtype,
                             "order_type" => $order_type,
                             "order_source" => $order_source,
-                            "createrid" =>$supplier_temp_info['personid'],
-                             "creater" =>$supplier_temp_info['person'],
+                            "createrid" =>$supplier_temp_info['personid']??'',
+                             "creater" =>$supplier_temp_info['person']??'',
                             'send_way' => 2,
                             'gold_price' => $ct['cgd_gold_price'],
                             'good_createrid' => $goodinfo['createrid'],
@@ -537,10 +541,12 @@ class handleYzOrderData extends Command
                                         ]);
                                     } else {
 //                                        //非库存品推给供应商负责人
-                                        $supp = Db::name('supplier')
-                                            ->field('person,personid')
-                                            ->where('code', $ct['supplierNo'])
-                                            ->findOrEmpty();
+//                                        $supp = Db::name('supplier')
+//                                            ->field('person,personid')
+//                                            ->where('code', $ct['supplierNo'])
+//                                            ->findOrEmpty();
+                                        $supp = $userCommon->handle('sInfo',['code'=>$ct['supplierNo']]);
+
                                         ProcessOrder::AddProcess(['id' => $rm, 'nickname' => $ri], [
                                             "order_type" => 'CKD',
                                             "order_code" => $outCode,//出库单号
@@ -548,8 +554,8 @@ class handleYzOrderData extends Command
                                             "order_status" => $out['status'],
                                             "before_status" => 0,
                                             'holder_id' => $data['apply_id'],
-                                            'wait_id' => $supp['personid'],
-                                            'wait_name' => $supp['person'],
+                                            'wait_id' => $supp['data']['personid'],
+                                            'wait_name' => $supp['data']['person'],
                                         ]);
                                     }
 

+ 5 - 4
app/common.php

@@ -1260,10 +1260,11 @@ if (!function_exists('get_encryption_password')) {
 if (!function_exists('checkHasAccountBySupplierNos')) {
     function checkHasAccountBySupplierNos(array $supplierNo = []): array
     {
-        return \app\abutment\model\SupplierRelationUser::where('is_del', \app\abutment\model\SupplierUser::$is_del_normal)
-            ->whereIn('supplierNo', $supplierNo)
-            ->where('status', \app\abutment\model\SupplierUser::$status_normal)
-            ->column('uid','supplierNo');
+        return [];
+//        return \app\abutment\model\SupplierRelationUser::where('is_del', \app\abutment\model\SupplierUser::$is_del_normal)
+//            ->whereIn('supplierNo', $supplierNo)
+//            ->where('status', \app\abutment\model\SupplierUser::$status_normal)
+//            ->column('uid','supplierNo');
 
     }
 }

+ 5 - 0
app/youzan/logic/Goodup.php

@@ -4,6 +4,7 @@ namespace app\youzan\logic;
 
 use app\admin\model\ActionLog;
 use app\admin\model\ProcessOrder;
+use app\txx\model\YzGood;
 use app\youzan\model\PlatformYouzan;
 use think\Exception;
 use think\facade\Cache;
@@ -619,6 +620,10 @@ class Goodup
         $data['purchase_id'] = $temp_basic_info['purchase_id'];
         $data['purchase'] = $temp_basic_info['purchase'];
 
+        //补充商品详情链接字段
+        $data['detail_url'] = YzGood::where(['is_del' => 0, 'item_no' => $data['skuCode']])
+            ->value('detail_url', '');
+
         return app_show(0, "获取成功", $data);
     }