Commit 728d918d authored by 肖 和生's avatar 肖 和生
Browse files

Merge remote-tracking branch 'remotes/origin/master' into core_flow

parents 0b0840ab 341aca50
......@@ -21,13 +21,17 @@ import sys
def test1():
#企业注册
execute_command("python runner_test.py tag id2232 debug mdm3")
def test2():
#企业审核
execute_command("python runner_test.py tag id2248 debug mdm3")
def test3():
#医院注册审核
execute_command("python runner_test.py tag id2249 debug mdm3")
def main():
try:
test1()
test2()
test3()
commonFuc().check_text_exist_result_text('succees', 'succees')
print('=================流程一结束=================')
except:
......
......@@ -63,13 +63,19 @@ def test1(type=1):
# 新增科室
execute_command(
"python runner_test.py tag id2263-19,id2263-20,id2263-21,id2263-22,id2263-23,id2263-24,id2263-25,id2263-26 debug sit")
# 一键导入所有产品
execute_command("python runner_test.py tag id2263-48 debug sit")
# 一键导入所有产品(2024.11.3因为产品数量多了导致导入时间太长,优化一下)
# execute_command("python runner_test.py tag id2263-48 debug sit")
#导入同步过来的新产品,防止因同步时间差导致新建的产品没有导入过来
for i in range(1, 6):
info = FileUtils().r_info8('b5_spd3_core_business_flow', "产品审核信息", 'message%s' % i)
hosGoodsId = info['hosGoodsId']
import_goods(hosGoodsId)
for i in range(1, 6):
info = FileUtils().r_info8('b5_spd3_core_business_flow', "产品审核信息", 'message%s' % i)
hosGoodsId = info['hosGoodsId']
check_import_goods(hosGoodsId)
# r_b8库房管理_库区设置_同步库房信息
execute_command("python runner_test.py tag id2263-221 debug sit")
......@@ -91,7 +97,33 @@ def test1(type=1):
# 科室管理-科室人员查询 设置科室负责人
execute_command("python runner_test.py tag id2263-219 debug sit")
def import_goods(hosGoodsId):
def import_goods(hosGoodsId):
print('导入新增的产品')
module = "b2_herp3_bs"
# 内网登录
username = commonFuc().get_business_data(module, "username")
# print('医院名称',username)
password = commonFuc().get_business_data(module, "password")
# print(username, password,'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa')
# 获取token和projectCode
token, projectCode, uxid, corpId, info = login_system(username, password).get_token()
url = commonFuc().get_api_add_port_url() + commonFuc().get_business_data(module, "importGoods_url")
# 获取请求头信息
headers = commonFuc().get_business_data(module, "json_headers2",
commonFuc().get_business_data(module, "json_contentType"), token,
commonFuc().get_business_data(module, "X-APP-CODE"))
# 获取院区id
branch_id = FileUtils().r_info(module, '院区新增')["branch_id"]
# #请求体
request_body = commonFuc().get_business_data(module, "payload35", hosGoodsId, branch_id)
print(request_body)
# # # 发送请求
result = commonFuc().http_post(url, request_body, headers)
print('导入新增的产品result', result)
def check_import_goods(hosGoodsId):
module = "b2_herp3_bs"
# 内网登录
username = commonFuc().get_business_data(module, "username")
......@@ -129,7 +161,8 @@ def import_goods(hosGoodsId):
# j=j+6
time.sleep(6)
# 再次调用一键导入产品
execute_command("python runner_test.py tag id2263-48 debug sit")
# execute_command("python runner_test.py tag id2263-48 debug sit")
import_goods(hosGoodsId)
else:
break
print('result', result)
......
......@@ -225,13 +225,14 @@ def check_mcms_dept_goods_info():
# 要验证的数据sql
for i in range(5):
sql1 = "select * from mcms_dept_goods_info order by create_time desc LIMIT 1 OFFSET %s;" % (
i)
print('===============第'+str(i)+'个产品信息================================')
sql1 = "select * from mcms_dept_goods_info where branch_id='%s' and dept_name='二级检验科002' order by HOS_GOODS_ID desc LIMIT 1 OFFSET %s;" % (
branch_id,i)
actual = check_mcms_pur_sql(sql1)
print('actual', actual)
id = get_id(
"select id from mcms_dept_goods_info order by create_time desc LIMIT 1 OFFSET %s;" % (
i))
"select id from mcms_dept_goods_info where branch_id='%s' and dept_name='二级检验科002' order by HOS_GOODS_ID desc LIMIT 1 OFFSET %s;" % (
branch_id,i))
hos_goods_id = get_id(
"select hos_goods_id from mcms_dept_goods_info where id='%s';" % (
id))
......@@ -466,16 +467,17 @@ def check_dept_leader():
def check_StockArea():
print('检查新增的库区数据')
branch_id = get_branch_id()
stock_name = get_branch_name() + "中心库房"
stock_id = get_stockId_fromdb(stock_name)
for i in range(4):
sql1 = "select * from mcms_stock_shelf order by shelf_code desc LIMIT 1 OFFSET %s;" % (
i)
sql1 = "select * from mcms_stock_shelf where stock_id ='%s' order by shelf_code desc LIMIT 1 OFFSET %s;" % (
stock_id,i)
actual = check_mcms_pur_sql(sql1)
print('actual', actual)
id = get_id(
"select id from mcms_stock_shelf order by shelf_code desc LIMIT 1 OFFSET %s;" % (i))
"select id from mcms_stock_shelf where stock_id ='%s' order by shelf_code desc LIMIT 1 OFFSET %s;" % (stock_id,i))
dept_name = FileUtils().r_info8("b2_herp3_bs", "所有科室name", 'message6')['deptid1']
stock_name = get_branch_name() + "中心库房"
stock_id = get_stockId_fromdb(stock_name)
shelf_code = get_stockAreaId_new_fromDb(dept_name, 1)
shelf_no="自动化测试"
create_time = get_create_time("select create_time from mcms_stock_shelf where id='%s';" % id)
......
......@@ -5,7 +5,7 @@ from air_case.public1.public1.public1 import updateUserLoginDefaultRange, get_li
get_branch_id, get_dept_buy_id, check_mcms_pur_plan_sql, get_hosid, get_id, \
get_stockAreaId_new_fromDb, get_login_user_uxid, get_expdt_date, get_create_time, get_process_list2, \
compare_text_index, check_mcms_pur_sql, check_source_id, get_mdm_goods_code1, get_goods_code1, get_supply_id, \
get_pkg_def_id, get_goods_gg, get_goods_name, get_login_user_uxid_bydb, process_tuple
get_pkg_def_id, get_goods_gg, get_goods_name, get_login_user_uxid_bydb, process_tuple, get_pkg_def_id2
from common.fileUtls import FileUtils
from common.run_cmd_script import execute_command
......@@ -175,7 +175,7 @@ def check_mcms_mcms_pur_plan_detail(id, type, planOrderNo):
get_id("select goods_code from mcms_pur_plan_detail where hos_goods_id='%s' and id='%s';" % (
hos_goods_id, id2)))
pkg_def_id = process_tuple(
get_id("select pkg_def_id from mcms_pkg where hos_goods_id='%s' LIMIT 1;" % hos_goods_id))
get_id("select pkg_def_id from mcms_dept_goods_info where hos_goods_id='%s' and dept_name='%s' and branch_id='%s' LIMIT 1;" % (hos_goods_id,dept_name2,branch_id)))
supply_id = process_tuple(
get_id("select supply_id from mcms_pur_plan_detail where hos_goods_id='%s' and id='%s';" % (
hos_goods_id, id2)))
......@@ -287,7 +287,7 @@ def check_mcms_mcms_pur_plan_detail(id, type, planOrderNo):
commonFuc().check_text_exist_result_text('succees', 'succees')
else:
print('error')
commonFuc().check_text_exist_result_text('error', 'succees')
commonFuc().check_text_exist_result_text('error'+str(type)+'采购订单子表', 'succees')
# 检查采购订单
def check_mcms_purchase(type=16):
branch_id = get_branch_id()
......@@ -517,7 +517,7 @@ def check_mcms_purchase_detail(id, type, OrderNo):
mdm_goods_code = get_mdm_goods_code1(hos_goods_id)
goods_code = get_goods_code1(hos_goods_id)
supply_id = get_supply_id(hos_goods_id)
pkg_def_id = get_pkg_def_id(hos_goods_id)
pkg_def_id = get_pkg_def_id2(hos_goods_id)
planBillId = process_tuple(
get_id(
"select pid from mcms_pur_plan_detail where hos_goods_id='%s' order by create_time desc LIMIT 1;" % (
......@@ -594,7 +594,6 @@ using(pro_path + r'//air_case/b5_spd3_core_business_flow/a_a5流程五_中心库
from a_a5流程五_中心库入库结算_正结算1_提交采购计划 import goods_move3,get_GoodsPkgDef, low_vaule_purchase_plan, approval_center, hight_vaule_purchase_plan,reagent_purchase_plan
def main():
try:
token, projectCode1, uxid1, corpId1, info1 = call_login(2)
updateUserLoginDefaultRange(get_listUserMgrRangePage(1)) # 设置登录账号默认权限是1级库
goods_move3(token)
......@@ -622,9 +621,10 @@ def main():
time.sleep(6)
check_mcms_purchase(66) # 检查试剂采购订单数据
commonFuc().check_text_exist_result_text('succees', 'succees')
except Exception as e:
# print('出现错误,请检查脚本或者数据')
print(f"发生错误: {e}")
print("发生异常:", str(e))
main()
\ No newline at end of file
try:
main()
except Exception as e:
print("发生异常:", str(e))
\ No newline at end of file
......@@ -101,7 +101,7 @@ def main2(hos_goods_id):
sterilize_flag,
multi_charge_flag,
use_frequency,
charge_unit FROM mcms_goods_info WHERE id ='%s';""" % hos_goods_id
charge_unit FROM mcms_goods_info WHERE id ='%s';""" % hos_goods_id
res_dict = get_dict_data_sql(cursor, sql)
print('res_dict', res_dict)
return res_dict
......@@ -248,7 +248,7 @@ def get_id(sql):
def get_DRId(branch_id, type):
db, cursor = get_sql_conn()
cursor.execute(
"select id from mcms_psi_dept where target_branch_id='%s' and bill_mode='%s' and stock_kind='CK_LYTK' order by CREATE_TIME desc LIMIT 1;"%(branch_id,type))
"select id from mcms_psi_dept where target_branch_id='%s' and bill_mode='%s' and stock_kind='CK_LYTK' order by CREATE_TIME desc LIMIT 1;"%(branch_id,type))
results = cursor.fetchone()
str1 = str(results)
new_str1 = str1.replace(',)', '')
......@@ -277,7 +277,7 @@ def get_DN_no(branch_id, type):
return new_str1
def get_login_user_uxid_bydb(username):
db, cursor = get_sql_conn()
cursor.execute("select id from sys_user where user_code='%s'" % username)
cursor.execute("select id from sys_user where user_code='%s';" % username)
results = cursor.fetchone()
str1 = str(results)
new_str1 = str1.replace(',)', '')
......@@ -310,7 +310,7 @@ def process_tuple(tuple1):
def get_mdm_goods_code1(hos_goods_id):
db, cursor = get_sql_conn()
cursor.execute("select mdm_goods_code from mcms_goods_info where id='%s'" % hos_goods_id)
cursor.execute("select mdm_goods_code from mcms_goods_info where id='%s';" % hos_goods_id)
results = cursor.fetchall()
cursor.close()
db.close()
......@@ -326,7 +326,7 @@ def get_source_id(branch_id,hos_goods_id):
def get_goods_code1(hos_goods_id):
db, cursor = get_sql_conn()
cursor.execute("select hos_goods_code from mcms_goods_info where id='%s'" % hos_goods_id)
cursor.execute("select hos_goods_code from mcms_goods_info where id='%s';" % hos_goods_id)
results = cursor.fetchall()
cursor.close()
db.close()
......@@ -335,7 +335,7 @@ def get_goods_code1(hos_goods_id):
def get_goods_name(hos_goods_id):
db, cursor = get_sql_conn()
cursor.execute("select goods_name from mcms_goods_info where id='%s'" % hos_goods_id)
cursor.execute("select goods_name from mcms_goods_info where id='%s';" % hos_goods_id)
results = cursor.fetchall()
cursor.close()
db.close()
......@@ -344,7 +344,7 @@ def get_goods_name(hos_goods_id):
def get_goods_gg(hos_goods_id):
db, cursor = get_sql_conn()
cursor.execute("select goods_spec from mcms_goods_info where id='%s'" % hos_goods_id)
cursor.execute("select goods_spec from mcms_goods_info where id='%s';" % hos_goods_id)
results = cursor.fetchall()
cursor.close()
db.close()
......@@ -353,7 +353,7 @@ def get_goods_gg(hos_goods_id):
def get_supply_id(hos_goods_id):
db, cursor = get_sql_conn()
cursor.execute("select id from supply_prov_hos_goods where hos_goods_id='%s'" % hos_goods_id)
cursor.execute("select id from supply_prov_hos_goods where hos_goods_id='%s';" % hos_goods_id)
results = cursor.fetchall()
cursor.close()
db.close()
......@@ -362,16 +362,22 @@ def get_supply_id(hos_goods_id):
def get_pkg_def_id(hos_goods_id):
db, cursor = get_sql_conn()
cursor.execute("select pkg_def_id from mcms_pkg where hos_goods_id='%s'" % hos_goods_id)
cursor.execute("select pkg_def_id from mcms_dept_goods_info where hos_goods_id='%s' LIMIT 1 OFFSET 1;" % hos_goods_id)
results = cursor.fetchone()
cursor.close()
db.close()
return process_tuple(results)
def get_pkg_def_id2(hos_goods_id):
db, cursor = get_sql_conn()
cursor.execute("select pkg_def_id from mcms_dept_goods_info where hos_goods_id='%s' LIMIT 1 OFFSET 3;" % hos_goods_id)
results = cursor.fetchone()
cursor.close()
db.close()
return process_tuple(results)
def get_pkg_def_Name(hos_goods_id):
db, cursor = get_sql_conn()
cursor.execute("select pkg_def_name from mcms_pkg where hos_goods_id='%s'" % hos_goods_id)
cursor.execute("select pkg_def_name from mcms_pkg where hos_goods_id='%s';" % hos_goods_id)
results = cursor.fetchone()
cursor.close()
db.close()
......@@ -380,7 +386,7 @@ def get_pkg_def_Name(hos_goods_id):
def get_goods_name1(hos_goods_id):
db, cursor = get_sql_conn()
cursor.execute("select goods_name from mcms_goods_info where id='%s'" % hos_goods_id)
cursor.execute("select goods_name from mcms_goods_info where id='%s';" % hos_goods_id)
results = cursor.fetchall()
cursor.close()
db.close()
......@@ -398,7 +404,7 @@ def get_mdm_goods_code(sql):
def get_goods_mfrs_id(hos_goods_id):
db, cursor = get_sql_conn()
cursor.execute("select goods_mfrs_id from mcms_goods_info where id='%s'" % hos_goods_id)
cursor.execute("select goods_mfrs_id from mcms_goods_info where id='%s';" % hos_goods_id)
results = cursor.fetchall()
cursor.close()
db.close()
......@@ -407,7 +413,7 @@ def get_goods_mfrs_id(hos_goods_id):
def check_source_id(hos_goods_id, source_id):
db, cursor = get_sql_conn()
cursor.execute("select hos_goods_id from mcms_pur_plan_detail where id='%s'" % (source_id))
cursor.execute("select hos_goods_id from mcms_pur_plan_detail where id='%s';" % (source_id))
results1 = cursor.fetchall()
cursor.close()
db.close()
......@@ -420,7 +426,7 @@ def check_source_id(hos_goods_id, source_id):
def check_batch_id(source_batch_id):
db, cursor = get_sql_conn()
cursor.execute("select id from mcms_hos_batch where id='%s'" % (source_batch_id))
cursor.execute("select id from mcms_hos_batch where id='%s';" % (source_batch_id))
results1 = cursor.fetchall()
cursor.close()
db.close()
......@@ -432,7 +438,7 @@ def check_batch_id(source_batch_id):
def check_distr_detail_id(source_distr_detail_id):
db, cursor = get_sql_conn()
cursor.execute("select id from hdi_distr_detail where id='%s'" % (source_distr_detail_id))
cursor.execute("select id from hdi_distr_detail where id='%s';" % (source_distr_detail_id))
results1 = cursor.fetchall()
cursor.close()
db.close()
......@@ -443,7 +449,7 @@ def check_distr_detail_id(source_distr_detail_id):
return False
def check_barcode_id(barcode_id):
db, cursor = get_sql_conn()
cursor.execute("select id from hdi_barcode where id='%s'" % (barcode_id))
cursor.execute("select id from hdi_barcode where id='%s';" % (barcode_id))
results1 = cursor.fetchall()
cursor.close()
db.close()
......@@ -454,7 +460,7 @@ def check_barcode_id(barcode_id):
return False
def check_un_balance_id(un_balance_id):
db, cursor = get_sql_conn()
cursor.execute("select id from mcms_out_un_balance where id='%s'" % (un_balance_id))
cursor.execute("select id from mcms_out_un_balance where id='%s';" % (un_balance_id))
results1 = cursor.fetchall()
cursor.close()
db.close()
......
企业信息:
e_id: CR202411050123
cname: 国药集团公司PmXHC
e_id: CR202411080066
cname: 国药集团公司Qaglp
医院信息:
h_id: 湖南省人民医院C4@WF
h_name: 湖南省人民医院C4@WF
h_id: 湖南省人民医院pFgNk
h_name: 湖南省人民医院pFgNk
产品审核信息:
MSPid: MSP2411050026_1
MSPid: MSP2411070021_1
hosId: h0347
hosGoodsId: h034700005854
provGoodsid: provGood-99223165
goodsAuditBillId: MSP2411050026
targetId: MSP2411050026_1
hosGoodsId: h034700005897
provGoodsid: provGood-99223209
goodsAuditBillId: MSP2411070021
targetId: MSP2411070021_1
......@@ -2,45 +2,45 @@
list_a:
- &id001
settleMonth: '202411'
pid: OBh0347202411010016
hosGoodsId: h034700005761
goodsCode: '00005761'
goodsName: 一次性注射器_低值d%*JM
pid: OBh0347202411070002
hosGoodsId: h034700005894
goodsCode: '00005894'
goodsName: 一次性注射器_低值muQJ*
goodsGg: G-31891
mfrsName: 德国歌德公司 Geuder AG
unit: 支
leftSettleAmount: -19999.98
leftSettleAmount: 19999.98
batchCode:
kindName:
factName:
cacheleftAmount: 19999.98
purMode: 10
waitInvoicingNum: -200.0
waitInvoicingNum: 200.0
invoicingPrice: 99.9999
normalContractId:
normalContract: '1'
detailList:
- pid: OBh0347202411010016
- pid: OBh0347202411070002
settleMonth: '202411'
accountDate: '2024-11-01'
hosGoodsId: h034700005761
accountDate: '2024-11-07'
hosGoodsId: h034700005894
batchCode: '333'
distrDetailId: '03843717'
distrId: PSh0347202411010028
distrOrderNo: PSh0347202411010028
distrDetailId: '03843889'
distrId: PSh0347202411070009
distrOrderNo: PSh0347202411070009
settlePrice: 99.9999
maxSettleQty: -100.0
maxSettleAmount: -9999.99
curSettleQty: -100.0
curSettleAmount: -9999.99
leftSettleQty: -100.0
leftSettleAmount: -9999.99
maxSettleQty: 100.0
maxSettleAmount: 9999.99
curSettleQty: 100.0
curSettleAmount: 9999.99
leftSettleQty: 100.0
leftSettleAmount: 9999.99
hosId: h0347
provId: p1e4bc
branchId: h0347-3753
balanceDetId: OBh0347202411010016-000001
provId: p1e509
branchId: h0347-3783
balanceDetId: OBh0347202411070002-000001
purMode: 10
barCode: 013753000005761011241101172505101033321UT241101000428
barCode: 013783000005894011241107172505161033321UT241107000206
batchId:
price:
maxQty:
......@@ -54,34 +54,34 @@
onlineKind: '10'
kindName:
normalContractId:
goodsCode: '00005761'
goodsName: 一次性注射器_低值d%*JM
goodsCode: '00005894'
goodsName: 一次性注射器_低值muQJ*
goodsGg: G-31891
mfrsName: 德国歌德公司 Geuder AG
unit: 支
invoicePrice: 99.9999
viewId: 202411OBh0347202411010016h034700005761
- pid: OBh0347202411010016
viewId: 202411OBh0347202411070002h034700005894
- pid: OBh0347202411070002
settleMonth: '202411'
accountDate: '2024-11-01'
hosGoodsId: h034700005761
accountDate: '2024-11-07'
hosGoodsId: h034700005894
batchCode: '333'
distrDetailId: '03843717'
distrId: PSh0347202411010028
distrOrderNo: PSh0347202411010028
distrDetailId: '03843889'
distrId: PSh0347202411070009
distrOrderNo: PSh0347202411070009
settlePrice: 99.9999
maxSettleQty: -100.0
maxSettleAmount: -9999.99
curSettleQty: -100.0
curSettleAmount: -9999.99
leftSettleQty: -100.0
leftSettleAmount: -9999.99
maxSettleQty: 100.0
maxSettleAmount: 9999.99
curSettleQty: 100.0
curSettleAmount: 9999.99
leftSettleQty: 100.0
leftSettleAmount: 9999.99
hosId: h0347
provId: p1e4bc
branchId: h0347-3753
balanceDetId: OBh0347202411010016-000002
provId: p1e509
branchId: h0347-3783
balanceDetId: OBh0347202411070002-000002
purMode: 10
barCode: 013753000005761011241101172505101033321UT241101000420
barCode: 013783000005894011241107172505161033321UT241107000297
batchId:
price:
maxQty:
......@@ -95,17 +95,17 @@
onlineKind: '10'
kindName:
normalContractId:
goodsCode: '00005761'
goodsName: 一次性注射器_低值d%*JM
goodsCode: '00005894'
goodsName: 一次性注射器_低值muQJ*
goodsGg: G-31891
mfrsName: 德国歌德公司 Geuder AG
unit: 支
invoicePrice: 99.9999
viewId: 202411OBh0347202411010016h034700005761
unique: 202411OBh0347202411010016h034700005761
viewId: 202411OBh0347202411070002h034700005894
unique: 202411OBh0347202411070002h034700005894
invoicePrice:
onlineKind: '10'
viewId: 202411OBh0347202411010016h034700005761
viewId: 202411OBh0347202411070002h034700005894
list_b:
- *id001
list_c:
......
院区新增:
branch_id: h0347-3766
branch_name: 东土城路院区Tr0*&
branch_id: h0347-3783
branch_name: 东土城路院区#!H7P
科室信息:
dept2_id: ada56899acf048d8bf2173b34cd29ece
dept2_id: de8825888c3d4eaebec0b8c82c94bdae
dept2_name: 二级检验科002
用户名信息:
username1: 自动化测试DTfIQ
username2: 自动化测试DTfIQ
username1: 自动化测试Mq4s&
username2: 自动化测试Mq4s&
一级科室信息:
dept1_id: 8dbbd8d215ae489792079befc60ab904
dept1_id: 4cca3c17b3bf4caa9d6181f671798822
dept1_name: 设备科001
所有科室id:
deptid1: 8dbbd8d215ae489792079befc60ab904
deptid2: ada56899acf048d8bf2173b34cd29ece
deptid3: 868255a47d62495b9ec6c70c9c70ab8d
deptid4: 8d37bfa8c8584fe897659cdfe436e8d3
deptid1: 4cca3c17b3bf4caa9d6181f671798822
deptid2: de8825888c3d4eaebec0b8c82c94bdae
deptid3: 66061777414746d19934f7325d78329c
deptid4: 7c5605f0177646478006c826510a71de
所有科室name:
deptid1: 设备科001
deptid2: 二级检验科002
......
shelfinfo:
shelfid: 7e2d4d3dc3094d5baf949c0b2c413f99
shelfCode: areah03472662
shelfid: 3de0e007c1bc45b5abee30678d0cf436
shelfCode: areah03472733
areaName: 自动化测试
供货关系申请2:
e_corpId: p1e4f6
e_corpId: p1e509
h_corpId: h0347
e_username: 国药集团公司Mmh4l
e_username: 国药集团公司NHDet
h_name: test_1
产品审核信息:
MSPid: MSP2411050022_1
MSPid: MSP2411070017_1
hosId: h0347
hosGoodsId: h034700005850
provGoodsid: provGood-99223161
goodsAuditBillId: MSP2411050022
targetId: MSP2411050022_1
hosGoodsId: h034700005893
provGoodsid: provGood-99223205
goodsAuditBillId: MSP2411070017
targetId: MSP2411070017_1
低值配送单号:
distrBillId1: PSh0347202411010051
distrBillId2: PSh0347202411010051
distrBillId1: PSh0347202411070009
distrBillId2: PSh0347202411070009
高值配送单号:
distrBillId1: PSh0347202411010052
distrBillId2: PSh0347202411010052
distrBillId1: PSh0347202411070010
distrBillId2: PSh0347202411070010
试剂配送单号:
distrBillId1: PSh0347202411010053
distrBillId2: PSh0347202411010053
高值跟台配送单号:
distrBillId1: PSh0347202411010076
distrBillId2: PSh0347202411010076
distrBillId1: PSh0347202411070011
distrBillId2: PSh0347202411070011
采购计划单号高值:
orderNo1: PLAN2024110130552
orderNo2: PLAN2024110130552
orderNo1: PLAN2024110734456
orderNo2: PLAN2024110734456
采购计划单号试剂:
orderNo1: PLAN2024110130551
orderNo2: PLAN2024110130551
orderNo1: PLAN2024110734457
orderNo2: PLAN2024110734457
Supports Markdown
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