首页 > 其他分享 >数据校验--校验生产辅材是否维护正确

数据校验--校验生产辅材是否维护正确

时间:2024-04-08 15:26:11浏览次数:14  
标签:-- text DB uat 校验 uss sql print 辅材

from USSyunwei.bin import *
from tqdm import tqdm



import decimal
error_list=set()
#查询十分到家分账金额大于费用项金额的一半
sql="select * from uss_payunit.tcl_special_pardon_charge where show_scene_type=1 "
# uat_DB=DB(sql=sql,DB={'ip': "10.74.149.251", 'port': 6033, 'usr': "rw_uss2_uat", 'pwd': "rw_uss2_uat_123#"},database="uss_payunit")

# statu,text=uat_DB.select()
statu,text=DB_sql(sql=sql,database="uss_payunit",example="生产_营销_十分到家_USS2.0_basicdata_MYSQL_从(10.68.70.37)")
n=0
if statu:
for i in text:
# print(type(i[17]),i[17],type(i[27]),i[27])
if float(i[17])/2<float(i[27]):
n+=1
error_list.add(f"{i[9]}十分到家分账金额大于费用项金额的一半")
else:
print(f"{sql}查询失败,{text}")

error_list=set()
#查询辅材组数据id
sql=" select * from uss_basicdata.bas_aux_material_group where group_status =1 "
# uat_DB=DB(sql=sql,DB={'ip': "10.74.149.251", 'port': 6033, 'usr': "rw_uss2_uat", 'pwd': "rw_uss2_uat_123#"},database="uss_basicdata")
# statu,text=uat_DB.select()
statu,text=DB_sql(sql=sql,database="uss_payunit",example="生产_营销_十分到家_USS2.0_basicdata_MYSQL_从(10.68.70.37)")
# print(sql)
# print(text)
if len(text)==0:
print("辅材组没有正常的数据请维护")
else:
#根据辅材组id查出每个备件的id
for i in tqdm(text):
sfdj_am = 0
sql = f"select parts_id,parts_qty,unit from uss_basicdata.bas_aux_material_group_item where group_id ={i[0]}"
# print(sql)
# uat_DB = DB(sql=sql, DB={'ip': "10.74.149.251", 'port': 6033, 'usr': "rw_uss2_uat", 'pwd': "rw_uss2_uat_123#"},
# database="uss_basicdata")
# statu,text = uat_DB.select()
statu, text = DB_sql(sql=sql, database="uss_payunit",
example="生产_营销_十分到家_USS2.0_basicdata_MYSQL_从(10.68.70.37)")
for k in text:
# print(k)
#根据备件id查询备件批发价格
sql = f"select sale_price from uss_parts.sp_parts_price where parts_id={k[0]} order by creation_date desc limit 1"
# uat_DB = DB(sql=sql, DB={'ip': "10.74.149.251", 'port': 6033, 'usr': "rw_uss2_uat", 'pwd': "rw_uss2_uat_123#"},
# database="uss_basicdata")
# statu, text = uat_DB.select()
statu, text = DB_sql(sql=sql, database="uss_parts",
example="生产_营销_十分到家_USS2.0_parts_MYSQL_从(10.68.70.35)")
#根据批发价算出辅材总价
# if k[2]=="分米":
# num=k[1]/10
# elif k[2]=="厘米":
# num = k[1] / 100
# elif k[2]=="公分":
# num = k[1] / 100
# else:
# num=k[1]
# print(sql)
# print(sfdj_am,text,k)
#每个(备件批发价*数量)
sfdj_am=sfdj_am+ float(text[0][0]) * float(k[1])
#查询十分到家分账金额错误或者辅材维护了,特设费用没有维护的数据
# print(i[10])
sql=f"select * from uss_payunit.tcl_special_pardon_charge where charge_name='{i[10]}' and usable=0 and channel_id !=0"
# uat_DB=DB(sql=sql,DB={'ip': "10.74.149.251", 'port': 6033, 'usr': "rw_uss2_uat", 'pwd': "rw_uss2_uat_123#"},database="uss_payunit")
# statu,text=uat_DB.select()
statu, text = DB_sql(sql=sql, database="uss_payunit",
example="生产_营销_十分到家_USS2.0_basicdata_MYSQL_从(10.68.70.37)")
if statu:
for p in text:
sfdj_am=f"{float(sfdj_am):.2f}"
# print(sql)
if float(sfdj_am)!=float(p[27]):
error_list.add(f"{i[10]}数据维护错误,辅材金额为:{sfdj_am},特设费用十分到家维护为:{p[27]}")
# else:
# print(f"{i[10]},辅材金额为:{sfdj_am},特设费用十分到家维护为:{p[27]}数据一致")

else:
error_list.add(f"费用名称为:'{i[10]}' ,特设费用没有维护请维护{text}")
# print(f"费用名称为:'{i[10]}' ,特设费用没有维护请维护{text}")
# print(f"{i[1]}数据维护错误,辅材金额为:{sfdj_am},特设费用十分到家维护为:{p[27]}")

# print("开始校验:特设费用维护了,辅材没维护的数据")
#查询特设费用维护了,辅材没维护的数据
sql=f"select * from uss_payunit.tcl_special_pardon_charge where show_scene_type=1 and usable=0 and channel_id !=0"
# uat_DB=DB(sql=sql,DB={'ip': "10.74.149.251", 'port': 6033, 'usr': "rw_uss2_uat", 'pwd': "rw_uss2_uat_123#"},database="uss_payunit")
# statu,text=uat_DB.select()
statu,text=DB_sql(sql=sql,database="uss_payunit",example="生产_营销_十分到家_USS2.0_basicdata_MYSQL_从(10.68.70.37)")
if len(text)==0:
print("特设费用没有查到数据请检查是否导入成功,及导入标识是否正确")

else:
print(f"-------------总计获取到{len(text)}条特设费用,下面是校验结果:-----------------------")
sql = f"select group_name from uss_basicdata.bas_aux_material_group where group_status =1"
# uat_DB = DB(sql=sql, DB={'ip': "10.74.149.251", 'port': 6033, 'usr': "rw_uss2_uat", 'pwd': "rw_uss2_uat_123#"},
# database="uss_basicdata")
# statu1, text1 = uat_DB.select()
statu1, text1 = DB_sql(sql=sql, database="uss_payunit", example="生产_营销_十分到家_USS2.0_basicdata_MYSQL_从(10.68.70.37)")
group_name_list=[]
for r in text1:
group_name_list.append(r[0])
l=0
for u in tqdm(text):
if statu1:
if u[9] not in group_name_list:
# print(group_name_list)
error_list.add(f"{u[9]}特设费用维护了,但是辅材组没维护")
# print(f"{u[9]}特设费用维护了,但是辅材组没维护")
else:
print(f"{u[9]}查询失败失败原因为{text1}")
l+=1
for i in error_list:
print(i)
print("代码执行结束")

标签:--,text,DB,uat,校验,uss,sql,print,辅材
From: https://www.cnblogs.com/xieweiwen/p/18121241

相关文章

  • 软件质量一级属性科技论文(1)
    软件质量概述的六大属性摘要:软件属性包括功能属性和质量属性,但是,软件架构(及软件架构设计师)重点关注的是质量属性。文章从常见的六个质量属性,即可用性、可修改性、性能、安全性、可测试性、易用性写起,使读者对其有初步的认识和了解。关键词:软件;质量属性;体系架构;Sixattributeso......
  • qt之函数重定义
    错误信息:/usr/bin/ld:rknnthread.o:infunction`rknnThread::~rknnThread()':***/rknnthread.cpp:14:multipledefinitionof`rknnThread::~rknnThread()';rknnthread.o:/***/rknnthread.cpp:14:firstdefinedhere/usr/bin/ld:rknnthread.o:infunction`rk......
  • 接口校验易宝分账状态异常单据重推
    importtimefromUSSyunwei.binimport*fromUSSapi.Apiserverimport*fromUSSapi.bascidataimport*sql=f"""selectorder_no,sfdj_receipt_status,sfdj_failure_reason,site_receipt_status,site_failure_reason,site_id,receipt_status,failure_reason,......
  • P4677DeerInZooDivOne
    费用流#二分图最大权匹配#dp\(dp_{x,y}\)表示以\(x,y\)为对应点的最大同构子树的大小对于一对点,转移为将\(x,y\)中的点按照一定顺序对应那么问题转化为如何求一组匹配,使得两两匹配的权值尽可能大,即一个二分图最大权匹配,可以费用流解决然后枚举断开的每条边,对左右都做上......
  • P4148BitwiseAnd
    贪心考虑什么样的数的集合满足条件,发现同一个二进制位不能有超过\(2\)个数为\(1\)加入第\(i\)个数要满足的条件为:这个数与前面的每个数的\(and\)不为\(0\),即每次占用一个前面的数的\(1\),这个\(1\)必须是这个数仅有的这个数必须有\(n-i\)个仅有的\(1\),给后面......
  • P4143PyramidSequences
    数学等价于在一个\(n\timesm\)的矩形中做弹球,问经过的整点个数\(t=gcd(n,m)\),将\(n,m\)分别除掉\(t\),得到\(n',m'\)此时会有\(n'm'\)条线段,每条线段经过\(t\)个整点,另外还有\(\lceil\frac{(n'+1)(m'+1)}{2}\rceil\)个交点所以最终答案为\[\lceil\frac{(n......
  • P4139TriangleXor
    数学#计数#容斥分为\(4\)个部分计算上面的按奇偶性分类下面的按每一层容斥,即\(siz_i-2\timessiz_{i-1}+siz_{i-2}\)左右直接对每一块计算面积//Author:xiaruizeconstintINF=0x3f3f3f3f3f3f3f3f;constintMOD=1000000007;constintN=2e5+10;intn;......
  • P4112DrawingPointsDivOne
    二分具有单调性,考虑二分答案对于\(x\)考虑怎么\(check\),可以暴力的展开\(x\)次,再缩小\(x\)次,如果得到的结果和初始状态相同,那么就合法,否则不合法//Author:xiaruizeconstintN=1e3+10;intn;piia[N];bools[N][N],cur[N][N],mp[N][N];boolcheck(intx)......
  • 简单处理——二值化(钢笔画)和差分化(浮雕画)
    简单处理——二值化(钢笔画)和差分化(浮雕画)一、钢笔画和浮雕画​ RGB转灰度图就类似于英语学习中的abandon,在熟悉了YCbCr等颜色空间以及简单的图像反转之后,我们可以将目光移向今天的主题——二值化和差分化;​ 二值化概念比较简单,就是你给灰度在0—255的灰度图像设置一个阈值,大于......
  • 有关软件质量一级属性科技论文(3)
    五、可测试性可测试性战术的目标是允许在完成软件开发的一个增量后,轻松地对软件进行测试,从而发现错误。可测试性战术分析:1、管理输入/输出(1)记录/回放。指将捕获跨接口地信息,并将其作为测试专用软件地输入。(2)将接口与现实分离。将接口与实现分离允许实现的代替。(3)特化访问路......