|
@@ -49,14 +49,16 @@ class BoxService extends Service
|
|
|
// [
|
|
|
// 'id' => 716,
|
|
|
// 'order_no' => 716,
|
|
|
-// 'param' => [
|
|
|
+// 'params' => [
|
|
|
// '1',
|
|
|
-// '1'
|
|
|
+// '1',
|
|
|
+//
|
|
|
// ],
|
|
|
+
|
|
|
// ], [
|
|
|
// 'id' => 723,
|
|
|
-// 'param' => [
|
|
|
-// '40',
|
|
|
+// 'order_no' => 716,
|
|
|
+// 'params' => [
|
|
|
// '40'
|
|
|
// ],
|
|
|
// ],
|
|
@@ -65,10 +67,16 @@ class BoxService extends Service
|
|
|
$ids = [];
|
|
|
$sale_ids = [];
|
|
|
// $key_list = [];
|
|
|
+// var_dump($data);die;
|
|
|
$top_order_no = $data['order_no'];
|
|
|
+ $box_no = isset($data['box_no']) ? $data['box_no'] : '';
|
|
|
+ $transport_no = isset($data['transport_no']) ? $data['transport_no'] : '';
|
|
|
$data = $data['param'];
|
|
|
+ $key_list = [];
|
|
|
foreach ($data as $v) {
|
|
|
|
|
|
+
|
|
|
+
|
|
|
if($v['id'] < 0) $sale_ids[] = -$v['id'];
|
|
|
else $ids[] = $v['id'];
|
|
|
if($v['id'] < 0) $v['id'] = -$v['id'];
|
|
@@ -92,10 +100,9 @@ class BoxService extends Service
|
|
|
$lock_status = $this->isLock($key);
|
|
|
if(!$lock_status) return [false,'操作过于频繁'];
|
|
|
$product_list = OrdersProduct::wherein('id', $ids)->get()->toArray();
|
|
|
-// var_dump($product_list);die;
|
|
|
$sale_product_list = SaleOrdersProduct::wherein('id', $sale_ids)->get()->toArray();
|
|
|
$box_insert = [];
|
|
|
- foreach ($product_list as $v) {
|
|
|
+ foreach ($product_list as $v) {
|
|
|
|
|
|
$num_list = $key_list[$v['id']];
|
|
|
$total = $num_list['total'];
|
|
@@ -104,11 +111,11 @@ class BoxService extends Service
|
|
|
$un_box_num = $v['dispatch_complete_quantity'] - $v['box_num'];
|
|
|
if ($total > $un_box_num) return [false, $v['product_title'] . '数量不足'];
|
|
|
|
|
|
- $ext_1 = $v['customer_no'];
|
|
|
- $ext_2 = $v['customer_name'];
|
|
|
- $ext_3 = $v['product_no'];
|
|
|
- $ext_4 = $v['product_title'];
|
|
|
- $ext_5 = $v['product_size'];
|
|
|
+ $ext_1 = $v['product_no'];//产品编号
|
|
|
+ $ext_2 = $v['technology_material']; //工艺材质
|
|
|
+ $ext_3 = $v['technology_name'];//工艺名称
|
|
|
+ $ext_4 = $v['wood_name'];//木皮
|
|
|
+ $ext_5 = $v['process_mark'];//工艺备注
|
|
|
$out_order_no = $insert['out_order_no'] = $v['out_order_no'];
|
|
|
$top_id = $v['sale_orders_product_id'];
|
|
|
foreach ($detail as $vv){
|
|
@@ -123,6 +130,7 @@ class BoxService extends Service
|
|
|
'num' => $vv,
|
|
|
'box_type' => 0,
|
|
|
'team_id' => $team_id,
|
|
|
+ 'shipment_order_no' => $transport_no,
|
|
|
|
|
|
];
|
|
|
|
|
@@ -149,11 +157,11 @@ class BoxService extends Service
|
|
|
$un_box_num = $v['order_quantity'] - $v['box_num'] - $box_detail->where('top_id',$v['id'])->where('box_type',1)->sum('num');
|
|
|
if ($total > $un_box_num) return [false, $v['product_title'] . '数量不足'];
|
|
|
|
|
|
- $ext_1 = $v['customer_no'];
|
|
|
- $ext_2 = $v['customer_name'];
|
|
|
- $ext_3 = $v['product_no'];
|
|
|
- $ext_4 = $v['product_title'];
|
|
|
- $ext_5 = $v['product_size'];
|
|
|
+ $ext_1 = $v['product_no'];//产品编号
|
|
|
+ $ext_2 = $v['technology_material']; //工艺材质
|
|
|
+ $ext_3 = $v['technology_name'];//工艺名称
|
|
|
+ $ext_4 = $v['wood_name'];//木皮
|
|
|
+ $ext_5 = $v['process_mark'];//工艺备注
|
|
|
$out_order_no = $insert['out_order_no'] = $v['out_order_no'];
|
|
|
$top_id = $v['id'];
|
|
|
foreach ($detail as $vv){
|
|
@@ -168,6 +176,7 @@ class BoxService extends Service
|
|
|
'num' => $vv,
|
|
|
'box_type' => 1,
|
|
|
'team_id' => $team_id,
|
|
|
+ 'shipment_order_no' => $transport_no,
|
|
|
|
|
|
];
|
|
|
|
|
@@ -183,9 +192,9 @@ class BoxService extends Service
|
|
|
}
|
|
|
$insert['detail'] = $box_insert;
|
|
|
$insert['top_order_no'] = $top_order_no;
|
|
|
-// var_dump($insert);die;
|
|
|
+ $insert['order_no'] = $box_no;
|
|
|
+ $insert['shipment_order_no'] = $transport_no;
|
|
|
list($status,$msg) = self::$box_hook->boxInsert($insert);
|
|
|
-
|
|
|
if(!$status) {
|
|
|
$this->delLock($key);
|
|
|
DB::rollBack();
|
|
@@ -202,6 +211,102 @@ class BoxService extends Service
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 根据发货单包装
|
|
|
+ * @param $data
|
|
|
+ * @return array
|
|
|
+ */
|
|
|
+ public function transportBoxIn($data)
|
|
|
+ {
|
|
|
+// $param = [
|
|
|
+// [
|
|
|
+// 'order_no' => 'XD202309000155',
|
|
|
+// 'product_no' => '0301011816',
|
|
|
+// 'technology_material' => '多层板,单贴,新木纹钢板',
|
|
|
+// 'technology_name' => '',
|
|
|
+// 'wood_name' => '',
|
|
|
+// 'process_mark' => '',
|
|
|
+// 'num' => '5',
|
|
|
+// 'team_id' => '1',
|
|
|
+// ],[
|
|
|
+// 'order_no' => 'XD202309000155',
|
|
|
+// 'product_no' => '0104010753',
|
|
|
+// 'technology_material' => '多层线条',
|
|
|
+// 'technology_name' => '',
|
|
|
+// 'wood_name' => '',
|
|
|
+// 'process_mark' => '',
|
|
|
+// 'num' => '4',
|
|
|
+// 'team_id' => '1',
|
|
|
+// ],[
|
|
|
+// 'order_no' => 'XD202309000156',
|
|
|
+// 'product_no' => '0301011712',
|
|
|
+// 'technology_material' => '多层板,双贴,雨丝钢板',
|
|
|
+// 'technology_name' => '',
|
|
|
+// 'wood_name' => '',
|
|
|
+// 'process_mark' => '',
|
|
|
+// 'num' => '3',
|
|
|
+// ],
|
|
|
+// ];
|
|
|
+// dd(json_encode($param));
|
|
|
+// $params = [
|
|
|
+// 'params' => $param,
|
|
|
+// 'transport_no' => '123443212',
|
|
|
+// ];
|
|
|
+
|
|
|
+
|
|
|
+ $param = $data['params'];
|
|
|
+ $shipment_order_no = $data['transport_no'];
|
|
|
+ $sale_order_nos = [];
|
|
|
+ $key_list = [];
|
|
|
+ foreach ($param as $v){
|
|
|
+ if(!in_array($v['order_no'],$sale_order_nos)) $sale_order_nos[] = $v['order_no'];
|
|
|
+ $key = $this->getKey($v);
|
|
|
+ $key_list[$key] = [
|
|
|
+ 'num' => $v['num'],
|
|
|
+ 'order_no' => $v['order_no'],
|
|
|
+ 'team_id' => isset($v['team_id']) ? $v['team_id'] : 0,
|
|
|
+ ];
|
|
|
+ }
|
|
|
+ $sale_order_product_list = SaleOrdersProduct::wherein('out_order_no',$sale_order_nos)->get()->toArray();
|
|
|
+ $sale_order_product_key_list = [];
|
|
|
+ foreach ($sale_order_product_list as $v){
|
|
|
+ $key = $this->getKey($v);
|
|
|
+ $sale_order_product_key_list[$key] = $v['id'];
|
|
|
+ }
|
|
|
+
|
|
|
+ $param = [];
|
|
|
+// var_dump($key_list);
|
|
|
+// var_dump($sale_order_product_key_list);die;
|
|
|
+ foreach ($key_list as $k=>$v){
|
|
|
+ if(!isset($sale_order_product_key_list[$k])) return [false,$k.' 不存在!'];
|
|
|
+ $param[$v['order_no']][] = [
|
|
|
+ 'id' => -(intval($sale_order_product_key_list[$k])),
|
|
|
+ 'team_id' => $v['team_id'],
|
|
|
+ 'params' => [$v['num']]
|
|
|
+ ];
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ $box_no = self::$box_hook->setOrderNo();
|
|
|
+ foreach ($param as $k=>$v){
|
|
|
+ $postParam = [
|
|
|
+ 'order_no' => $k,
|
|
|
+ 'param' => $v,
|
|
|
+ 'box_no' => $box_no,
|
|
|
+ 'transport_no' => $shipment_order_no,
|
|
|
+ ];
|
|
|
+ $this->boxIn($postParam);
|
|
|
+// var_dump($postParam);die;
|
|
|
+ }
|
|
|
+ return [true,'保存成功'];
|
|
|
+
|
|
|
+
|
|
|
+ }
|
|
|
+ protected function getKey($data){
|
|
|
+
|
|
|
+ return $data['product_no'].'_'.$data['technology_material'].'_'.$data['technology_name'].'_'.$data['wood_name'].'_'.$data['process_mark'];
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
/**
|
|
|
* 包装详情1用于包装前
|