Parcourir la source

MAC+序列号=CSV

linhaohong il y a 1 an
Parent
commit
ef0b93508b
1 fichiers modifiés avec 85 ajouts et 0 suppressions
  1. 85 0
      Controller/SerialNumberController.py

+ 85 - 0
Controller/SerialNumberController.py

@@ -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)
+
+
+
+
+
+