浏览代码

关联库存优化,解析企业客户优化

wufeng 2 年之前
父节点
当前提交
e12d1ec3dd
共有 2 个文件被更改,包括 66 次插入15 次删除
  1. 38 13
      app/admin/controller/OrderImport.php
  2. 28 2
      app/command/ImportOrderFromCAnalysisData.php

+ 38 - 13
app/admin/controller/OrderImport.php

@@ -267,25 +267,50 @@ class OrderImport extends Base
     public function relationStockBatch()
     {
 
-        $ids = $this->request->post('ids/a', [], 'trim');
+        $param = $this->request->only(['ids','plat_code'], 'post', 'trim');
 
-        if (empty($ids)) return error_show(1004, 'ids参数不允许为空');
+        $val = Validate::rule([
+            'ids'=>'require',
+            'plat_code|平台商品编号'=>'require',
+        ]);
+
+        if(!$val->check($param)) return error_show(1004, $val->getError());
 
-        $userinfo = GetUserInfo($this->post['token']);
+        $info = Db::name('order_import_from_c_extend')
+            ->field('id,spuCode,companyNo')
+            ->whereIn('id', $param['ids'])
+            ->find();
 
-        $res = Db::name('order_import_from_c')
-            ->whereIn('id', $ids)
+        //判断库存是否充足
+        $num = Db::name('order_import_from_c')
+            ->whereIn('id', $param['ids'])
             ->where(['is_del' => OIFCModel::$is_del_normal, 'status' => OIFCModel::$status_stock_not_enough])
-            ->update([
-                'status' => OIFCModel::$status_wait_relation,
-                'updatetime' => date('Y-m-d H:i:s'),
-                'updateid'=>isset($user["data"]['id']) ? $userinfo["data"]['id'] : 0,
-                'updater'=>isset($user["data"]['nickname']) ? $userinfo["data"]['nickname'] : '',
-            ]);
+            ->sum('num');
+        $wsm_code = Db::name('warehouse_info')
+            ->where(['companyNo'=>$info['companyNo'],'is_del'=>0])
+            ->value('wsm_code');
+        $usable_stock = Db::name('good_stock')
+            ->where(['spuCode'=> $info['spuCode'],'wsm_code'=>$wsm_code,'is_del'=>0])
+            ->value('usable_stock',0);
+
+        if($usable_stock<$num) return error_show(1005,'可用库存只有'.$usable_stock);
+        else {
 
-        if ($res) return app_show(0, '批量关联库存成功');
-        else return error_show(1005, '批量关联库存失败');
+            $userinfo = GetUserInfo($this->post['token']);
 
+            $res = Db::name('order_import_from_c')
+                ->whereIn('id', $param['ids'])
+                ->where(['is_del' => OIFCModel::$is_del_normal, 'status' => OIFCModel::$status_stock_not_enough])
+                ->update([
+                    'status' => OIFCModel::$status_wait_relation,
+                    'updatetime' => date('Y-m-d H:i:s'),
+                    'updateid' => isset($user["data"]['id']) ? $userinfo["data"]['id'] : 0,
+                    'updater' => isset($user["data"]['nickname']) ? $userinfo["data"]['nickname'] : '',
+                ]);
+
+            if ($res) return app_show(0, '批量关联库存成功');
+            else return error_show(1005, '批量关联库存失败');
+        }
     }
 
     //【辅助1】获取线上商品详情

+ 28 - 2
app/command/ImportOrderFromCAnalysisData.php

@@ -38,7 +38,6 @@ class ImportOrderFromCAnalysisData extends Command
 
             $rs = $order_import_from_c_db
                 ->where(['is_del' => OIFCModel::$is_del_normal, 'status' => OIFCModel::$status_wait_validate])
-                ->lock(true)
                 ->find();
 
             //1.数据校验
@@ -80,6 +79,7 @@ class ImportOrderFromCAnalysisData extends Command
                 ->where('plat_code', $rs['plat_code'])
                 ->find();
 
+            //商品信息
             if (!empty($good_platform_info)) {
                 $extend_insert_data['spuCode'] = $good_platform_info['spuCode'];
                 $extend_insert_data['platform_codes'] = $good_platform_info['platform_code'];
@@ -103,9 +103,35 @@ class ImportOrderFromCAnalysisData extends Command
                 $update_c_data['remark'] = isset($update_c_data['remark']) ? $update_c_data['remark'] . ',在商品平台表中查不到平台商品编号对应的spuCode' : '在商品平台表中查不到平台商品编号对应的spuCode';
             }
 
+            //活动信息
             $extend_insert_data['activity_id'] = Db::name('good_activity')
                 ->where(['activity_name' => $rs['activity_name'], 'is_del' => 0])
-                ->value('id');
+                ->value('id', 0);
+
+            //企业客户
+            $co_id = Db::name('platform')
+                ->alias('p')
+                ->leftJoin('customer_org1 co', 'co.name=p.platform_name AND co.is_del=0')
+                ->where('p.platform_code', $rs['platform_code'])
+                ->value('co.id', 0);
+
+            if ($co_id) {
+                $customer_code = Db::name('customer_info')
+                    ->where(['itemid' => $co_id, 'companyName' => '客户', 'is_del' => 0])
+                    ->value('companyNo', '');
+
+                if ($customer_code) {
+                    $extend_insert_data['customer_code'] = $customer_code;
+                } else {
+                    $update_c_data['status'] = OIFCModel::$status_wait_confirm;
+                    $update_c_data['remark'] = isset($update_c_data['remark']) ? $update_c_data['remark'] . ',在企业客户管理组织中找不到对应的企业' : '在企业客户管理组织中找不到对应的企业';
+                }
+
+            } else {
+                $update_c_data['status'] = OIFCModel::$status_wait_confirm;
+                $update_c_data['remark'] = isset($update_c_data['remark']) ? $update_c_data['remark'] . ',在企业客户管理组织中找不到平台名称对应的组织' : '在企业客户管理组织中找不到平台名称对应的组织';
+            }
+
 
             $order_import_from_c_extend_db->insertGetId($extend_insert_data);