|
@@ -9,6 +9,9 @@ namespace App\Service;
|
|
|
*/
|
|
|
class DwyService extends Service
|
|
|
{
|
|
|
+ private $url = 'https://tm.dwycloud.com';
|
|
|
+
|
|
|
+ protected $num = 0;
|
|
|
|
|
|
protected static $instance;
|
|
|
|
|
@@ -20,17 +23,115 @@ class DwyService extends Service
|
|
|
return self::$instance;
|
|
|
}
|
|
|
|
|
|
- public function setBoxData($token,$dv,$data){
|
|
|
+ public function setBoxData($token,$dv,$data,$box_list){
|
|
|
+ //
|
|
|
+ $this->num = 0;
|
|
|
+// $token = 'Bearer eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiI1NjYxNTc5MjMwMDUzNzAzNjgiLCJhdXRoIjoiUk9MRV9CUkFORF9TVVBQTElFUixST0xFX1VTRV9CUkFORF9TVVBQTElFUixST0xFX0lOTkVSX1VTRVIsUk9MRV9JTlRFUkZBQ0UsUk9MRV9TRU5EX0JSQU5EX1NVUFBMSUVSIiwidG9rZW5JZCI6IjQiLCJleHAiOjE3MTk2NzI1OTN9.VKDLhTILWHe6MIAlzNvxCk4pBQaV-Et1UFYb12xTxl-QcVWpYaWLZnk6_QJ2bDXMplp75DuIKADmjuHDjDFSWQ';
|
|
|
+// $dv = 'DV00001';
|
|
|
+// $box_list = [
|
|
|
+// 'CK00007',
|
|
|
+// 'CK00004',
|
|
|
+// ];
|
|
|
+//
|
|
|
+// $data = [
|
|
|
+// 'CK00007'=>[
|
|
|
+// 'fake_qty' => '6',
|
|
|
+// 'detail' => ['K45SGTLA5HMM7YL1SPMM','R0FWCC4OG0BJFGY5D6BW','7I1V5NXUB8HO68TQT6F3','8EDJPMJQ3K0RCQ0DW45R'],
|
|
|
+// ],
|
|
|
+// 'CK00004'=>[
|
|
|
+// 'fake_qty' => '7',
|
|
|
+// 'detail' => ['WO17UD8SJ5CMF8X4RCNF','IKUOBRFEDM2QI2KQ15TI','GB0C22CDHO4WMWCVO5GL','OHYL6X2RYCBQ2M6FYTDI','8IVEAK4UXO6HY9YN4MTI','B9MCUXN8CB25750R1U41'],
|
|
|
+// ]
|
|
|
+// ];
|
|
|
+ //请求获取仓位卷码信息
|
|
|
+ $box_roll_list = $this->getBoxData($dv,$token,$box_list);
|
|
|
+ $new_data = [];
|
|
|
+ foreach ($data as $k=>$box_detail){
|
|
|
+ foreach ($box_detail['detail'] as $v){
|
|
|
+
|
|
|
+ foreach ($box_roll_list as $roll_number=>$roll_detail){
|
|
|
+
|
|
|
+ if(in_array($v,$roll_detail['detail'])){
|
|
|
+ if(!isset($new_data[$roll_detail['box_code']])) $new_data[$roll_detail['box_code']] = [
|
|
|
+ 'detail' => [],
|
|
|
+ 'fake_qty' => $data[$roll_detail['box_code']]['fake_qty'],
|
|
|
+ 'material_code' => $roll_detail['material_code'],
|
|
|
+ 'roll_number' => $roll_number
|
|
|
+ ];
|
|
|
+ $new_data[$roll_detail['box_code']]['detail'][] = $v;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
+// var_dump($new_data);die;
|
|
|
+ //补全数据
|
|
|
+ $data = $this->setBoxFake($new_data);
|
|
|
+
|
|
|
+ return $data;
|
|
|
|
|
|
- $token = 'Bearer eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiI1NjYxNTc5MjMwMDUzNzAzNjgiLCJhdXRoIjoiUk9MRV9CUkFORF9TVVBQTElFUixST0xFX1VTRV9CUkFORF9TVVBQTElFUixST0xFX0lOTkVSX1VTRVIsUk9MRV9JTlRFUkZBQ0UsUk9MRV9TRU5EX0JSQU5EX1NVUFBMSUVSIiwidG9rZW5JZCI6IjQiLCJleHAiOjE3MTk2NzI1OTN9.VKDLhTILWHe6MIAlzNvxCk4pBQaV-Et1UFYb12xTxl-QcVWpYaWLZnk6_QJ2bDXMplp75DuIKADmjuHDjDFSWQ';
|
|
|
- $dv = 'DV00001';
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ private function setBoxFake($data){
|
|
|
+ foreach ($data as $k=>$v){
|
|
|
+ if($v['fake_qty'] > count($v['detail'])){
|
|
|
+ $diff = $v['fake_qty'] - count($v['detail']);
|
|
|
+ var_dump($diff);
|
|
|
+ $return = $this->fakeData($v['roll_number'],$diff);
|
|
|
+ $data[$k]['detail'] = array_merge($v['detail'],$return);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return $data;
|
|
|
+ }
|
|
|
|
|
|
- //请求
|
|
|
+ private function fakeData($number,$diff){
|
|
|
+ $return = [];
|
|
|
+ for ($i=0;$i < $diff;$i++){
|
|
|
+ $this->num++;
|
|
|
+ $return[] = 'f'.$number.'a'.$this->num.rand(10,99);
|
|
|
+ }
|
|
|
|
|
|
+ return $return;
|
|
|
}
|
|
|
|
|
|
+ private function getBoxData($dv,$token,$box_list){
|
|
|
+
|
|
|
+ //为了取商标卷码
|
|
|
+ $res = $this->post_helper($this->url.'/jbl/api/module-data/device/device/diy/device_code',['device_code'=>$dv],$token);
|
|
|
+ $res = json_decode($res,true);
|
|
|
+ $detail = [];
|
|
|
+ $qr_codes = [];
|
|
|
+ if(isset($res['data'])){
|
|
|
+ foreach ($res['data'] as $v){
|
|
|
+ if(in_array($v['box_code'],$box_list)){
|
|
|
+ $detail[$v['roll_qr_code']] = $v['box_code'];
|
|
|
+ $qr_codes[] = $v['roll_qr_code'];
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ }else{
|
|
|
+ return [false,''];
|
|
|
+ }
|
|
|
+
|
|
|
+ //为了取仓对应卷码进行获取
|
|
|
+ $res = $this->post_helper($this->url.'/jbl/api/module-data/brand_sale_order/brand_sale_order/diy/find_roll_qr_code_list',['roll_qr_code_list'=>$qr_codes],$token);
|
|
|
+ $res = json_decode($res,true);
|
|
|
+ $qr_roll_list = [];
|
|
|
+ if(isset($res['data'])){
|
|
|
+ foreach ($res['data'] as $v){
|
|
|
+ if(!isset($qr_roll_list[$v['roll_qr_code']]['material_code'])) {
|
|
|
+ $qr_roll_list[$v['roll_qr_code']]['material_code'] = $v['material_code'];
|
|
|
+ $qr_roll_list[$v['roll_qr_code']]['box_code'] = $detail[$v['roll_qr_code']];
|
|
|
+ }
|
|
|
+ $qr_roll_list[$v['roll_qr_code']]['detail'][] = $v['brand_qr_code'];
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ return $qr_roll_list;
|
|
|
|
|
|
- private function getBoxData(){
|
|
|
|
|
|
}
|
|
|
|
|
@@ -38,9 +139,11 @@ class DwyService extends Service
|
|
|
public function post_helper($url, $data, $auth)
|
|
|
{
|
|
|
$header = [
|
|
|
- 'Content-Type:application/json',
|
|
|
+ 'Content-Type: application/json',
|
|
|
'Authorization: ' . $auth,
|
|
|
];
|
|
|
+ $data = json_encode($data);
|
|
|
+// var_dump($url);die;
|
|
|
$ch = curl_init();
|
|
|
|
|
|
curl_setopt($ch, CURLOPT_POST, 1);
|
|
@@ -49,7 +152,7 @@ class DwyService extends Service
|
|
|
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
|
|
|
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
|
|
|
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
|
|
|
- if (!is_null($data)) curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
|
|
|
+ if (!is_null($data)) curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
|
|
|
$r = curl_exec($ch);
|
|
|
curl_close($ch);
|
|
|
return $r;
|