Commit 04f40546 authored by rico.liu's avatar rico.liu

update

parent 831e6dcf
#!/usr/bin/env python3 #!/usr/bin/env python3
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
""" """
Created on Tue Jan 7 15:26:43 2020 Created on Tue Jan 7 15:26:43 2020
@author: rico @author: rico
""" """
import pymssql import pymssql
import pandas as pd import pandas as pd
''' '''
DL/DW/DZ/GM/JD/LXWL/OFS/SN/YHD/ZCSM DL/DW/DZ/GM/JD/LXWL/OFS/SN/YHD/ZCSM
''' '''
def matchSKU(sku_list,frm): def matchSKU(sku_list,frm):
conn = pymssql.connect(host='123.56.115.207', user='zgcprice3311',password='admin@2018@)!*',database='ZI_DataBase') conn = pymssql.connect(host='123.56.115.207', user='zgcprice3311',password='admin@2018@)!*',database='ZI_DataBase')
cursor = conn.cursor() cursor = conn.cursor()
print('正在删除库中产品状态为6的sku,稍等。。。')#首先将库中错误状态产品的JD/SN/GM的SKU删除 print('正在删除库中产品状态为6的sku,稍等。。。')#首先将库中错误状态产品的JD/SN/GM的SKU删除
cursor.execute("DELETE from productcode_sku where productcode in (select productcode from info_product where state='6')") cursor.execute("DELETE from productcode_sku where productcode in (select productcode from info_product where state='6')")
conn.commit() print('正在删除库中重复的SKU,稍等。。。')#需先删除库中重复的SKU,避免匹配相同的编码
print('正在获取当前库中所有sku,请稍等.....')#获取库中所有的SKU,以供检查 cursor.execute("declare OperCursor Cursor for\
try: SELECT productcode,sku,frm,count(*) ca FROM productcode_sku\
get_all_sku = f"select * from productcode_sku where frm in {frm}" GROUP BY productcode,sku,frm\
cursor.execute(get_all_sku) HAVING COUNT(*)>1\
data_sku = (cursor.fetchall()) open OperCursor\
data_sku_file = pd.DataFrame(data_sku,columns=['id','productcode','sku','skuname','createddate','frm']) declare @PRODUCTCODE as nvarchar(20)\
except: declare @sku as nvarchar(50)\
get_all_sku = f"select * from productcode_sku where frm='{frm}'" declare @frm as nvarchar(20)\
cursor.execute(get_all_sku) declare @ca as int\
data_sku = (cursor.fetchall()) declare @return_value as int\
data_sku_file = pd.DataFrame(data_sku,columns=['id','productcode','sku','skuname','createddate','frm']) fetch next from OperCursor into @PRODUCTCODE,@sku,@frm,@ca\
IF @@fetch_status=0\
print('sku获取完毕') delete from productcode_sku\
conn.close() where id in (select top (@ca-1) id from productcode_sku\
cursor.close() where productcode=@PRODUCTCODE and sku=@sku and frm=@frm)\
sku_check = {} \
for sku in set(sku_list): while @@fetch_status=0\
#print(sku) begin\
#sku = 100004460761 fetch next from OperCursor into @PRODUCTCODE,@sku,@frm,@ca\
if str(sku) in list(data_sku_file['sku']): IF @@fetch_status=0\
try: delete from productcode_sku\
product_no = [target for sku_source,target in zip(list(data_sku_file['sku']),list(data_sku_file['productcode'])) if str(sku) == sku_source] where id in (select top (@ca-1) id from productcode_sku\
sku_check[f'{sku}'] = product_no[0] where productcode=@PRODUCTCODE and sku=@sku and frm=@frm)\
except: end\
sku_check[f'{sku}'] = '2' #匹配上多个SKU,属于问题数据 close OperCursor\
deallocate OperCursor")
else: conn.commit()
if frm == 'SN': print('正在获取当前库中所有sku,请稍等.....')#获取库中所有的SKU,以供检查
sku_add = '0000000000/'+ str(sku) try:
if str(sku_add) in list(data_sku_file['sku']): get_all_sku = f"select * from productcode_sku where frm in {frm} and productcode not like '78%' "
try: cursor.execute(get_all_sku)
product_no = [target for sku_source,target in zip(list(data_sku_file['sku']),list(data_sku_file['productcode'])) if str(sku_add) == sku_source] data_sku = (cursor.fetchall())
sku_check[f'{sku}'] = product_no[0] data_sku_file = pd.DataFrame(data_sku,columns=['id','productcode','sku','skuname','createddate','frm'])
except: except:
sku_check[f'{sku}'] = '2' #匹配上多个SKU,属于问题数据 get_all_sku = f"select * from productcode_sku where frm='{frm}' and productcode not like '78%' "
else: cursor.execute(get_all_sku)
sku_check[f'{sku}'] = '0' data_sku = (cursor.fetchall())
else: data_sku_file = pd.DataFrame(data_sku,columns=['id','productcode','sku','skuname','createddate','frm'])
sku_check[f'{sku}'] = '0'
return sku_check print('sku获取完毕')
conn.close()
cursor.close()
sku_check = {}
for sku in set(sku_list):
#print(sku)
#sku = 100004460761
if str(sku) in list(data_sku_file['sku']):
try:
product_no = [target for sku_source,target in zip(list(data_sku_file['sku']),list(data_sku_file['productcode'])) if str(sku) == sku_source]
sku_check[f'{sku}'] = product_no[0]
except:
sku_check[f'{sku}'] = '2' #匹配上多个SKU,属于问题数据
else:
if frm == 'SN':
sku_add = '0000000000/'+ str(sku)
if str(sku_add) in list(data_sku_file['sku']):
try:
product_no = [target for sku_source,target in zip(list(data_sku_file['sku']),list(data_sku_file['productcode'])) if str(sku_add) == sku_source]
sku_check[f'{sku}'] = product_no[0]
except:
sku_check[f'{sku}'] = '2' #匹配上多个SKU,属于问题数据
else:
sku_check[f'{sku}'] = '0'
else:
sku_check[f'{sku}'] = '0'
return sku_check
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment