Browse Source

发货工单相关接口,仓库数据表新增字段(供应商名称、业务公司名称)的相关维护

wufeng 2 years ago
parent
commit
19dbf290b5

+ 6 - 6
app/admin/controller/Good.php

@@ -760,11 +760,11 @@ class Good extends Base
 //                    ->leftJoin("business bus", "bus.companyNo=a.companyNo")
 //                    ->leftJoin("supplier b","a.supplierNo=b.code")
             ->where(['a.wsm_code'=>array_column($list,'wsm_code'),"a.is_del"=>0])
-            ->column("a.name as wsm_name,wsm_code,a.supplierNo,a.companyNo",'a.wsm_code');
+            ->column("a.name as wsm_name,wsm_code,a.supplierNo,a.supplierName,a.companyNo,a.companyName",'a.wsm_code');
 //            ->find();
 
-        $userCommon = new \app\admin\common\User();
-        $names = $userCommon->handle('getCodeAndName', ['code'=>array_unique(array_merge(array_column($warehouse_info, 'supplierNo'), array_column($warehouse_info, 'companyNo')))]);
+//        $userCommon = new \app\admin\common\User();
+//        $names = $userCommon->handle('getCodeAndName', ['code'=>array_unique(array_merge(array_column($warehouse_info, 'supplierNo'), array_column($warehouse_info, 'companyNo')))]);
 
 
         $data=[];
@@ -787,8 +787,8 @@ class Good extends Base
 //                    ->toArray();
 
 //                $names = $userCommon->handle('getCodeAndName', [$wsm['supplierNo'], $wsm['companyNo']]);
-                $warehouse_info[$value['wsm_code']]['supplierName'] = $names['data'][$warehouse_info[$value['wsm_code']]['supplierNo']] ?? '';
-                $warehouse_info[$value['wsm_code']]['company'] = $names['data'][$warehouse_info[$value['wsm_code']]['companyNo']] ?? '';
+//                $warehouse_info[$value['wsm_code']]['supplierName'] = $names['data'][$warehouse_info[$value['wsm_code']]['supplierNo']] ?? '';
+//                $warehouse_info[$value['wsm_code']]['company'] = $names['data'][$warehouse_info[$value['wsm_code']]['companyNo']] ?? '';
 
                 //商品单位和品牌
 //                $good_unit_s = Db::name("unit")->whereIn('id', array_column($good, 'good_unit'))->where('is_del', 0)->column('unit', 'id');
@@ -826,7 +826,7 @@ class Good extends Base
             $temp['supplier_code']=isset($warehouse_info[$value['wsm_code']]['supplierNo'])?$warehouse_info[$value['wsm_code']]['supplierNo']:"";
             $temp['supplier_name']=isset($warehouse_info[$value['wsm_code']]['supplierName'])?$warehouse_info[$value['wsm_code']]['supplierName']:"";
             $temp['company_no']=isset($warehouse_info[$value['wsm_code']]['companyNo'])?$warehouse_info[$value['wsm_code']]['companyNo']:"";
-            $temp['company_name']=isset($warehouse_info[$value['wsm_code']]['company'])?$warehouse_info[$value['wsm_code']]['company']:"";
+            $temp['company_name']=isset($warehouse_info[$value['wsm_code']]['companyName'])?$warehouse_info[$value['wsm_code']]['companyName']:"";
             $temp['usable_stock'] = $value['usable_stock'];
             $temp['wait_in_stock'] = $value['wait_in_stock'];
             $temp['wait_out_stock'] = $value['wait_out_stock'];

+ 385 - 0
app/admin/controller/OrderOutChild.php

@@ -0,0 +1,385 @@
+<?php
+
+namespace app\admin\controller;
+
+//发货工单(从属于发货单)
+use app\admin\model\GoodStockInfo;
+use think\Exception;
+use think\facade\Db;
+use think\facade\Validate;
+
+class OrderOutChild extends Base
+{
+
+    //分单时可用仓库列表
+    public function getWsmList(){
+        $outCode = $this->request->post('outCode','','trim');
+
+        if($outCode=='') return json_show(1004,'发货单号不能为空');
+
+        $out=Db::name('order_out')
+            ->alias('a')
+            ->field('a.id,a.outCode,a.send_status,b.good_code')
+            ->leftJoin('sale b','b.orderCode=a.orderCode')
+            ->where(['a.is_del'=>0,'a.outCode'=>$outCode])
+            ->findOrEmpty();
+        if(empty($out)) return json_show(1004,'该发货单不存在');
+        if($out['send_status'] != 0) return json_show(1004,'该发货单状态错误');
+
+        $list = Db::name("good_stock")
+            ->alias("a")
+            ->leftJoin("warehouse_info b","a.wsm_code=b.wsm_code")
+            ->field("a.id,a.wsm_code,b.name wsm_name,b.companyNo,b.companyName,b.supplierNo,b.supplierName,b.contactor_name,a.usable_stock")
+            ->where(["spuCode"=>$out['good_code'],"a.is_del"=>0])
+            ->order(['id'=>'asc'])
+            ->select()
+            ->toArray();
+
+        return json_show(0,'获取列表成功',$list);
+    }
+
+    //发货工单列表
+    public function list()
+    {
+        $param = $this->request->only([
+            'page' => 1,
+            'size' => 10,
+            'start' => '',
+            'end' => '',
+            'orderCode' => '',
+            'customer_code' => '',
+            'status' => '',
+            'outChildCode' => '',
+            'companyNo' => '',
+            'spuCode' => '',
+            'outCode' => '',
+            'order_source' => '',
+            'wsm_code' => '',
+            'supplierNo' => '',
+            'skuCode' => '',
+            'apply_id' => '',
+            'apply_name' => '',
+            'order_type' => '',
+        ], 'post', 'trim');
+
+        $where = [['a.is_del', '=', 0]];
+        if ($param['start'] != '') $where[] = ['a.addtime', '>=', $param['start']];
+        if ($param['end'] != '') $where[] = ['a.addtime', '<', $param['end'] . ' 23:59:59'];
+        if ($param['orderCode'] != '') $where[] = ['a.orderCode', 'like', '%' . $param['orderCode'] . '%'];
+        if ($param['customer_code'] != '') $where[] = ['a.customer_code', 'like', '%' . $param['customer_code'] . '%'];
+        if ($param['status'] !== '') $where[] = ['a.status', '=', $param['status']];
+        if ($param['outChildCode'] != '') $where[] = ['a.outChildCode', 'like', '%' . $param['outChildCode'] . '%'];
+        if ($param['companyNo'] != '') $where[] = ['a.companyNo', 'like', '%' . $param['companyNo'] . '%'];
+        if ($param['spuCode'] != '') $where[] = ['a.spuCode', 'like', '%' . $param['spuCode'] . '%'];
+        if ($param['outCode'] != '') $where[] = ['a.outCode', 'like', '%' . $param['outCode'] . '%'];
+        if ($param['order_source'] != '') $where[] = ['a.order_source', '=', $param['order_source']];
+        if ($param['wsm_code'] != '') $where[] = ['a.wsm_code', 'like', '%' . $param['wsm_code'] . '%'];
+        if ($param['supplierNo'] != '') $where[] = ['a.supplierNo', 'like', '%' . $param['supplierNo'] . '%'];
+        if ($param['skuCode'] != '') $where[] = ['a.skuCode', 'like', '%' . $param['skuCode'] . '%'];
+        if ($param['apply_id'] !== '') $where[] = ['a.apply_id', '=', $param['apply_id']];
+        if ($param['apply_name'] != '') $where[] = ['a.apply_name', 'like', '%' . $param['apply_name'] . '%'];
+        if ($param['order_type'] != '') $where[] = ['a.order_type', '=', $param['order_type']];
+
+        $count = Db::name('order_out_child')
+            ->alias('a')
+            ->where($where)
+            ->count('a.id');
+
+        $list = Db::name('order_out_child')
+            ->alias('a')
+            ->order(['a.addtime' => 'desc', 'a.id' => 'desc'])
+            ->page($param['page'], $param['size'])
+            ->where($where)
+            ->select()
+            ->toArray();
+
+        $all_apply_id = array_column($list, 'apply_id');
+        $company_name = get_company_name_by_uid($all_apply_id);
+
+        $data = [];
+        foreach ($list as $value) {
+
+            $value['company_name'] = $company_name[$value['apply_id']] ?? '';
+
+            $data[] = $value;
+        }
+
+        return json_show(0, '获取成功', ['count' => $count, 'list' => $data]);
+    }
+
+    //导出
+    public function export()
+    {
+        $param = $this->request->only([
+            'start' => '',
+            'end' => '',
+            'orderCode' => '',
+            'customer_code' => '',
+            'status' => '',
+            'outChildCode' => '',
+            'companyNo' => '',
+            'spuCode' => '',
+            'outCode' => '',
+            'order_source' => '',
+            'wsm_code' => '',
+            'supplierNo' => '',
+            'skuCode' => '',
+            'apply_id' => '',
+            'apply_name' => '',
+            'order_type' => '',
+        ], 'post', 'trim');
+
+        $where = [['a.id', '=', 0]];
+        if ($param['start'] != '') $where[] = ['a.addtime', '>=', $param['start']];
+        if ($param['end'] != '') $where[] = ['a.addtime', '<', $param['end'] . ' 23:59:59'];
+        if ($param['orderCode'] != '') $where[] = ['a.orderCode', 'like', '%' . $param['orderCode'] . '%'];
+        if ($param['customer_code'] != '') $where[] = ['a.customer_code', 'like', '%' . $param['customer_code'] . '%'];
+        if ($param['status'] !== '') $where[] = ['a.status', '=', $param['status']];
+        if ($param['outChildCode'] != '') $where[] = ['a.outChildCode', 'like', '%' . $param['outChildCode'] . '%'];
+        if ($param['companyNo'] != '') $where[] = ['a.companyNo', 'like', '%' . $param['companyNo'] . '%'];
+        if ($param['spuCode'] != '') $where[] = ['a.spuCode', 'like', '%' . $param['spuCode'] . '%'];
+        if ($param['outCode'] != '') $where[] = ['a.outCode', 'like', '%' . $param['outCode'] . '%'];
+        if ($param['order_source'] != '') $where[] = ['a.order_source', '=', $param['order_source']];
+        if ($param['wsm_code'] != '') $where[] = ['a.wsm_code', 'like', '%' . $param['wsm_code'] . '%'];
+        if ($param['supplierNo'] != '') $where[] = ['a.supplierNo', 'like', '%' . $param['supplierNo'] . '%'];
+        if ($param['skuCode'] != '') $where[] = ['a.skuCode', 'like', '%' . $param['skuCode'] . '%'];
+        if ($param['apply_id'] !== '') $where[] = ['a.apply_id', '=', $param['apply_id']];
+        if ($param['apply_name'] != '') $where[] = ['a.apply_name', 'like', '%' . $param['apply_name'] . '%'];
+        if ($param['order_type'] != '') $where[] = ['a.order_type', '=', $param['order_type']];
+
+        $list = Db::name('order_out_child')
+            ->alias('a')
+            ->field('a.outChildCode 发货工单号,a.orderCode 确认单编号,a.outCode 发货申请单号,a.companyNo 业务公司编号,a.companyName 业务公司名称,a.customer_code 客户编号,a.customer_name 客户名称,a.supplierNo 供应商编号,a.supplierName 供应商名称,a.spuCode 商品成本编号,a.skuCode 商品上线编号,a.good_name 商品名称,case a.order_source when 1 then "直接下单" when 2 then "咨询" when 3 then "项目" when 4 then "平台" when 5 then "有赞" when 6 then "售后补换货" when 7 then "报备转单" when 8 then "支付渠道" end "订单来源",case order_type when 1 then "备库" when 2 then "非库存" when 3 then "咨询商品" when 4 then "报备商品" end "商品类型",a.num 数量,case a.status when 1 then "待发货" when 2 then "发货完成" when 3 then "已收货" when 4 then "已全部退货" end "分单状态",a.addtime 下单时间,a.apply_id,a.apply_name 申请人名称')
+            ->order(['a.addtime' => 'desc', 'a.id' => 'desc'])
+            ->select()
+            ->toArray();
+
+//        $all_apply_id = array_column($list, 'apply_id');
+//        $company_name = get_company_name_by_uid($all_apply_id);
+
+//        $data = [];
+//        foreach ($list as &$value) {
+//
+//            $value['company_name'] = $company_name[$value['apply_id']] ?? '';
+//            unset($value['apply_id']);
+//
+
+//        }
+
+        if (empty($list)) $list[] = ['没有相关可导出的数据'];
+        excelSave('发货工单' . date('YmdHis'), array_keys($list[0]), $list);
+//        return json_show(0, '获取成功', $data);
+    }
+
+    //分单
+    public function add()
+    {
+        $param = $this->request->only(['outCode', 'list'], 'post', 'trim');
+
+        $val = Validate::rule([
+            'outCode|发货单号' => 'require',
+            'list' => 'require|array|max:100',
+        ]);
+
+
+//        $list=[
+//            ['wsm_code'=>'','num'=>100],
+//            ['wsm_code'=>'','num'=>100],
+//        ];
+
+        if ($val->check($param) == false) return json_show(1004, $val->getError());
+
+        $val_child = Validate::rule([
+            'wsm_code|仓库编码' => 'require',
+            'num|发货数量' => 'require|number|gt:0|elt:999999999999',
+        ]);
+
+        $info = Db::name('order_out')
+            ->alias('a')
+            ->field('a.*,b.supplierNo companyNo,b.supplierName companyName,b.customer_code,b.customerName,b.supNo supplierNo,b.supName supplierName,b.good_code,b.skuCode,b.good_name,b.order_source,b.good_num,b.wsend_num')
+            ->leftJoin('sale b', 'b.orderCode=a.orderCode AND b.is_del=0')
+            ->where(['a.is_del' => 0, 'a.outCode' => $param['outCode'], 'a.send_status' => 0])
+            ->findOrEmpty();
+
+        if (empty($info)) return json_show(1004, '该发货单不存在或状态有误');
+        if ($info['wsend_num'] < $info['send_num']) return json_show(1004,"订单待发货数量不足");
+        if ($info['wsend_num'] < array_sum($param['list'],'num')) return json_show(1004,"仓库总发货数与发货单待发货数不同");
+
+        //所有仓库信息
+        $wsm = Db::name('warehouse_info')
+            ->where(['is_del' => 0, 'wsm_code' => array_column($param['list'], 'wsm_code')])
+            ->column('id', 'wsm_code');
+
+        Db::startTrans();
+        try {
+
+            $date = date('Y-m-d H:i:s');
+
+            $insert = [];
+
+            $i = 0;
+            foreach ($param['list'] as $value) {
+
+                if ($val_child->check($value) == false) throw new Exception($val_child->getError());
+
+                //改变编码规则,将原编码后两位换成序列号
+                //str_pad字符串填充
+                $outChildCode = substr(makeNo('TCD'), 0, -2) . str_pad($i++, 2, '0', STR_PAD_LEFT);
+
+                $insert[] = [
+                    'outChildCode' => $outChildCode,
+                    'orderCode' => $info['orderCode'],
+                    'outCode' => $param['outCode'],
+                    'companyNo' => $info['companyNo'],
+                    'companyName' => $info['companyName'],
+                    'customer_code' => $info['customer_code'],
+                    'customer_name' => $info['customerName'],
+                    'supplierNo' => $info['supplierNo'],
+                    'supplierName' => $info['supplierName'],
+                    'spuCode' => $info['good_code'],
+                    'skuCode' => $info['skuCode'],
+                    'good_name' => $info['good_name'],
+                    'order_type' => $info['order_type'],
+                    'order_source' => $info['order_source'],
+                    'num' => $value['num'],
+                    'wsm_code' => $value['wsm_code'],
+                    'apply_id' => $info['apply_id'],
+                    'apply_name' => $info['apply_name'],
+                    'addrid' => $info['addrid'],
+                    'status' => 1,
+                    'is_del' => 0,
+                    'addtime' => $date,
+                    'updatetime' => $date,
+                ];
+
+                if (!isset($wsm[$value['wsm_code']])) throw new Exception($value['wsm_code'] . '该仓库不存在');
+
+                //维护bn号
+                GoodStockInfo::ChildAddBn($outChildCode, $wsm[$value['wsm_code']]);
+            }
+
+            Db::name('order_out_child')->insertAll($insert);
+
+            Db::name('order_out')
+                ->where(['id' => $info['id'], 'is_del' => 0, 'outCode' => $param['outCode'], 'send_status' => 0])
+                ->update(['send_status' => 1, 'status' => 1]);
+
+            Db::commit();
+            return json_show(0, '分单完成');
+        } catch (Exception $exception) {
+            Db::rollback();
+            return json_show(1004, '分单失败,' . $exception->getMessage() . '|' . $exception->getFile() . '|' . $exception->getLine());
+        }
+
+    }
+
+    //详情
+    public function info()
+    {
+
+        $outChildCode = $this->request->post('outChildCode','','trim');
+        if($outChildCode=='') return json_show(1004,'发货工单号不能为空');
+
+        $info = Db::name('order_out_child')
+            ->where(['is_del'=>0,'outChildCode'=>$outChildCode])
+            ->findOrEmpty();
+
+        return json_show(0,'获取详情成功',$info);
+
+    }
+
+    //发货
+    public function send()
+    {
+
+        $param = $this->request->post('list/a','','trim');
+
+        $temp=Db::name('order_out_child')
+            ->field('id,outChildCode')
+            ->where(['is_del'=>0,'outChildCode'=>array_column($param,'outChildCode')])
+            ->where('status','<>',1)
+            ->findOrEmpty();
+        if(!empty($temp)) return json_show(1004,$temp['outChildCode'].'状态错误,不能发货');
+
+        $child = Db::name('order_out_child')
+            ->where(['is_del' => 0, 'status' => 1, 'outChildCode' => array_column($param, 'outChildCode')])
+            ->column('id,orderCode,outCode,total_num,num', 'outChildCode');
+
+        $order_out  = Db::name('order_out')
+            ->where(['is_del'=>0,'outCode'=>array_unique(array_column($child,'outCode'))])
+            ->column('id,send_num,send_status,0 already_send_num','outCode');
+
+        $sale  = Db::name('sale')
+            ->where(['is_del'=>0,'orderCode'=>array_unique(array_column($child,'orderCode'))])
+            ->column('id,good_num,send_num,wsend_num','orderCode');
+
+        $val=Validate::rule([
+            'outChildCode|发货工单号'=>'require|max:255',
+            'post_name|物流公司'=>'require|max:255',
+            'post_code|物流单号'=>'require|alphaDash|max:255',
+            'post_fee|物流费用'=>'require|egt:0|max:99999999.99'
+        ]);
+
+        Db::startTrans();
+        try {
+
+            $date = date('Y-m-d H:i:s');
+
+            foreach ($param as $value){
+
+                if($val->check($value)==false) throw new Exception($val->getError());
+
+                //工单
+                if(!isset($child[$value['outChildCode']])) throw new Exception($value['outChildCode'].'工单不存在或状态不允许发货');
+
+                Db::name('order_out_child')
+                    ->where(['id' => $child[$value['outChildCode']]['id'], 'is_del' => 0, 'status' => 1])
+                    ->update([
+                        'post_name' => $value['post_name'],
+                        'post_code' => $value['post_code'],
+                        'post_fee' => $value['post_fee'],
+                        'status' => 2,
+                        'sendtime' => $date,
+                        'updatetime' => $date,
+                    ]);
+
+                $order_out[$child[$value['outChildCode']]['outCode']]['already_send_num'] += $child[$value['outChildCode']]['num'];
+
+                //发货单
+                //send_status 2部分发货,3全部发货
+                Db::name('order_out')
+                    ->where(['id'=>$order_out[$child[$value['outChildCode']]['outCode']]['id']])
+                    ->update(['send_status'=>$order_out[$child[$value['outChildCode']]['outCode']]['already_send_num']>=$order_out[$child[$value['outChildCode']]['outCode']]['send_num']?3:2,'updatetime'=>$date]);
+
+                //销售单
+                Db::name('sale')
+                    ->where(['is_del'=>0,'id'=>$sale[$child[$value['outChildCode']]['orderCode']]['id']])
+                    ->update([
+                        'send_num'=>++$sale[$child[$value['outChildCode']]['orderCode']]['send_num'],
+                        'wsend_num'=>--$sale[$child[$value['outChildCode']]['orderCode']]['wsend_num'],
+                        'send_status'=>$sale[$child[$value['outChildCode']]['orderCode']]['send_num']>=$sale[$child[$value['outChildCode']]['orderCode']]['good_num']?3:2,
+                    ]);
+
+                //库存
+                Db::name('good_stock')
+                    ->where(['is_del'=>0,'spuCode'=>'','wsm_code'=>''])
+                    ->dec('wait_out_stock',$child[$value['outChildCode']]['num'])
+                    ->update(['updatetime'=>$date]);
+
+            }
+
+            Db::commit();
+
+            return json_show(0,'操作完成');
+
+        }catch (Exception $exception){
+
+            Db::rollback();
+
+            return json_show(1004, $exception->getMessage() . '|' . $exception->getFile() . '|' . $exception->getLine());
+        }
+
+    }
+
+
+}

+ 28 - 6
app/admin/controller/Purchin.php

@@ -416,13 +416,20 @@ class Purchin extends Base
                     $good_data[]=['good_log_code'=>$wsm_in_code,"stock_id"=>$stockid,"type"=>2,'stock'=>$send_num,"stock_name"=>"wait_in_stock"];
                     if($upd){
                     	GoodLog::LogAdd(['id'=>$this->uid,'nickname'=>$this->uname],$good_data,'RKD');
+
+                        $bnin=GoodStockInfo::AddBn($stockid,$bn_code,$send_num,$cgdinfo['good_price']);
+                        if($bnin==false){
+                            Db::rollback();
+                            return error_show(1004,"库存bn数据新增失败");
+                        }
+
                         //todo:: 新增bn编号库存数据修改
                         if($cgdinfo['order_type']==1){
-                        	$bnin=GoodStockInfo::AddBn($stockid,$bn_code,$send_num,$cgdinfo['good_price']);
-	                        if($bnin==false){
-	                            Db::rollback();
-	                            return error_show(1004,"库存bn数据新增失败");
-	                        }
+//                        	$bnin=GoodStockInfo::AddBn($stockid,$bn_code,$send_num,$cgdinfo['good_price']);
+//	                        if($bnin==false){
+//	                            Db::rollback();
+//	                            return error_show(1004,"库存bn数据新增失败");
+//	                        }
                             $bk =Db::name("order_bk")->where(['cgdNo'=>$cgdinfo['cgdNo']])->find();
                             if($bk==false){
                                 $bk=[
@@ -450,6 +457,13 @@ class Purchin extends Base
                                 Db::rollback();
                                 return error_show(1004,"采购单数量更新失败");
                             }
+
+                            //商品表里的'可用总库存数'增加
+                            Db::name('good')
+                                ->where(['is_del' => 0, 'spuCode' => $cgdinfo['spuCode']])
+                                ->inc('usable_stock', $send_num)
+                                ->update(['updatetime' => date('Y-m-d H:i:s')]);
+                            
                         }
                         if($cgdinfo['send_status']==3 && $cgdinfo['order_type']!=1){
                             $send=Db::name("order_send")->where(["cgdNo"=>$cgdNo,"status"=>1])->column("outCode");
@@ -463,6 +477,9 @@ class Purchin extends Base
                                         return error_show(1004,"出库单出库失败");
                                     }else{
 
+                                        //尝试拆单
+                                        \app\admin\model\OrderOutChild::makeChild($send);
+
                                         //查询是否有非库存品订单
 //                                        $is_stock = Db::name('sale')
 //                                            ->where([
@@ -548,11 +565,16 @@ class Purchin extends Base
                                     }
                                 }
                             }
+
+                            //商品表里的'可用总库存数'增加
+                            Db::name('good_zixun')
+                                ->where(['is_del' => 0, 'spuCode' => $cgdinfo['spuCode']])
+                                ->inc('usable_stock', $send_num)
+                                ->update(['updatetime' => date('Y-m-d H:i:s')]);
                         }
 
                         ActionLog::logAdd(['id'=>$this->uid,'nickname'=>$this->uname],$order,"CGD", $cgdinfo['status'],$cgdinfo);
 
-
 //                        $personid = Db::name('supplier')
 //                            ->where('is_del',0)
 //                            ->where('code',$cgdinfo['supplierNo'])

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

@@ -467,6 +467,7 @@ class Sale extends Base
                 "name" => $data['supplierName'],
                 "wsm_type" => 2,
                 "supplierNo" => $data['supplierNo'],
+                "supplierName" => $data['supplierName'],
                 "addr" => "",
                 "addrs_code" => "",
                 "contactor" => $data['createrid'] ,
@@ -474,6 +475,7 @@ class Sale extends Base
                 "mobile" => "",
                 "position" => "",
                 "companyNo" => $data['companyNo'],
+                "companyName" => $data['companyName'],
                 "status" => 1,
                 "is_del" => 0,
                 "addtime" => date("Y-m-d H:i:s"),

+ 20 - 14
app/admin/controller/WareHouse.php

@@ -15,6 +15,7 @@ class WareHouse extends Base
     {
         $post = $this->request->only([
             'companyNo',
+            'supplierNo',
             'name',
             'addr_code' => '',
             'addr',
@@ -31,6 +32,7 @@ class WareHouse extends Base
 
         $val = Validate::rule([
             'companyNo|业务公司编码' => 'require',
+            'supplierNo|供应商编码' => 'require',
             'name|仓库名称' => 'require',
             'wsmtype|仓库类型' => 'require',
             'addr|仓库地址' => 'require',
@@ -95,8 +97,10 @@ class WareHouse extends Base
 //        }
 
         $userCommon = new \app\admin\common\User();
-        $tmp = $userCommon->handle('getCodeAndName', ['code' => $post['companyNo']]);
+        $tmp = $userCommon->handle('getCodeAndName', ['code' => [$post['companyNo'], $post['supplierNo']]]);
         if (!isset($tmp['data'][$post['companyNo']])) return json_show(1004, '业务企业未找到');
+        if (!isset($tmp['data'][$post['supplierNo']])) return json_show(1004, '供应商未找到');
+        if ($tmp['data'][$post['supplierNo']] == $post['name']) return json_show(1004, '仓库名不可以与供应商名称相同');
 
         $user = $userCommon->handle('userinfo', ['id' => $post['contactor_id']]);
 
@@ -114,9 +118,11 @@ class WareHouse extends Base
                 'wsm_code' => $wsm_code,
                 'name' => $post['name'],
                 'wsm_type' => $post['wsmtype'],
-                'supplierNo' => '',
+                'supplierNo' => $post['supplierNo'],
+                'supplierName' => $tmp['data'][$post['supplierNo']],
                 'addr' => $post['addr'],
                 'companyNo' => $post['companyNo'],
+                'companyName' => $tmp['data'][$post['companyNo']]??'',
                 'contactor' => $post['contactor_id'],
                 'contactor_name' => $user['data']['nickname'],
                 'mobile' => $post['mobile'],
@@ -282,22 +288,22 @@ class WareHouse extends Base
             ->findOrEmpty();
         if(empty($warse))  return error_show(1004,"未找到数据");
 
-        $userCommon = new \app\admin\common\User();
-        $tmp = $userCommon->handle('getCodeAndName',['code'=>[$warse['supplierNo'],$warse['companyNo']]]);
+//        $userCommon = new \app\admin\common\User();
+//        $tmp = $userCommon->handle('getCodeAndName',['code'=>[$warse['supplierNo'],$warse['companyNo']]]);
 //        if($warse['supplierNo']!=""){
 //            $supplierinfo = Db::name("supplier")->where(["code"=>$warse['supplierNo']])->find();
 //            $warse['supplier_name'] = isset($supplierinfo['name']) ? $supplierinfo['name'] :"";
 //        }else{
 //            $warse['supplier_name']="";
 //        }
-        $warse['supplier_name'] = $tmp['data'][$warse['supplierNo']]??'';
+        $warse['supplier_name'] = $warse['supplierName'];//$tmp['data'][$warse['supplierNo']]??'';
 //        if($warse['companyNo']!=""){
 //            $company = Db::name("business")->where(["companyNo"=>$warse['companyNo']])->find();
 //            $warse['company_name'] = isset($company['company']) ? $company['company'] :"";
 //        }else{
 //            $warse['company_name']="";
 //        }
-        $warse['company_name'] = $tmp['data'][$warse['companyNo']]??'';
+        $warse['company_name'] = $warse['companyName'];//$tmp['data'][$warse['companyNo']]??'';
 
         $warse['addrs_code'] = isset($warse['addrs_code'])&&$warse['addrs_code']!="" ? json_decode($warse['addrs_code'],true):"";
         if($warse['wsm_type']!=""){
@@ -327,8 +333,7 @@ class WareHouse extends Base
         if($name==''){
             return error_show(1004,'参数name 不能为空');
         }
-        $isT = Db::name('warehouse_info')->where([['name',"=",$name],["is_del","=",0],["companyNo","=", $companyNo],["id","<>",
-        $id]])->find();
+        $isT = Db::name('warehouse_info')->where([['name',"=",$name],["is_del","=",0],["companyNo","=", $companyNo],["id","<>", $id]])->find();
         if(!empty($isT)){
             return error_show(1004,'仓库名称已存在');
         }
@@ -380,6 +385,8 @@ class WareHouse extends Base
                 'contactor_name'=>$user['data']['nickname']??'',
                 'mobile'=>$mobile,
                 'position'=>$position,
+                'companyNo' => $companyNo,
+                'companyName' => $tmp['data']['name'],
                 'updaterid'=>$this->uid,
                 'updater'=>$this->uname,
                 "addrs_code"=>json_encode($addrs_code),
@@ -400,8 +407,7 @@ class WareHouse extends Base
              $addri = Db::name("warehouse_addr")->where(["wsm_code"=>$warse['wsm_code'],"is_del"=>0])->update
              ($addrinfo);
                 if($addri){
-                    $sf = ["order_code"=>$warse['wsm_code'],"status"=>$warse['status'],"action_remark"=>'',
-                        "action_type"=>"edit"];
+                    $sf = ["order_code"=>$warse['wsm_code'],"status"=>$warse['status'],"action_remark"=>'',"action_type"=>"edit"];
                     ActionLog::logAdd(['id'=>$this->uid,'nickname'=>$this->uname],$sf,"warehouse",1,$data);
                     Db::commit();
                     return app_show(0,'仓库更新成功');
@@ -485,9 +491,9 @@ class WareHouse extends Base
             ->select()
             ->toArray();
 
-        $all_companyNo = array_column($list, 'companyNo');
-        $userCommon = new \app\admin\common\User();
-        $tmp = $userCommon->handle('getCodeAndName', ['code' => $all_companyNo]);
+//        $all_companyNo = array_column($list, 'companyNo');
+//        $userCommon = new \app\admin\common\User();
+//        $tmp = $userCommon->handle('getCodeAndName', ['code' => $all_companyNo]);
 
         $data=[];
         foreach ($list as $value){
@@ -509,7 +515,7 @@ class WareHouse extends Base
 //            $temp['supplier_name'] = isset($supplierinfo['name']) ? $supplierinfo['name'] :"";
             $temp['companyNo'] = $value['companyNo'];
 
-            $value['company_name'] = $tmp[$value['companyNo']] ?? '';
+            $value['company_name'] = $value['companyName'];//$tmp[$value['companyNo']] ?? '';
 //            if($value['companyNo']!=""){
 //                $company = Db::name("business")->where(["companyNo"=>$value['companyNo']])->find();
 //                $temp['company_name'] = isset($company['company']) ? $company['company'] :"";

+ 0 - 1
app/admin/model/OrderOutChild.php

@@ -45,7 +45,6 @@ class OrderOutChild extends Model
 			"good_name"=>$sale['good_name'],
 			"order_type"=>$sale['order_type'],
 			"order_source"=>$sale['order_source'],
-			"total_num"=>$num,
 			"num"=>$num,
 			"wsm_code"=>$wsmlist['wsm_code'],
 			"apply_id"=>$outinfo['apply_id'],

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

@@ -714,4 +714,12 @@ route::rule('supplierDiffList', 'admin/SupplierClient/difflist');//公差单列
 route::rule('supplierOutList', 'admin/SupplierClient/orderOut');//出库单列表
 route::rule('supplierAfterList', 'admin/SupplierClient/afterList'); //售后申请单列表
 route::rule('supplierBackList', 'admin/SupplierClient/backlist');//售后退货单列表
-route::rule('supplierReorderList', 'admin/SupplierClient/reorderlist');//未发货退货单列表
+route::rule('supplierReorderList', 'admin/SupplierClient/reorderlist');//未发货退货单列表
+
+//发货工单
+route::rule('child_wsm_list', 'admin/OrderOutChild/getWsmList');//可分单的仓库列表
+route::rule('child_list', 'admin/OrderOutChild/list');//发货工单列表
+route::rule('child_export', 'admin/OrderOutChild/export');//导出
+route::rule('child_add', 'admin/OrderOutChild/add');//分单
+route::rule('child_info', 'admin/OrderOutChild/info');//详情
+route::rule('child_send', 'admin/OrderOutChild/send');//发货