|
@@ -1,6 +1,7 @@
|
|
|
import json
|
|
|
import logging
|
|
|
import time
|
|
|
+import csv
|
|
|
|
|
|
import requests
|
|
|
from bulk_update.helper import bulk_update
|
|
@@ -43,6 +44,8 @@ class SerialNumberView(View):
|
|
|
return self.generate_mac(request_dict, response)
|
|
|
elif operation == 'checkSerial': # 序列号库存数量少于2000,发送邮件通知
|
|
|
return self.check_serial_number(response)
|
|
|
+ elif operation == 'macAndSerial':
|
|
|
+ return self.generate_mac_and_serial_numbers(request_dict, response)
|
|
|
|
|
|
token = request_dict.get('token', None)
|
|
|
token = TokenObject(token)
|
|
@@ -621,3 +624,85 @@ class SerialNumberView(View):
|
|
|
return response.json(0)
|
|
|
except Exception as e:
|
|
|
return response.json(500)
|
|
|
+
|
|
|
+ @staticmethod
|
|
|
+ def generate_mac_serial_number(request_dict, response):
|
|
|
+ """
|
|
|
+ 生成mac到mac.txt文件
|
|
|
+ :param request_dict: 请求
|
|
|
+ :param response: 响应
|
|
|
+ :return: response
|
|
|
+ """
|
|
|
+ quantity = int(request_dict.get('quantity', 0))
|
|
|
+ if quantity == 0:
|
|
|
+ return response.json(444)
|
|
|
+
|
|
|
+ mac_qs = MacModel.objects.filter(is_active=True).values('value')
|
|
|
+ if not mac_qs.exists():
|
|
|
+ return response.json(175)
|
|
|
+ mac = mac_qs[0]['value']
|
|
|
+ now_time = int(time.time())
|
|
|
+ with open('mac.txt', 'w') as f:
|
|
|
+ f.write(mac + '\n')
|
|
|
+ for i in range(quantity - 1):
|
|
|
+ next_mac = CommonService.updateMac(mac)
|
|
|
+ mac = next_mac
|
|
|
+ f.write(next_mac + '\n')
|
|
|
+ # 保存下个mac
|
|
|
+ next_mac = CommonService.updateMac(mac)
|
|
|
+ mac_qs.update(value=next_mac, update_time=now_time)
|
|
|
+ return response.json(0)
|
|
|
+
|
|
|
+ @staticmethod
|
|
|
+ def generate_mac_and_serial_numbers(request_dict, response):
|
|
|
+ # 获取生成数量
|
|
|
+ quantity = int(request_dict.get('quantity', 0))
|
|
|
+ # 获取公司类型
|
|
|
+ company_id = int(request_dict.get('company_id', 0))
|
|
|
+ if quantity == 0 or company_id == 0:
|
|
|
+ return response.json(444)
|
|
|
+
|
|
|
+ # 获取mac地址查询集
|
|
|
+ mac_qs = MacModel.objects.filter(is_active=True).values('value')
|
|
|
+ if not mac_qs.exists():
|
|
|
+ return response.json(175)
|
|
|
+ mac = mac_qs[0]['value']
|
|
|
+
|
|
|
+ # 获取序列号地址查询集
|
|
|
+ serial_qs = CompanySerialModel.objects.filter(status=1,company_id=company_id)[:quantity]
|
|
|
+ # 判断序列号地址是否充足
|
|
|
+ if len(serial_qs) < quantity:
|
|
|
+ return response.json(444,'序列号不足')
|
|
|
+
|
|
|
+ now_time = int(time.time())
|
|
|
+
|
|
|
+ # 保存到mac_serial.csv
|
|
|
+ with open('mac_serial.csv', 'w', newline='') as csvfile:
|
|
|
+ writer = csv.writer(csvfile)
|
|
|
+ writer.writerow(['MAC', 'SN'])
|
|
|
+
|
|
|
+ for i, serial in enumerate(serial_qs):
|
|
|
+ next_mac = CommonService.updateMac(mac)
|
|
|
+ if company_id == 1:
|
|
|
+ csv_serial_number = serial.serial_number + '11A'
|
|
|
+ elif company_id == 2:
|
|
|
+ csv_serial_number = serial.serial_number + '11L'
|
|
|
+ else:# 其他情况 company_id = X
|
|
|
+ csv_serial_number = serial.serial_number
|
|
|
+ writer.writerow([next_mac, csv_serial_number])
|
|
|
+ mac = next_mac
|
|
|
+
|
|
|
+ serial.status = 2
|
|
|
+ serial.update_time = now_time
|
|
|
+ serial.save()
|
|
|
+
|
|
|
+ next_mac = CommonService.updateMac(mac)
|
|
|
+ mac_qs.update(value=next_mac, update_time=now_time)
|
|
|
+
|
|
|
+ return response.json(0)
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|