提交 5da56f7d authored 作者: 蒋代伟's avatar 蒋代伟

解除箱垛绑定关系

上级 00678e47
......@@ -1317,6 +1317,11 @@ urlpatterns = [
#2023 07-14 经销商查询标签信息
url(r'^inventory/agent/label/query/(?P<ancestor_id>\d+)/$',inventory_views.agent_label_query),
#url(r'^inventory/batch/summary/',inventory_views.batch_summary),
url(r'^inventory/stack/demolition/(?P<company_id>\d+)/$',inventory_views.demolition_stack)
]
if settings.DEBUG:
......
......@@ -15646,3 +15646,197 @@ def agent_label_query(request,ancestor_id):
else:
data['e'] = '暂无权限查询'
return JsonResponse(data)
'''
@login_required
def batch_summary(request):
data=[]
ancestor_id = request.user.ancestor_id
dt = datetime.datetime.now().strftime('%Y-%m-%d')
dt_fr = request.GET.get('date_fr', dt)
dt_to = request.GET.get('date_to', dt)
if request.user.company.id == 19257:
dt_fr = request.GET.get(
'date_fr', (datetime.datetime.now() + datetime.timedelta(days=-7)).strftime('%Y-%m-%d'))
dt_max = max(dt_fr, dt_to)
dt_min = min(dt_fr, dt_to)
data = []
clmns = ['经销商', '产品', '未入库量' ]
cur = connection.cursor()
s = ""
cur.execute(s)
rs = cur.fetchall()
for r in rs :
qty = int(r[4] -r[5])
data.append([r[1],r[3],qty])
return render(request,'inventory/summary.html',data)
def batch_summary_details(request):
data={"e":''}
return JsonResponse(data)
'''
@csrf_exempt
def demolition_stack(request,company_id):
data={"e":''}
k = sK
e = time_key_check(request, k)
if e:
data['e'] = e
return JsonResponse(data)
r = json.loads(request.body)
c = Company.objects.get(id=company_id)
codes = r['codes']
cur = connection.cursor()
a = []
cur.execute("create temp table codes(" + \
"label_code character varying(32)," + \
"tb character varying(20)," + \
"product_id integer," + \
"stack_id integer," + \
"code character varying(32)," + \
"label_id bigint," + \
"label_pk_id bigint," + \
"label_pkg smallint," + \
"err character varying(100)," + \
"label_code0 character varying(32)," + \
"from_agent_id integer)"
)
for code in codes:
# 物流终端发货CODES
# codes: [{code: 123456789012, err_code: 1, e: "错误信息1"}]
a.append("('" + code + "','" + code[:4] + "')")
sSql = "insert into codes (label_code,tb) values "
if a:
cur.execute(sSql + ",".join(a))
stacks = []
# 保存原始标签号码
cur.execute("update codes set label_code0=label_code")
# 暂时不考虑跨段动态绑定以及防伪码
# 处理标签替换
s = "update codes o set code=coalesce" + \
"((select code0 from label.lbl_replace_details where code=o.label_code order by batch_id desc limit 1),o.label_code)"
cur.execute(s)
# 有些AB样标使用了跨段表里的号段
s = "select " + \
"(select code_a FROM label.lbl_abcode where code_b=label_code or code_a=label_code)," + \
"tb='t'||left((select code_a FROM label.lbl_abcode where code_b=label_code or code_a=label_code),4) " + \
"from codes " + \
"where (select id from label.lbl_abcode where code_a=label_code or code_b=label_code limit 1)>0"
cur.execute(s)
r = cur.fetchone()
s = "update codes set code=" + \
"(select code_a FROM label.lbl_abcode where code_b=label_code or code_a=label_code)," + \
"tb='t'||left((select code_a FROM label.lbl_abcode where code_b=label_code or code_a=label_code),4) " + \
"where (select id from label.lbl_abcode where code_a=label_code or code_b=label_code limit 1)>0"
cur.execute(s)
cur.execute("update codes set tb='t'||left(code,4) where length(tb)=4")
cur.execute("select tb from codes group by tb")
rs = cur.fetchall()
for r in rs:
# cur.execute("select to_regclass('label." + r[0] + "')")
cur.execute("select count(*) from information_schema.tables where table_schema='label' " + \
"and table_type='BASE TABLE' and table_name='" + r[0] + "'"
)
r0 = cur.fetchone()
if r0[0]:
s = "update codes set " + \
"label_id=b.id," + \
"label_pkg=b.package_id," + \
"label_pk_id=coalesce(b.parent_id,b.id) " + \
"from " + \
"(SELECT label_code,code from codes where tb='" + r[0] + "') a " + \
"left outer join " + \
"(select id,code,parent_id,package_id,is_pk from label." + r[0] + ") b " + \
"on a.code=b.code " + \
"where tb='" + r[0] + "' and codes.code=a.code"
cur.execute(s)
# 没有标签id的,看是不是企业第三方标签
s = "update codes set " + \
"label_id=b.id," + \
"label_pkg=b.package_id," + \
"label_pk_id=coalesce(b.parent_id,b.id) " + \
"from " + \
"(SELECT label_code,code from codes where label_id is null) a " + \
"left outer join " + \
"(select id,code,parent_id,package_id,is_pk from label.thirdparty where cid=" + str(c.ancestor_id) + ") b " + \
"on a.code=b.code " + \
"where codes.code=a.code and label_id is null"
cur.execute(s)
s = "update codes a set stack_id = (select stack_id from logistics.inventory_stackdetails WHERE label_pk_id = a.label_pk_id limit 1) "
cur.execute(s)
cur.execute("select * from codes")
print('i--->',
'label_code,tb,product_id,stack_id,code,label_id,label_pk_id,label_pkg,err,label_code0,from_agent_id')
for i in cur.fetchall():
print('i--->', i)
# s = "select b.id from (select label_pk_id,stack_id from codes where label_pk_id is not null and stack_id is not null and label_pkg=3)a " +\
# " left outer join (select id,label_pk_id,stack_id from logistics.inventory_stackdetails where " +\
# " company_id = "+str(company_id)+")b on a.stack_id = b.stack_id and a.label_pk_id = b.label_pk_id " \
#
# cur.execute(s)
# for i in cur.fetchall():
# print('s--->', i)
values = []
label_pk_id = []
error_label = []
s = "select stack_id,label_code,label_pk_id,label_id,label_pkg from codes where label_pk_id is null or stack_id is null or label_pkg !=3"
cur.execute(s)
r = cur.fetchall()
if r:
for i in r:
error_label.append(i[1])
in_sert = "insert into inventory_stacklog (stack_id,label_code,label_pk_id,label_id,package_id,company_id,dt,tm,remark) values "
s = "select stack_id,label_code,label_pk_id,label_id,label_pkg from codes where label_pk_id is not null and stack_id is not null and label_pkg=3"
cur.execute(s)
res = cur.fetchall()
if res:
for r in res:
label_pk_id.append(str(r[0]))
values.append(
"(" + str(r[0]) + ",'" + r[1] + "'," + str(r[2]) + "," + str(r[3]) + "," + str(
r[4]) + "," + str(company_id) + ",now(),now(),'解除绑定')")
try:
del_s = "delete from logistics.inventory_stackdetails where label_pk_id in (" + (",").join(label_pk_id) + ")"
#print(del_s)
cur.execute(del_s)
in_s = in_sert + (",").join(values)
#print(in_s)
cur.execute(in_s)
except:
data['e'] = '处理错误'
if error_label :
data['e'] = (",").join(error_label)+'处理失败'
return JsonResponse(data)
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论