diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..4522504137c7a321b6ede2383b2c04e8312599c9
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,8 @@
+.idea
+*.iml
+.DS_Store
+.project
+target
+*.pyc
+log
+.pyc
\ No newline at end of file
diff --git a/.idea/.gitignore b/.idea/.gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..13566b81b018ad684f3a35fee301741b2734c8f4
--- /dev/null
+++ b/.idea/.gitignore
@@ -0,0 +1,8 @@
+# Default ignored files
+/shelf/
+/workspace.xml
+# Editor-based HTTP Client requests
+/httpRequests/
+# Datasource local storage ignored files
+/dataSources/
+/dataSources.local.xml
diff --git a/.idea/autotest-airtest-web-cmdc.iml b/.idea/autotest-airtest-web-cmdc.iml
new file mode 100644
index 0000000000000000000000000000000000000000..d0876a78d06ac03b5d78c8dcdb95570281c6f1d6
--- /dev/null
+++ b/.idea/autotest-airtest-web-cmdc.iml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/inspectionProfiles/Project_Default.xml b/.idea/inspectionProfiles/Project_Default.xml
new file mode 100644
index 0000000000000000000000000000000000000000..f0ffb67318cd6143ca7250f2d54823060280723c
--- /dev/null
+++ b/.idea/inspectionProfiles/Project_Default.xml
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/inspectionProfiles/profiles_settings.xml b/.idea/inspectionProfiles/profiles_settings.xml
new file mode 100644
index 0000000000000000000000000000000000000000..105ce2da2d6447d11dfe32bfb846c3d5b199fc99
--- /dev/null
+++ b/.idea/inspectionProfiles/profiles_settings.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
new file mode 100644
index 0000000000000000000000000000000000000000..7f44e8eb4363a25e3009df952212a46ee4f8e6f5
--- /dev/null
+++ b/.idea/misc.xml
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/.idea/modules.xml b/.idea/modules.xml
new file mode 100644
index 0000000000000000000000000000000000000000..6f13432a078912dacfe232dfa9eabf0471264f71
--- /dev/null
+++ b/.idea/modules.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
new file mode 100644
index 0000000000000000000000000000000000000000..94a25f7f4cb416c083d265558da75d457237d671
--- /dev/null
+++ b/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git "a/air_case/cmdc-qos/\345\277\253\351\200\237\344\270\213\345\215\225\346\235\203\351\231\220_\345\220\246.air/\345\277\253\351\200\237\344\270\213\345\215\225\346\235\203\351\231\220_\345\220\246.py" "b/air_case/cmdc-qos/\345\277\253\351\200\237\344\270\213\345\215\225\346\235\203\351\231\220_\345\220\246.air/\345\277\253\351\200\237\344\270\213\345\215\225\346\235\203\351\231\220_\345\220\246.py"
new file mode 100644
index 0000000000000000000000000000000000000000..a4856eb59844c17796439576d93d905daf7aa389
--- /dev/null
+++ "b/air_case/cmdc-qos/\345\277\253\351\200\237\344\270\213\345\215\225\346\235\203\351\231\220_\345\220\246.air/\345\277\253\351\200\237\344\270\213\345\215\225\346\235\203\351\231\220_\345\220\246.py"
@@ -0,0 +1,70 @@
+# -*- encoding=utf8 -*-
+__author__ = "liguangyu"
+
+"""
+case_tag:cmdc_api,cmdc站点无法快速下单,2250,2250-1,sit,bs
+主数据平台:多采商城快速下单权限判定接口
+"""
+
+from common.common_func import commonFuc
+from air_case.cmdc_login.多采商城登录.多采商城登录 import CmdcMaiiLogin
+import requests
+import json
+
+module = "cmdc-qos"
+
+# 第一步登录多采商城获取cmdc_access_token
+# 获取登录所需账号密码
+username = commonFuc().get_business_data(module, "username")
+password = commonFuc().get_business_data(module, "password")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcMaiiLogin(username, password).get_token()
+
+headers = commonFuc().get_business_data(module, "json_headers", cmdc_access_token)
+
+
+# 第二步查询站点对应的companyId
+url1 = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url1")
+
+request_body1 = commonFuc().get_business_data(module, "payload1")
+
+result1 = requests.post(url1, json=request_body1, headers=headers)
+result1 = json.loads(result1.text)
+
+"""
+ 场景:站点不拥有快速下单权限入口
+ 用例名称:快速下单权限判定接口-站点满足条件显示快速下单入口
+ 输入:companyId
+ 输出:"quickOrderSign": 0
+"""
+
+# 获取站点对应的快速下单标识字段quickOrderSign
+result1 = result1["data"]
+
+for i in result1:
+ quick_order_sign = i["quickOrderSign"]
+ # 第三步验证站点是否具有快速下单权限
+ url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url")
+ if quick_order_sign == 0:
+ # 获取companyId
+ company_id = i["companyId"]
+ request_body = commonFuc().get_business_data(module, "payload", company_id)
+ result = requests.get(url, params=request_body)
+ result = json.loads(result.text)
+ # 获取预期结果
+ check_dict = commonFuc().get_business_data(module, "checkDict2")
+ # 断言实际结果中是否包含预期结果的内容
+ commonFuc().check_result(check_dict, result)
+ break
+ else:
+ # 获取companyId
+ company_id = i["companyId"]
+ request_body = commonFuc().get_business_data(module, "payload", company_id)
+ result = requests.get(url, params=request_body)
+ result = json.loads(result.text)
+ # 获取预期结果
+ check_dict = commonFuc().get_business_data(module, "checkDict1")
+ # 断言实际结果中是否包含预期结果的内容
+ commonFuc().check_result(check_dict, result)
+ break
+
diff --git "a/air_case/cmdc-qos/\345\277\253\351\200\237\344\270\213\345\215\225\346\235\203\351\231\220_\350\203\275.air/\345\277\253\351\200\237\344\270\213\345\215\225\346\235\203\351\231\220_\350\203\275.py" "b/air_case/cmdc-qos/\345\277\253\351\200\237\344\270\213\345\215\225\346\235\203\351\231\220_\350\203\275.air/\345\277\253\351\200\237\344\270\213\345\215\225\346\235\203\351\231\220_\350\203\275.py"
new file mode 100644
index 0000000000000000000000000000000000000000..249ae748f0e79cef1e4ba2c229f4757207d10bc6
--- /dev/null
+++ "b/air_case/cmdc-qos/\345\277\253\351\200\237\344\270\213\345\215\225\346\235\203\351\231\220_\350\203\275.air/\345\277\253\351\200\237\344\270\213\345\215\225\346\235\203\351\231\220_\350\203\275.py"
@@ -0,0 +1,63 @@
+# -*- encoding=utf8 -*-
+__author__ = "liguangyu"
+
+"""
+case_tag:cmdc_api,cmdc站点满足快速下单,2250,2250-2,sit,bs
+主数据平台:多采商城快速下单权限判定接口
+"""
+
+from common.common_func import commonFuc
+from air_case.cmdc_login.多采商城登录.多采商城登录 import CmdcMaiiLogin
+import requests
+import json
+
+module = "cmdc-qos"
+
+# 第一步登录多采商城获取cmdc_access_token
+# 获取登录所需账号密码
+username = commonFuc().get_business_data(module, "username")
+password = commonFuc().get_business_data(module, "password")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcMaiiLogin(username, password).get_token()
+headers = commonFuc().get_business_data(module, "json_headers", cmdc_access_token)
+
+# 第二步查询站点对应的companyId
+url1 = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url1")
+request_body1 = commonFuc().get_business_data(module, "payload1")
+result1 = requests.post(url1, json=request_body1, headers=headers)
+result1 = json.loads(result1.text)
+# print(result1)
+# 获取站点对应的快速下单标识字段quickOrderSign
+quick_order_sign = result1["data"][1]["quickOrderSign"]
+
+"""
+ 场景:站点拥有快速下单权限入口
+ 用例名称:快速下单权限判定接口-站点满足条件显示快速下单入口
+ 输入:companyId
+ 输出:"quickOrderSign": 1
+"""
+
+# 第三步验证站点是否具有快速下单权限
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url")
+
+if quick_order_sign == 1:
+ # 获取companyId
+ company_id = result1["data"][1]["companyId"]
+ request_body = commonFuc().get_business_data(module, "payload", company_id)
+ result = requests.get(url, params=request_body)
+ result = json.loads(result.text)
+ # 获取预期结果
+ check_dict = commonFuc().get_business_data(module, "checkDict1")
+ # 断言实际结果中是否包含预期结果的内容
+ commonFuc().check_result(check_dict, result)
+else:
+ # 获取companyId
+ company_id = result1["data"][1]["companyId"]
+ request_body = commonFuc().get_business_data(module, "payload", company_id)
+ result = requests.get(url, params=request_body)
+ result = json.loads(result.text)
+ # 获取预期结果
+ check_dict = commonFuc().get_business_data(module, "checkDict2")
+ # 断言实际结果中是否包含预期结果的内容
+ commonFuc().check_result(check_dict, result)
+
diff --git "a/air_case/cmdc_buyercar_list/\346\226\260\345\242\236\344\270\215\345\255\230\345\234\250\345\225\206\345\223\201\350\207\263\350\264\255\347\211\251\350\275\246\345\210\227\350\241\250.air/\346\226\260\345\242\236\344\270\215\345\255\230\345\234\250\345\225\206\345\223\201\350\207\263\350\264\255\347\211\251\350\275\246\345\210\227\350\241\250.py" "b/air_case/cmdc_buyercar_list/\346\226\260\345\242\236\344\270\215\345\255\230\345\234\250\345\225\206\345\223\201\350\207\263\350\264\255\347\211\251\350\275\246\345\210\227\350\241\250.air/\346\226\260\345\242\236\344\270\215\345\255\230\345\234\250\345\225\206\345\223\201\350\207\263\350\264\255\347\211\251\350\275\246\345\210\227\350\241\250.py"
new file mode 100644
index 0000000000000000000000000000000000000000..4f5201f57a49abbb2d53a6769ec82146239cb036
--- /dev/null
+++ "b/air_case/cmdc_buyercar_list/\346\226\260\345\242\236\344\270\215\345\255\230\345\234\250\345\225\206\345\223\201\350\207\263\350\264\255\347\211\251\350\275\246\345\210\227\350\241\250.air/\346\226\260\345\242\236\344\270\215\345\255\230\345\234\250\345\225\206\345\223\201\350\207\263\350\264\255\347\211\251\350\275\246\345\210\227\350\241\250.py"
@@ -0,0 +1,38 @@
+# -*- encoding=utf8 -*-
+__author__ = "liguangyu"
+
+"""
+case_tag:cmdc_api,cmdc新增不存在的商品至购物车列表,2252,2252-1,sit,bs
+主数据平台:多采商城购物车列表新增商品接口
+"""
+
+from common.common_func import commonFuc
+from air_case.cmdc_login.多采商城登录.多采商城登录 import CmdcMaiiLogin
+import requests
+import json
+
+
+module = "cmdc_buyercar_list"
+
+
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url2")
+# 获取登录所需账号密码
+username = commonFuc().get_business_data(module, "username")
+password = commonFuc().get_business_data(module, "password")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcMaiiLogin(username, password).get_token()
+headers = commonFuc().get_business_data(module, "json_headers4", cmdc_access_token)
+request_body = commonFuc().get_business_data(module, "payload4")
+"""
+ 场景:新增不存在的商品至购物车列表
+ 用例名称:新增不存在的商品至购物车列表
+ 输出:{"success":false,"code":"1078","message":"该商品不存在,加入购物车失败","data":null,"freshToken":null}
+"""
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+# 获取预期结果
+check_dict = commonFuc().get_business_data(module, "checkDict4")
+# 断言实际结果中是否包含预期结果的内容
+commonFuc().check_result(check_dict, result)
+
diff --git "a/air_case/cmdc_buyercar_list/\346\226\260\345\242\236\345\267\262\345\244\261\346\225\210\345\225\206\345\223\201\350\207\263\350\264\255\347\211\251\350\275\246\345\210\227\350\241\250.air/\346\226\260\345\242\236\345\267\262\345\244\261\346\225\210\345\225\206\345\223\201\350\207\263\350\264\255\347\211\251\350\275\246\345\210\227\350\241\250.py" "b/air_case/cmdc_buyercar_list/\346\226\260\345\242\236\345\267\262\345\244\261\346\225\210\345\225\206\345\223\201\350\207\263\350\264\255\347\211\251\350\275\246\345\210\227\350\241\250.air/\346\226\260\345\242\236\345\267\262\345\244\261\346\225\210\345\225\206\345\223\201\350\207\263\350\264\255\347\211\251\350\275\246\345\210\227\350\241\250.py"
new file mode 100644
index 0000000000000000000000000000000000000000..3f483ae42350474a207fc5be438e0e05ddd1c03c
--- /dev/null
+++ "b/air_case/cmdc_buyercar_list/\346\226\260\345\242\236\345\267\262\345\244\261\346\225\210\345\225\206\345\223\201\350\207\263\350\264\255\347\211\251\350\275\246\345\210\227\350\241\250.air/\346\226\260\345\242\236\345\267\262\345\244\261\346\225\210\345\225\206\345\223\201\350\207\263\350\264\255\347\211\251\350\275\246\345\210\227\350\241\250.py"
@@ -0,0 +1,57 @@
+# -*- encoding=utf8 -*-
+__author__ = "liguangyu"
+
+"""
+case_tag:cmdc_api,cmdc新增已失效的商品至购物车列表,2252,2252-2,sit,bs
+主数据平台:多采商城购物车列表新增商品接口
+"""
+
+from common.common_func import commonFuc
+from air_case.cmdc_login.多采商城登录.多采商城登录 import CmdcMaiiLogin
+from air_case.cmdc_login.后台管理系统登录.后台管理系统登录 import CmdcDoLogin
+import requests
+import json
+
+module = "cmdc_buyercar_list"
+
+# 步骤一登录后台管理系统查询已失效商品列表获取已下架商品信息
+# 获取登录后台管理系统所需账号密码
+username = commonFuc().get_business_data(module, "username2")
+password = commonFuc().get_business_data(module, "password2")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcDoLogin(username, password).get_token()
+headers = commonFuc().get_business_data(module, "json_headers", cmdc_access_token)
+# 获取已失效商品
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url50")
+request_body = commonFuc().get_business_data(module, "payload50")
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+# 获取商品信息
+product_id = result["data"]["list"][0]["productId"]
+price = result["data"]["list"][0]["referencePrice"]
+filiale_code = result["data"]["list"][0]["filialeCode"]
+
+# 第二步登录多采商城添加商品至购物车列表
+# 获取登录多采商城所需账号密码
+username = commonFuc().get_business_data(module, "username")
+password = commonFuc().get_business_data(module, "password")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcMaiiLogin(username, password).get_token()
+headers = commonFuc().get_business_data(module, "json_headers5", cmdc_access_token)
+# 添加商品至购物车
+url1 = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url2")
+request_body = commonFuc().get_business_data(module, "payload5", product_id, price, filiale_code)
+
+"""
+ 场景:新增已失效的商品至购物车列表
+ 用例名称:新增已失效的商品至购物车列表
+ 输出:{"success":false,"code":"addBuyerCartFail","message":"商品为失效状态,不可加入购物车","data":null,"freshToken":null}
+"""
+# 发送请求
+result = requests.post(url1, json=request_body, headers=headers)
+result = json.loads(result.content)
+# 获取预期结果
+check_dict = commonFuc().get_business_data(module, "checkDict5")
+# 断言实际结果中是否包含预期结果的内容
+commonFuc().check_result(check_dict, result)
diff --git "a/air_case/cmdc_buyercar_list/\346\226\260\345\242\236\345\267\262\346\216\247\351\224\200\345\225\206\345\223\201\350\207\263\350\264\255\347\211\251\350\275\246\345\210\227\350\241\250.air/\346\226\260\345\242\236\345\267\262\346\216\247\351\224\200\345\225\206\345\223\201\350\207\263\350\264\255\347\211\251\350\275\246\345\210\227\350\241\250.py" "b/air_case/cmdc_buyercar_list/\346\226\260\345\242\236\345\267\262\346\216\247\351\224\200\345\225\206\345\223\201\350\207\263\350\264\255\347\211\251\350\275\246\345\210\227\350\241\250.air/\346\226\260\345\242\236\345\267\262\346\216\247\351\224\200\345\225\206\345\223\201\350\207\263\350\264\255\347\211\251\350\275\246\345\210\227\350\241\250.py"
new file mode 100644
index 0000000000000000000000000000000000000000..425a759baab3def04c3ff4ef777a7d3cfacf5b37
--- /dev/null
+++ "b/air_case/cmdc_buyercar_list/\346\226\260\345\242\236\345\267\262\346\216\247\351\224\200\345\225\206\345\223\201\350\207\263\350\264\255\347\211\251\350\275\246\345\210\227\350\241\250.air/\346\226\260\345\242\236\345\267\262\346\216\247\351\224\200\345\225\206\345\223\201\350\207\263\350\264\255\347\211\251\350\275\246\345\210\227\350\241\250.py"
@@ -0,0 +1,55 @@
+# -*- encoding=utf8 -*-
+__author__ = "liguangyu"
+
+"""
+case_tag:cmdc_api,cmdc新增控销的商品至购物车列表,2252,2252-3,sit,bs
+主数据平台:多采商城购物车列表新增商品接口
+"""
+
+from common.common_func import commonFuc
+from air_case.cmdc_login.多采商城登录.多采商城登录 import CmdcMaiiLogin
+from air_case.cmdc_login.后台管理系统登录.后台管理系统登录 import CmdcDoLogin
+import requests
+import json
+
+module = "cmdc_buyercar_list"
+
+# 步骤一登录后台管理系统查询控销商品列表获取已下架商品信息
+# 获取登录后台管理系统所需账号密码
+username = commonFuc().get_business_data(module, "username2")
+password = commonFuc().get_business_data(module, "password2")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcDoLogin(username, password).get_token()
+headers = commonFuc().get_business_data(module, "json_headers", cmdc_access_token)
+# 查询控销商品列表获取已下架商品信息
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url70")
+request_body = commonFuc().get_business_data(module, "payload70")
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+if result["data"]["list"][0]["isControlSales"] == 1:
+ product_id = result["data"]["list"][0]["productId"]
+ price = result["data"]["list"][0]["referencePrice"]
+ filiale_code = result["data"]["list"][0]["filialeCode"]
+ # 第二步登录多采商城添加商品至购物车列表
+ # 获取登录多采商城所需账号密码
+ username = commonFuc().get_business_data(module, "username")
+ password = commonFuc().get_business_data(module, "password")
+ # 获取登录后Cmdc_access_token
+ cmdc_access_token = CmdcMaiiLogin(username, password).get_token()
+ headers = commonFuc().get_business_data(module, "json_headers7", cmdc_access_token)
+ url1 = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url2")
+ request_body = commonFuc().get_business_data(module, "payload7", product_id, price, filiale_code)
+ """
+ 场景:新增控销的商品至购物车列表
+ 用例名称:新增控销的商品至购物车列表
+ 输出:{"success":false,"code":"addBuyerCartFail","message":"商品为控销商品,不可加入购物车","data":null,"freshToken":null}
+ """
+ # 发送请求
+ result1 = requests.post(url1, json=request_body, headers=headers)
+ result1 = json.loads(result1.content)
+ # 获取预期结果
+ check_dict = commonFuc().get_business_data(module, "checkDict7")
+ print(check_dict)
+ # 断言实际结果中是否包含预期结果的内容
+ commonFuc().check_result(check_dict, result1)
diff --git "a/air_case/cmdc_buyercar_list/\346\226\260\345\242\236\350\265\240\345\223\201_\346\216\247\351\224\200_\345\225\206\345\223\201\350\207\263\350\264\255\347\211\251\350\275\246.air/\346\226\260\345\242\236\350\265\240\345\223\201_\346\216\247\351\224\200_\345\225\206\345\223\201\350\207\263\350\264\255\347\211\251\350\275\246.py" "b/air_case/cmdc_buyercar_list/\346\226\260\345\242\236\350\265\240\345\223\201_\346\216\247\351\224\200_\345\225\206\345\223\201\350\207\263\350\264\255\347\211\251\350\275\246.air/\346\226\260\345\242\236\350\265\240\345\223\201_\346\216\247\351\224\200_\345\225\206\345\223\201\350\207\263\350\264\255\347\211\251\350\275\246.py"
new file mode 100644
index 0000000000000000000000000000000000000000..195f156a8ef059e89df16938808cfaa2170c88c9
--- /dev/null
+++ "b/air_case/cmdc_buyercar_list/\346\226\260\345\242\236\350\265\240\345\223\201_\346\216\247\351\224\200_\345\225\206\345\223\201\350\207\263\350\264\255\347\211\251\350\275\246.air/\346\226\260\345\242\236\350\265\240\345\223\201_\346\216\247\351\224\200_\345\225\206\345\223\201\350\207\263\350\264\255\347\211\251\350\275\246.py"
@@ -0,0 +1,56 @@
+# -*- encoding=utf8 -*-
+__author__ = "liguangyu"
+
+"""
+case_tag:cmdc_api,cmdc添加赠品且控销的商品至购物车列表,2252,2252-4,sit,bs
+主数据平台:多采商城购物车列表新增商品接口
+"""
+
+from common.common_func import commonFuc
+from air_case.cmdc_login.多采商城登录.多采商城登录 import CmdcMaiiLogin
+from air_case.cmdc_login.后台管理系统登录.后台管理系统登录 import CmdcDoLogin
+import requests
+import json
+
+
+module = "cmdc_buyercar_list"
+
+# 步骤一登录后台管理系统查询商品列表获取赠品且控销的商品信息
+# 获取登录后台管理系统所需账号密码
+username = commonFuc().get_business_data(module, "username2")
+password = commonFuc().get_business_data(module, "password2")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcDoLogin(username, password).get_token()
+headers = commonFuc().get_business_data(module, "json_headers", cmdc_access_token)
+# 查询商品列表获取赠品且控销的商品信息
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url110")
+request_body = commonFuc().get_business_data(module, "payload110")
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+product_id = result["data"]["list"][0]["productId"]
+price = result["data"]["list"][0]["referencePrice"]
+filiale_code = result["data"]["list"][0]["filialeCode"]
+# 第二步登录多采商城添加商品至购物车列表
+# 获取登录多采商城所需账号密码
+username1 = commonFuc().get_business_data(module, "username")
+password1 = commonFuc().get_business_data(module, "password")
+# 获取登录后Cmdc_access_token
+cmdc_access_token1 = CmdcMaiiLogin(username1, password1).get_token()
+# print(cmdc_access_token)
+headers1 = commonFuc().get_business_data(module, "json_headers11", cmdc_access_token1)
+url1 = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url2")
+request_body1 = commonFuc().get_business_data(module, "payload11", product_id, price, filiale_code)
+
+"""
+ 场景:添加赠品且控销的商品至购物车列表
+ 用例名称:添加赠品且控销的商品至购物车列表
+ 输出:{"success":false,"code":"addBuyerCartFail","message":"商品为控销商品,不可加入购物车","data":null,"freshToken":null}
+"""
+# 发送请求
+result1 = requests.post(url1, json=request_body1, headers=headers1)
+result1 = json.loads(result1.content)
+# 获取预期结果
+check_dict = commonFuc().get_business_data(module, "checkDict11")
+# 断言实际结果中是否包含预期结果的内容
+commonFuc().check_result(check_dict, result1)
diff --git "a/air_case/cmdc_buyercar_list/\346\226\260\345\242\236\350\265\240\345\223\201\350\207\263\350\264\255\347\211\251\350\275\246.air/\346\226\260\345\242\236\350\265\240\345\223\201\350\207\263\350\264\255\347\211\251\350\275\246.py" "b/air_case/cmdc_buyercar_list/\346\226\260\345\242\236\350\265\240\345\223\201\350\207\263\350\264\255\347\211\251\350\275\246.air/\346\226\260\345\242\236\350\265\240\345\223\201\350\207\263\350\264\255\347\211\251\350\275\246.py"
new file mode 100644
index 0000000000000000000000000000000000000000..bb5afaa0ee3c71952d1b68ffdff63681f6582b05
--- /dev/null
+++ "b/air_case/cmdc_buyercar_list/\346\226\260\345\242\236\350\265\240\345\223\201\350\207\263\350\264\255\347\211\251\350\275\246.air/\346\226\260\345\242\236\350\265\240\345\223\201\350\207\263\350\264\255\347\211\251\350\275\246.py"
@@ -0,0 +1,54 @@
+# -*- encoding=utf8 -*-
+__author__ = "liguangyu"
+
+"""
+case_tag:cmdc_api,cmdc添加赠品商品至购物车列表,2252,2252-5,sit,bs
+主数据平台:多采商城购物车列表新增商品接口
+"""
+
+from common.common_func import commonFuc
+from air_case.cmdc_login.多采商城登录.多采商城登录 import CmdcMaiiLogin
+from air_case.cmdc_login.后台管理系统登录.后台管理系统登录 import CmdcDoLogin
+import requests
+import json
+
+module = "cmdc_buyercar_list"
+
+# 步骤一登录后台管理系统查询商品列表获取赠品商品信息
+# 获取登录后台管理系统所需账号密码
+username = commonFuc().get_business_data(module, "username2")
+password = commonFuc().get_business_data(module, "password2")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcDoLogin(username, password).get_token()
+headers = commonFuc().get_business_data(module, "json_headers", cmdc_access_token)
+# 查询商品列表获取赠品商品信息
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url80")
+request_body = commonFuc().get_business_data(module, "payload80")
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+product_id = result["data"]["list"][0]["productId"]
+price = result["data"]["list"][0]["referencePrice"]
+filiale_code = result["data"]["list"][0]["filialeCode"]
+# 第二步登录多采商城添加商品至购物车列表
+# 获取登录多采商城所需账号密码
+username1 = commonFuc().get_business_data(module, "username")
+password1 = commonFuc().get_business_data(module, "password")
+# 获取登录后Cmdc_access_token
+cmdc_access_token1 = CmdcMaiiLogin(username1, password1).get_token()
+headers1 = commonFuc().get_business_data(module, "json_headers10", cmdc_access_token1)
+url1 = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url2")
+request_body1 = commonFuc().get_business_data(module, "payload8", product_id, price, filiale_code)
+
+"""
+ 场景:添加赠品至购物车列表
+ 用例名称:添加赠品至购物车列表
+ 输出:{"success":true,"code":"200","message":"OK","data":"ok"}
+"""
+# 发送请求
+result1 = requests.post(url1, json=request_body1, headers=headers1)
+result1 = json.loads(result1.content)
+# 获取预期结果
+check_dict = commonFuc().get_business_data(module, "checkDict8")
+# 断言实际结果中是否包含预期结果的内容
+commonFuc().check_result(check_dict, result1)
diff --git "a/air_case/cmdc_buyercar_list/\346\226\260\345\242\236\350\267\250\347\253\231\347\202\271\345\225\206\345\223\201\350\207\263\350\264\255\347\211\251\350\275\246.air/\346\226\260\345\242\236\350\267\250\347\253\231\347\202\271\345\225\206\345\223\201\350\207\263\350\264\255\347\211\251\350\275\246.py" "b/air_case/cmdc_buyercar_list/\346\226\260\345\242\236\350\267\250\347\253\231\347\202\271\345\225\206\345\223\201\350\207\263\350\264\255\347\211\251\350\275\246.air/\346\226\260\345\242\236\350\267\250\347\253\231\347\202\271\345\225\206\345\223\201\350\207\263\350\264\255\347\211\251\350\275\246.py"
new file mode 100644
index 0000000000000000000000000000000000000000..4f392ea4a3f3af645a129b45147fdea10dfd3ab8
--- /dev/null
+++ "b/air_case/cmdc_buyercar_list/\346\226\260\345\242\236\350\267\250\347\253\231\347\202\271\345\225\206\345\223\201\350\207\263\350\264\255\347\211\251\350\275\246.air/\346\226\260\345\242\236\350\267\250\347\253\231\347\202\271\345\225\206\345\223\201\350\207\263\350\264\255\347\211\251\350\275\246.py"
@@ -0,0 +1,45 @@
+# -*- encoding=utf8 -*-
+__author__ = "liguangyu"
+
+"""
+case_tag:cmdc_api,cmdc新增跨站点商品至购物车,2252,2252-6,sit,bs
+主数据平台:多采商城购物车列表新增商品接口
+"""
+
+from common.common_func import commonFuc
+from air_case.cmdc_login.多采商城登录.多采商城登录 import CmdcMaiiLogin
+import requests
+import json
+
+
+module = "cmdc_buyercar_list"
+
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url2")
+print(url)
+# 获取登录所需账号密码
+username = commonFuc().get_business_data(module, "username")
+password = commonFuc().get_business_data(module, "password")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcMaiiLogin(username, password).get_token()
+headers = commonFuc().get_business_data(module, "json_headers1", cmdc_access_token)
+request_body1 = commonFuc().get_business_data(module, "payload300")
+# 发送请求
+result1 = requests.post(url, json=request_body1, headers=headers)
+result1 = json.loads(result1.content)
+# 获取预期结果
+check_dict1 = commonFuc().get_business_data(module, "checkDict300")
+# 断言实际结果中是否包含预期结果的内容
+commonFuc().check_result(check_dict1, result1)
+request_body = commonFuc().get_business_data(module, "payload301")
+"""
+ 场景:新增跨站点商品至购物车列表
+ 用例名称:新增跨站点商品至购物车列表
+ 输出:{"success":true,"code":"200","message":"OK","data":"ok"}
+"""
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+# 获取预期结果
+check_dict = commonFuc().get_business_data(module, "checkDict300")
+# 断言实际结果中是否包含预期结果的内容
+commonFuc().check_result(check_dict, result)
\ No newline at end of file
diff --git "a/air_case/cmdc_buyercar_list/\346\267\273\345\212\240JDE\345\267\262\345\201\234\347\224\250\347\232\204\345\225\206\345\223\201\350\207\263\350\264\255\347\211\251\350\275\246\345\210\227\350\241\250.air/\346\267\273\345\212\240JDE\345\267\262\345\201\234\347\224\250\347\232\204\345\225\206\345\223\201\350\207\263\350\264\255\347\211\251\350\275\246\345\210\227\350\241\250.py" "b/air_case/cmdc_buyercar_list/\346\267\273\345\212\240JDE\345\267\262\345\201\234\347\224\250\347\232\204\345\225\206\345\223\201\350\207\263\350\264\255\347\211\251\350\275\246\345\210\227\350\241\250.air/\346\267\273\345\212\240JDE\345\267\262\345\201\234\347\224\250\347\232\204\345\225\206\345\223\201\350\207\263\350\264\255\347\211\251\350\275\246\345\210\227\350\241\250.py"
new file mode 100644
index 0000000000000000000000000000000000000000..433c95b2eca844ce7a180b8e5fb169ff60b37dd8
--- /dev/null
+++ "b/air_case/cmdc_buyercar_list/\346\267\273\345\212\240JDE\345\267\262\345\201\234\347\224\250\347\232\204\345\225\206\345\223\201\350\207\263\350\264\255\347\211\251\350\275\246\345\210\227\350\241\250.air/\346\267\273\345\212\240JDE\345\267\262\345\201\234\347\224\250\347\232\204\345\225\206\345\223\201\350\207\263\350\264\255\347\211\251\350\275\246\345\210\227\350\241\250.py"
@@ -0,0 +1,56 @@
+# -*- encoding=utf8 -*-
+__author__ = "liguangyu"
+
+"""
+case_tag:cmdc_api,cmdc添加JDE已停用的商品至购物车列表,2252,2252-7,sit,bs
+主数据平台:多采商城购物车列表新增商品接口
+"""
+
+from common.common_func import commonFuc
+from air_case.cmdc_login.多采商城登录.多采商城登录 import CmdcMaiiLogin
+from air_case.cmdc_login.后台管理系统登录.后台管理系统登录 import CmdcDoLogin
+import requests
+import json
+
+module = "cmdc_buyercar_list"
+
+# 步骤一登录后台管理系统查询商品列表获取添加JDE已停用商品信息
+# 获取登录后台管理系统所需账号密码
+username = commonFuc().get_business_data(module, "username2")
+password = commonFuc().get_business_data(module, "password2")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcDoLogin(username, password).get_token()
+headers = commonFuc().get_business_data(module, "json_headers", cmdc_access_token)
+# 查询商品列表获取添加JDE已停用商品信息
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url100")
+request_body = commonFuc().get_business_data(module, "payload100")
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+# print(result)
+product_id = result["data"]["list"][0]["productId"]
+price = result["data"]["list"][0]["referencePrice"]
+filiale_code = result["data"]["list"][0]["filialeCode"]
+
+# 第二步登录多采商城添加商品至购物车列表
+# 获取登录多采商城所需账号密码
+username1 = commonFuc().get_business_data(module, "username")
+password1 = commonFuc().get_business_data(module, "password")
+# 获取登录后Cmdc_access_token
+cmdc_access_token1 = CmdcMaiiLogin(username1, password1).get_token()
+headers1 = commonFuc().get_business_data(module, "json_headers10", cmdc_access_token1)
+url1 = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url2")
+request_body1 = commonFuc().get_business_data(module, "payload10", product_id, price, filiale_code)
+
+"""
+ 场景:添加JDE已停用的商品至购物车列表
+ 用例名称:添加JDE已停用的商品至购物车列表
+ 输出:{"success":false,"code":"addBuyerCartFail","message":"商品为失效状态,不可加入购物车","data":null,"freshToken":null}
+"""
+# 发送请求
+result1 = requests.post(url1, json=request_body1, headers=headers1)
+result1 = json.loads(result1.content)
+# 获取预期结果
+check_dict = commonFuc().get_business_data(module, "checkDict10")
+# 断言实际结果中是否包含预期结果的内容
+commonFuc().check_result(check_dict, result1)
diff --git "a/air_case/cmdc_buyercar_list/\350\216\267\345\217\226\350\264\255\347\211\251\350\275\246\345\210\227\350\241\250.air/\350\216\267\345\217\226\350\264\255\347\211\251\350\275\246\345\210\227\350\241\250.py" "b/air_case/cmdc_buyercar_list/\350\216\267\345\217\226\350\264\255\347\211\251\350\275\246\345\210\227\350\241\250.air/\350\216\267\345\217\226\350\264\255\347\211\251\350\275\246\345\210\227\350\241\250.py"
new file mode 100644
index 0000000000000000000000000000000000000000..4db717b84c9f73470bfae10fab1d0cb0ee7008bb
--- /dev/null
+++ "b/air_case/cmdc_buyercar_list/\350\216\267\345\217\226\350\264\255\347\211\251\350\275\246\345\210\227\350\241\250.air/\350\216\267\345\217\226\350\264\255\347\211\251\350\275\246\345\210\227\350\241\250.py"
@@ -0,0 +1,39 @@
+# -*- encoding=utf8 -*-
+__author__ = "liguangyu"
+
+"""
+case_tag:cmdc_api,cmdc获取购物车列表,2252,2252-8,sit,bs
+主数据平台:多采商城购物车列表接口
+"""
+
+from common.common_func import commonFuc
+from air_case.cmdc_login.多采商城登录.多采商城登录 import CmdcMaiiLogin
+import requests
+import json
+
+
+module = "cmdc_buyercar_list"
+
+
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url1")
+print(url)
+# 获取登录所需账号密码
+username = commonFuc().get_business_data(module, "username")
+password = commonFuc().get_business_data(module, "password")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcMaiiLogin(username, password).get_token()
+headers = commonFuc().get_business_data(module, "json_headers1", cmdc_access_token)
+request_body = commonFuc().get_business_data(module, "payload1")
+"""
+ 场景:获取到登录用户对应的购物车列表
+ 用例名称:获取购物车列表
+ 输出:{"success":true,"code":"200","message":"OK"}
+"""
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+# print(result)
+# 获取预期结果
+check_dict = commonFuc().get_business_data(module, "checkDict1")
+# 断言实际结果中是否包含预期结果的内容
+commonFuc().check_result(check_dict, result)
diff --git "a/air_case/cmdc_buyercar_list/\350\264\255\347\211\251\350\275\246\345\225\206\345\223\201\347\247\273\351\231\244.air/\350\264\255\347\211\251\350\275\246\345\225\206\345\223\201\347\247\273\351\231\244.py" "b/air_case/cmdc_buyercar_list/\350\264\255\347\211\251\350\275\246\345\225\206\345\223\201\347\247\273\351\231\244.air/\350\264\255\347\211\251\350\275\246\345\225\206\345\223\201\347\247\273\351\231\244.py"
new file mode 100644
index 0000000000000000000000000000000000000000..a9aa887ec56e2fc09e2f7fe70e634f3b4106c6eb
--- /dev/null
+++ "b/air_case/cmdc_buyercar_list/\350\264\255\347\211\251\350\275\246\345\225\206\345\223\201\347\247\273\351\231\244.air/\350\264\255\347\211\251\350\275\246\345\225\206\345\223\201\347\247\273\351\231\244.py"
@@ -0,0 +1,71 @@
+# -*- encoding=utf8 -*-
+__author__ = "liguangyu"
+
+"""
+case_tag:cmdc_api,cmdc用户购物车商品移除,2252,2252-9,sit,bs
+主数据平台:多采商城购物车列表商品删除接口
+"""
+
+from common.common_func import commonFuc
+from air_case.cmdc_login.多采商城登录.多采商城登录 import CmdcMaiiLogin
+from air_case.cmdc_login.后台管理系统登录.后台管理系统登录 import CmdcDoLogin
+import requests
+import json
+
+module = "cmdc_buyercar_list"
+
+# 第一步进行用户登录获取Cmdc_access_token
+# 获取登录所需账号密码
+username = commonFuc().get_business_data(module, "username")
+password = commonFuc().get_business_data(module, "password")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcMaiiLogin(username, password).get_token()
+headers = commonFuc().get_business_data(module, "json_headers3", cmdc_access_token)
+
+# 获取登录后台管理系统所需账号密码
+username1 = commonFuc().get_business_data(module, "username1")
+password1 = commonFuc().get_business_data(module, "password1")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcDoLogin(username1, password1).get_token()
+headers1 = commonFuc().get_business_data(module, "json_headers", cmdc_access_token)
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url20")
+request_body = commonFuc().get_business_data(module, "payload20")
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers1)
+result = json.loads(result.content)
+product_id = result["data"]["list"][0]["productId"]
+price = result["data"]["list"][0]["referencePrice"]
+filiale_code = result["data"]["list"][0]["filialeCode"]
+
+# 第二步在购物车中新增商品
+url1 = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url2")
+request_body1 = commonFuc().get_business_data(module, "payload2", product_id, price, filiale_code)
+result1 = requests.post(url1, json=request_body1, headers=headers)
+result1 = json.loads(result1.content)
+
+# 第三步查询购物车中新增的商品信息
+url2 = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url1")
+request_body2 = commonFuc().get_business_data(module, "payload1")
+result2 = requests.post(url2, json=request_body2, headers=headers)
+result2 = json.loads(result2.content)
+# print(result2)
+# 获取所添加商品id
+product_id = commonFuc().get_business_data(module, "payload2")["productId"]
+result_product_id = result2["data"]["list"][0]["list"][0]["productId"]
+if result_product_id == product_id:
+ buyer_cart_id = result2["data"]["list"][0]["list"][0]["buyerCartId"]
+ request_body = commonFuc().get_business_data(module, "payload3", buyer_cart_id)
+ # 第三步删除新增加至购物车列表的商品
+ url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url3")
+ """
+ 场景:从用户购物车列表移除商品
+ 用例名称:从用户购物车列表移除商品
+ 输出:{"success":true,"code":"200","message":"OK","data":"ok"}
+ """
+ # 发送请求
+ result = requests.post(url, json=request_body, headers=headers)
+ result = json.loads(result.content)
+ # 获取预期结果
+ check_dict = commonFuc().get_business_data(module, "checkDict2")
+ # 断言实际结果中是否包含预期结果的内容
+ commonFuc().check_result(check_dict, result)
diff --git "a/air_case/cmdc_buyercar_list/\350\264\255\347\211\251\350\275\246\346\225\260\351\207\217\344\277\256\346\224\271\351\252\214\350\257\201.air/\350\264\255\347\211\251\350\275\246\346\225\260\351\207\217\344\277\256\346\224\271\351\252\214\350\257\201.py" "b/air_case/cmdc_buyercar_list/\350\264\255\347\211\251\350\275\246\346\225\260\351\207\217\344\277\256\346\224\271\351\252\214\350\257\201.air/\350\264\255\347\211\251\350\275\246\346\225\260\351\207\217\344\277\256\346\224\271\351\252\214\350\257\201.py"
new file mode 100644
index 0000000000000000000000000000000000000000..4e937934b382ac470649a1632491a4cd8208095b
--- /dev/null
+++ "b/air_case/cmdc_buyercar_list/\350\264\255\347\211\251\350\275\246\346\225\260\351\207\217\344\277\256\346\224\271\351\252\214\350\257\201.air/\350\264\255\347\211\251\350\275\246\346\225\260\351\207\217\344\277\256\346\224\271\351\252\214\350\257\201.py"
@@ -0,0 +1,68 @@
+# -*- encoding=utf8 -*-
+__author__ = "liguangyu"
+
+"""
+case_tag:cmdc_api,cmdc购物车数量修改验证,2252,2252-10,sit,bs
+主数据平台:多采商城修改购物车中商品数量接口
+"""
+
+from common.common_func import commonFuc
+from air_case.cmdc_login.多采商城登录.多采商城登录 import CmdcMaiiLogin
+import requests
+import json
+import random
+
+
+module = "cmdc_buyercar_list"
+
+
+# 登录多采商城获取登录后cmdc_access_token
+# 获取登录所需账号密码
+username = commonFuc().get_business_data(module, "username")
+password = commonFuc().get_business_data(module, "password")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcMaiiLogin(username, password).get_token()
+headers = commonFuc().get_business_data(module, "json_headers1", cmdc_access_token)
+# 获取购物车列表
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url1")
+request_body = commonFuc().get_business_data(module, "payload1")
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+# print(result)
+invalid_sign = result["data"]["list"][0]["list"][0]["invalidSign"]
+buyercart_id = result["data"]["list"][0]["list"][0]["buyerCartId"]
+product_name = result["data"]["list"][0]["list"][0]["productName"]
+quantity = result["data"]["list"][0]["list"][0]["quantity"]
+modify_quantity = random.randint(2, 10)
+if invalid_sign == 0:
+ # 组装修改购物车报文
+ url1 = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url83")
+ request_body1 = commonFuc().get_business_data(module, "payload83", buyercart_id, modify_quantity)
+ # print(request_body1)
+ # 发送请求
+ result1 = requests.post(url1, json=request_body1, headers=headers)
+ result1 = json.loads(result1.content)
+ # 获取预期结果
+ check_dict1 = commonFuc().get_business_data(module, "checkDict80")
+ # 断言实际结果中是否包含预期结果的内容
+ commonFuc().check_result(check_dict1, result1)
+ # 获取购物车列表
+ url2 = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url1")
+ request_body2 = commonFuc().get_business_data(module, "payload81", product_name)
+ # 发送请求
+ result2 = requests.post(url2, json=request_body2, headers=headers)
+ result2 = json.loads(result2.content)
+ for i in result2["data"]["list"][0]["list"]:
+ if i["buyerCartId"] == buyercart_id:
+ result3 = i["quantity"]
+ check_dict3 = commonFuc().get_business_data(module, "checkDict81", result3)
+ check_dict4 = commonFuc().get_business_data(module, "checkDict82", modify_quantity)
+ commonFuc().check_result(check_dict3, check_dict4)
+
+"""
+ 场景:对购物车列表中商品进行数量的修改
+ 用例名称:对购物车列表中商品进行数量的修改
+ 输出:{"success":true,"code":"200","message":"OK","data":"ok"}
+"""
+
diff --git "a/air_case/cmdc_buyercar_list/\350\264\255\347\211\251\350\275\246\346\226\260\345\242\236\345\225\206\345\223\201.air/\350\264\255\347\211\251\350\275\246\346\226\260\345\242\236\345\225\206\345\223\201.py" "b/air_case/cmdc_buyercar_list/\350\264\255\347\211\251\350\275\246\346\226\260\345\242\236\345\225\206\345\223\201.air/\350\264\255\347\211\251\350\275\246\346\226\260\345\242\236\345\225\206\345\223\201.py"
new file mode 100644
index 0000000000000000000000000000000000000000..3546244f79cc5fdc033b8acb2962dae6d41295a9
--- /dev/null
+++ "b/air_case/cmdc_buyercar_list/\350\264\255\347\211\251\350\275\246\346\226\260\345\242\236\345\225\206\345\223\201.air/\350\264\255\347\211\251\350\275\246\346\226\260\345\242\236\345\225\206\345\223\201.py"
@@ -0,0 +1,56 @@
+# -*- encoding=utf8 -*-
+__author__ = "liguangyu"
+
+"""
+case_tag:cmdc_api,cmdc用户购物车新增商品,2252,2252-11,sit,bs
+主数据平台:多采商城购物车列表新增商品接口
+"""
+
+from common.common_func import commonFuc
+from air_case.cmdc_login.多采商城登录.多采商城登录 import CmdcMaiiLogin
+from air_case.cmdc_login.后台管理系统登录.后台管理系统登录 import CmdcDoLogin
+import requests
+import json
+
+
+module = "cmdc_buyercar_list"
+
+# 步骤一登录后台管理系统查询商品列表商品信息
+# 获取登录后台管理系统所需账号密码
+username = commonFuc().get_business_data(module, "username1")
+password = commonFuc().get_business_data(module, "password1")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcDoLogin(username, password).get_token()
+headers = commonFuc().get_business_data(module, "json_headers", cmdc_access_token)
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url20")
+request_body = commonFuc().get_business_data(module, "payload20")
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+product_id = result["data"]["list"][0]["productId"]
+price = result["data"]["list"][0]["referencePrice"]
+filiale_code = result["data"]["list"][0]["filialeCode"]
+# 第二步登录多采商城添加商品至购物车列表
+# 获取登录所需账号密码
+username1 = commonFuc().get_business_data(module, "username")
+password1 = commonFuc().get_business_data(module, "password")
+# 获取登录后Cmdc_access_token
+cmdc_access_token1 = CmdcMaiiLogin(username1, password1).get_token()
+headers1 = commonFuc().get_business_data(module, "json_headers2", cmdc_access_token1)
+# print(headers1)
+url1 = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url2")
+request_body1 = commonFuc().get_business_data(module, "payload2", product_id, price, filiale_code)
+"""
+ 场景:添加商品至用户购物车列表
+ 用例名称:添加商品至用户购物车列表
+ 输出:{"success":true,"code":"200","message":"OK","data":"ok"}
+"""
+# 发送请求
+result1 = requests.post(url1, json=request_body1, headers=headers1)
+result1 = json.loads(result1.content)
+# print(result1)
+# 获取预期结果
+check_dict = commonFuc().get_business_data(module, "checkDict2")
+# print(check_dict)
+# 断言实际结果中是否包含预期结果的内容
+commonFuc().check_result(check_dict, result1)
diff --git "a/air_case/cmdc_buyercar_list/\351\200\232\350\277\207Excel\345\244\215\345\210\266\346\267\273\345\212\240\345\225\206\345\223\201-\345\255\220\347\253\231\347\202\271\344\270\215\345\255\230\345\234\250.air/\351\200\232\350\277\207Excel\345\244\215\345\210\266\346\267\273\345\212\240\345\225\206\345\223\201-\345\255\220\347\253\231\347\202\271\344\270\215\345\255\230\345\234\250.py" "b/air_case/cmdc_buyercar_list/\351\200\232\350\277\207Excel\345\244\215\345\210\266\346\267\273\345\212\240\345\225\206\345\223\201-\345\255\220\347\253\231\347\202\271\344\270\215\345\255\230\345\234\250.air/\351\200\232\350\277\207Excel\345\244\215\345\210\266\346\267\273\345\212\240\345\225\206\345\223\201-\345\255\220\347\253\231\347\202\271\344\270\215\345\255\230\345\234\250.py"
new file mode 100644
index 0000000000000000000000000000000000000000..285ec239cafca3e6729d0fe19d1e35fb9ba1e85f
--- /dev/null
+++ "b/air_case/cmdc_buyercar_list/\351\200\232\350\277\207Excel\345\244\215\345\210\266\346\267\273\345\212\240\345\225\206\345\223\201-\345\255\220\347\253\231\347\202\271\344\270\215\345\255\230\345\234\250.air/\351\200\232\350\277\207Excel\345\244\215\345\210\266\346\267\273\345\212\240\345\225\206\345\223\201-\345\255\220\347\253\231\347\202\271\344\270\215\345\255\230\345\234\250.py"
@@ -0,0 +1,44 @@
+# -*- encoding=utf8 -*-
+__author__ = "liguangyu"
+
+"""
+case_tag:cmdc_api,cmdc通过Excel复制添加商品-子站点不存在,2252,2252-12,sit,bs
+主数据平台:多采商城购物车列表通过Excel复制添加商品接口
+"""
+
+from common.common_func import commonFuc
+from air_case.cmdc_login.多采商城登录.多采商城登录 import CmdcMaiiLogin
+import requests
+import json
+import random
+
+module = "cmdc_buyercar_list"
+
+# 第一步登录多采商城获取token
+# 获取登录所需账号密码
+username1 = commonFuc().get_business_data(module, "username")
+password1 = commonFuc().get_business_data(module, "password")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcMaiiLogin(username1, password1).get_token()
+headers = commonFuc().get_business_data(module, "json_headers1", cmdc_access_token)
+# 获取通过Excel复制添加商品接口地址
+url_batch = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url_batch")
+# 随机生成不存在的公司id
+company_id = random.randint(100000000000, 10000000000000000)
+# 组装请求报文
+request_body = commonFuc().get_business_data(module, "payload24", company_id)
+
+"""
+ 场景:通过Excel复制添加商品时,站点不存在时,添加失败
+ 用例名称:通过Excel复制添加商品时,站点不存在时,添加失败
+ 输出:{"success":false,"code":"999","message":"找不到该公司的首营信息","data":null,"freshToken":null}
+"""
+# 发送请求
+result = requests.post(url_batch, json=request_body, headers=headers)
+result = json.loads(result.content)
+# print(result)
+# 获取预期结果
+check_dict = commonFuc().get_business_data(module, "checkDict24")
+# 断言实际结果中是否包含预期结果的内容
+commonFuc().check_result(check_dict, result)
+
diff --git "a/air_case/cmdc_buyercar_list/\351\200\232\350\277\207Excel\345\244\215\345\210\266\346\267\273\345\212\240\345\225\206\345\223\201-\345\277\205\345\241\253\345\255\227\346\256\265\347\274\272\345\244\261.air/\351\200\232\350\277\207Excel\345\244\215\345\210\266\346\267\273\345\212\240\345\225\206\345\223\201-\345\277\205\345\241\253\345\255\227\346\256\265\347\274\272\345\244\261.py" "b/air_case/cmdc_buyercar_list/\351\200\232\350\277\207Excel\345\244\215\345\210\266\346\267\273\345\212\240\345\225\206\345\223\201-\345\277\205\345\241\253\345\255\227\346\256\265\347\274\272\345\244\261.air/\351\200\232\350\277\207Excel\345\244\215\345\210\266\346\267\273\345\212\240\345\225\206\345\223\201-\345\277\205\345\241\253\345\255\227\346\256\265\347\274\272\345\244\261.py"
new file mode 100644
index 0000000000000000000000000000000000000000..d79ead59a82ac66c84f92a378386efebe894e329
--- /dev/null
+++ "b/air_case/cmdc_buyercar_list/\351\200\232\350\277\207Excel\345\244\215\345\210\266\346\267\273\345\212\240\345\225\206\345\223\201-\345\277\205\345\241\253\345\255\227\346\256\265\347\274\272\345\244\261.air/\351\200\232\350\277\207Excel\345\244\215\345\210\266\346\267\273\345\212\240\345\225\206\345\223\201-\345\277\205\345\241\253\345\255\227\346\256\265\347\274\272\345\244\261.py"
@@ -0,0 +1,40 @@
+# -*- encoding=utf8 -*-
+__author__ = "liguangyu"
+
+"""
+case_tag:cmdc_api,cmdc通过Excel复制添加商品-必填字段缺失,2252,2252-13,sit,bs
+主数据平台:多采商城购物车列表通过Excel复制添加商品接口
+"""
+
+from common.common_func import commonFuc
+from air_case.cmdc_login.多采商城登录.多采商城登录 import CmdcMaiiLogin
+import requests
+import json
+import random
+
+module = "cmdc_buyercar_list"
+
+# 第一步登录多采商城获取token
+# 获取登录所需账号密码
+username1 = commonFuc().get_business_data(module, "username")
+password1 = commonFuc().get_business_data(module, "password")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcMaiiLogin(username1, password1).get_token()
+headers = commonFuc().get_business_data(module, "json_headers1", cmdc_access_token)
+# 获取通过Excel复制添加商品接口地址
+url_batch = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url_batch")
+# 组装请求报文
+request_body = commonFuc().get_business_data(module, "payload22")
+"""
+ 场景:通过Excel复制添加商品时,不传产品信息,添加失败
+ 用例名称:通过Excel复制添加商品时,不传产品信息,添加失败
+ 输出:{"success":false,"code":"200","message":"商品添加完毕,本次添加商品【1】条,成功【0】条,失败【1】条:\n第1行,产品编码或物料编码为空!","data":[],"freshToken":null}
+"""
+# 发送请求
+result = requests.post(url_batch, json=request_body, headers=headers)
+result = json.loads(result.content)
+# print(result)
+# 获取预期结果
+check_dict = commonFuc().get_business_data(module, "checkDict22")
+# 断言实际结果中是否包含预期结果的内容
+commonFuc().check_result(check_dict, result)
diff --git "a/air_case/cmdc_buyercar_list/\351\200\232\350\277\207Excel\345\244\215\345\210\266\346\267\273\345\212\240\345\225\206\345\223\201-\346\267\273\345\212\240\345\244\261\350\264\245.air/\351\200\232\350\277\207Excel\345\244\215\345\210\266\346\267\273\345\212\240\345\225\206\345\223\201-\346\267\273\345\212\240\345\244\261\350\264\245.py" "b/air_case/cmdc_buyercar_list/\351\200\232\350\277\207Excel\345\244\215\345\210\266\346\267\273\345\212\240\345\225\206\345\223\201-\346\267\273\345\212\240\345\244\261\350\264\245.air/\351\200\232\350\277\207Excel\345\244\215\345\210\266\346\267\273\345\212\240\345\225\206\345\223\201-\346\267\273\345\212\240\345\244\261\350\264\245.py"
new file mode 100644
index 0000000000000000000000000000000000000000..87681a8831471f1d2005ca182b05bcd8f9338b12
--- /dev/null
+++ "b/air_case/cmdc_buyercar_list/\351\200\232\350\277\207Excel\345\244\215\345\210\266\346\267\273\345\212\240\345\225\206\345\223\201-\346\267\273\345\212\240\345\244\261\350\264\245.air/\351\200\232\350\277\207Excel\345\244\215\345\210\266\346\267\273\345\212\240\345\225\206\345\223\201-\346\267\273\345\212\240\345\244\261\350\264\245.py"
@@ -0,0 +1,43 @@
+# -*- encoding=utf8 -*-
+__author__ = "liguangyu"
+
+"""
+case_tag:cmdc_api,cmdc通过Excel复制添加商品-添加失败,2252,2252-14,sit,bs
+主数据平台:多采商城购物车列表通过Excel复制添加商品接口
+"""
+
+from common.common_func import commonFuc
+from air_case.cmdc_login.多采商城登录.多采商城登录 import CmdcMaiiLogin
+import requests
+import json
+import random
+
+module = "cmdc_buyercar_list"
+
+# 第一步登录多采商城获取token
+# 获取登录所需账号密码
+username1 = commonFuc().get_business_data(module, "username")
+password1 = commonFuc().get_business_data(module, "password")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcMaiiLogin(username1, password1).get_token()
+headers = commonFuc().get_business_data(module, "json_headers1", cmdc_access_token)
+# 获取通过Excel复制添加商品接口地址
+url_batch = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url_batch")
+# 随机生成不存在的商品code
+product_code = random.randint(10000000000000, 1000000000000000000)
+# 组装请求报文
+request_body = commonFuc().get_business_data(module, "payload21", product_code)
+# print(request_body)
+"""
+ 场景:通过Excel复制添加商品,添加不存在的商品,添加失败
+ 用例名称:通过Excel复制添加商品,添加不存在的商品,添加失败
+ 输出:{"success":false,"code":"200","message":"商品添加完毕,本次添加商品【1】条,成功【0】条,失败【1】条:\n第1行,该商品不存在!","data":[],"freshToken":null}
+"""
+# 发送请求
+result = requests.post(url_batch, json=request_body, headers=headers)
+result = json.loads(result.content)
+# print(result)
+# 获取预期结果
+check_dict = commonFuc().get_business_data(module, "checkDict21")
+# 断言实际结果中是否包含预期结果的内容
+commonFuc().check_result(check_dict, result)
diff --git "a/air_case/cmdc_buyercar_list/\351\200\232\350\277\207Excel\345\244\215\345\210\266\346\267\273\345\212\240\345\225\206\345\223\201-\346\267\273\345\212\240\346\210\220\345\212\237.air/\351\200\232\350\277\207Excel\345\244\215\345\210\266\346\267\273\345\212\240\345\225\206\345\223\201-\346\267\273\345\212\240\346\210\220\345\212\237.py" "b/air_case/cmdc_buyercar_list/\351\200\232\350\277\207Excel\345\244\215\345\210\266\346\267\273\345\212\240\345\225\206\345\223\201-\346\267\273\345\212\240\346\210\220\345\212\237.air/\351\200\232\350\277\207Excel\345\244\215\345\210\266\346\267\273\345\212\240\345\225\206\345\223\201-\346\267\273\345\212\240\346\210\220\345\212\237.py"
new file mode 100644
index 0000000000000000000000000000000000000000..47173383bd1b18864d3af3ed25bc7cba83adeebb
--- /dev/null
+++ "b/air_case/cmdc_buyercar_list/\351\200\232\350\277\207Excel\345\244\215\345\210\266\346\267\273\345\212\240\345\225\206\345\223\201-\346\267\273\345\212\240\346\210\220\345\212\237.air/\351\200\232\350\277\207Excel\345\244\215\345\210\266\346\267\273\345\212\240\345\225\206\345\223\201-\346\267\273\345\212\240\346\210\220\345\212\237.py"
@@ -0,0 +1,73 @@
+# -*- encoding=utf8 -*-
+__author__ = "liguangyu"
+
+"""
+case_tag:cmdc_api,cmdc通过Excel复制添加商品-添加成功,2252,2252-15,sit,bs
+主数据平台:多采商城购物车列表通过Excel复制添加商品接口
+"""
+
+from common.common_func import commonFuc
+from air_case.cmdc_login.多采商城登录.多采商城登录 import CmdcMaiiLogin
+import requests
+import json
+
+
+module = "cmdc_buyercar_list"
+
+# 第一步登录多采商城获取token
+# 获取登录所需账号密码
+username1 = commonFuc().get_business_data(module, "username")
+password1 = commonFuc().get_business_data(module, "password")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcMaiiLogin(username1, password1).get_token()
+headers = commonFuc().get_business_data(module, "json_headers1", cmdc_access_token)
+
+# 第二步查询用户对应的站点
+url_user_websites = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url_user_websites")
+# 组装请求报文
+request_body_user_websites = {}
+# 发送请求
+result_body_user_websites = requests.post(url_user_websites, json=request_body_user_websites, headers=headers)
+result_body_user_websites = json.loads(result_body_user_websites.content)
+
+# 获取站点对应的id
+company_id = result_body_user_websites["data"][3]["companyId"]
+
+# 第三步切换至站点
+url_switch_website = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url_switch_website")
+# 组装请求报文
+request_body_switch_website = commonFuc().get_business_data(module, "payload_switch_website", company_id)
+# 发送请求
+result_body_switch_website = requests.post(url_switch_website, json=request_body_switch_website, headers=headers)
+
+# 第四步获取站点对应的商品信息
+url_website_product = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url_website_product")
+# 组装请求报文
+request_body_website_product = commonFuc().get_business_data(module, "payload_website_product1")
+# 发送请求
+result_body_website_product = requests.post(url_website_product, json=request_body_website_product, headers=headers)
+result_body_website_product = json.loads(result_body_website_product.content)
+
+# 获取站点的商品信息
+product_code = result_body_website_product["data"]["list"][0]["productcode"]
+
+# 第五步获取通过Excel复制添加商品
+# 获取通过Excel复制添加商品接口地址
+url_batch = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url_batch")
+# 组装请求报文
+request_body = commonFuc().get_business_data(module, "payload23", product_code, company_id)
+# print(request_body)
+
+"""
+ 场景:通过Excel复制添加商品,选择正确的站点以及对应的产品信息,添加成功
+ 用例名称:通过Excel复制添加商品,选择正确的站点以及对应的产品信息,添加成功
+ 输出:"success":false,"code":"2001","message":"商品添加完毕,本次添加商品【1】条,成功【1】条,失败【0】条。"
+"""
+# 发送请求
+result = requests.post(url_batch, json=request_body, headers=headers)
+result = json.loads(result.content)
+# print(result)
+# 获取预期结果
+check_dict = commonFuc().get_business_data(module, "checkDict23")
+# 断言实际结果中是否包含预期结果的内容
+commonFuc().check_result(check_dict, result)
diff --git "a/air_case/cmdc_buyercart_handle/\350\264\255\347\211\251\350\275\246\345\210\227\350\241\250\346\237\245\350\257\242\346\235\241\344\273\266\351\252\214\350\257\201.air/\350\264\255\347\211\251\350\275\246\345\210\227\350\241\250\346\237\245\350\257\242\346\235\241\344\273\266\351\252\214\350\257\201.py" "b/air_case/cmdc_buyercart_handle/\350\264\255\347\211\251\350\275\246\345\210\227\350\241\250\346\237\245\350\257\242\346\235\241\344\273\266\351\252\214\350\257\201.air/\350\264\255\347\211\251\350\275\246\345\210\227\350\241\250\346\237\245\350\257\242\346\235\241\344\273\266\351\252\214\350\257\201.py"
new file mode 100644
index 0000000000000000000000000000000000000000..a6ffa368d2daeeb0020face7441d90e534157795
--- /dev/null
+++ "b/air_case/cmdc_buyercart_handle/\350\264\255\347\211\251\350\275\246\345\210\227\350\241\250\346\237\245\350\257\242\346\235\241\344\273\266\351\252\214\350\257\201.air/\350\264\255\347\211\251\350\275\246\345\210\227\350\241\250\346\237\245\350\257\242\346\235\241\344\273\266\351\252\214\350\257\201.py"
@@ -0,0 +1,50 @@
+# -*- encoding=utf8 -*-
+__author__ = "liguangyu"
+
+"""
+case_tag:cmdc_api,cmdc购物车列表查询条件验证,2252,2252-16,sit,bs
+涉及到接口:购物车列表、购物车新增商品等接口
+"""
+
+from common.common_func import commonFuc
+from air_case.cmdc_login.多采商城登录.多采商城登录 import CmdcMaiiLogin
+import requests
+import json
+
+
+module = "cmdc_buyercart_handle"
+
+# 第一步登录多采商城获取token信息
+# 获取登录所需账号密码
+username = commonFuc().get_business_data(module, "username")
+password = commonFuc().get_business_data(module, "password")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcMaiiLogin(username, password).get_token()
+headers = commonFuc().get_business_data(module, "json_headers", cmdc_access_token)
+
+# 第二步新增商品至购物车列表
+url_add = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url_add")
+request_body2 = commonFuc().get_business_data(module, "payload3")
+result2 = requests.post(url_add, json=request_body2, headers=headers)
+
+"""
+ 场景:购物车列表查询条件验证
+ 用例名称:购物车列表查询条件验证
+ 输出:{"success":true,"code":"200","message":"OK","data":"ok"}
+"""
+
+# 第三步根据查询条件查询数据并进行数据验证
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url")
+request_body = commonFuc().get_business_data(module, "payload8")
+# print(request_body)
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+product_id = result["data"]["list"][0]["list"][0]["productId"]
+# print(product_id)
+result = {"productId": product_id}
+
+# # 获取预期结果
+check_dict = commonFuc().get_business_data(module, "checkDict3")
+# # 断言实际结果中是否包含预期结果的内容
+commonFuc().check_result(check_dict, result)
diff --git "a/air_case/cmdc_buyercart_handle/\350\264\255\347\211\251\350\275\246\346\224\257\346\214\201\350\267\250\347\253\231\345\225\206\345\223\201\344\270\213\345\215\225\351\252\214\350\257\201.air/\350\264\255\347\211\251\350\275\246\346\224\257\346\214\201\350\267\250\347\253\231\345\225\206\345\223\201\344\270\213\345\215\225\351\252\214\350\257\201.py" "b/air_case/cmdc_buyercart_handle/\350\264\255\347\211\251\350\275\246\346\224\257\346\214\201\350\267\250\347\253\231\345\225\206\345\223\201\344\270\213\345\215\225\351\252\214\350\257\201.air/\350\264\255\347\211\251\350\275\246\346\224\257\346\214\201\350\267\250\347\253\231\345\225\206\345\223\201\344\270\213\345\215\225\351\252\214\350\257\201.py"
new file mode 100644
index 0000000000000000000000000000000000000000..a231aa445bbb21be6fcad3b2fc404d24f840ead1
--- /dev/null
+++ "b/air_case/cmdc_buyercart_handle/\350\264\255\347\211\251\350\275\246\346\224\257\346\214\201\350\267\250\347\253\231\345\225\206\345\223\201\344\270\213\345\215\225\351\252\214\350\257\201.air/\350\264\255\347\211\251\350\275\246\346\224\257\346\214\201\350\267\250\347\253\231\345\225\206\345\223\201\344\270\213\345\215\225\351\252\214\350\257\201.py"
@@ -0,0 +1,82 @@
+# -*- encoding=utf8 -*-
+__author__ = "liguangyu"
+
+"""
+case_tag:cmdc_api,cmdc购物车支持跨站商品下单验证,2252,2252-17,sit,bs
+涉及到接口:多采商城登录、购物车列表、购物车新增商品、订单创建等接口
+"""
+
+from common.common_func import commonFuc
+from air_case.cmdc_login.多采商城登录.多采商城登录 import CmdcMaiiLogin
+import requests
+import json
+
+
+module = "cmdc_buyercart_handle"
+
+# 第一步登录多采商城获取token信息
+# 获取登录所需账号密码
+username = commonFuc().get_business_data(module, "username")
+password = commonFuc().get_business_data(module, "password")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcMaiiLogin(username, password).get_token()
+headers = commonFuc().get_business_data(module, "json_headers", cmdc_access_token)
+
+# 第二步新增跨站商品至购物车列表
+url_add = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url_add")
+# 添加102站点对应的商品至购物车
+request_body1 = commonFuc().get_business_data(module, "payload1")
+result1 = requests.post(url_add, json=request_body1, headers=headers)
+# 添加103站点对应的商品至购物车
+request_body2 = commonFuc().get_business_data(module, "payload2")
+result2 = requests.post(url_add, json=request_body2, headers=headers)
+result2 = json.loads(result2.content)
+# 获取预期结果
+check_dict1 = commonFuc().get_business_data(module, "checkDict1")
+# 断言实际结果中是否包含预期结果的内容
+commonFuc().check_result(check_dict1, result2)
+"""
+ 场景:购物车支持跨站商品下单验证
+ 用例名称:购物车支持跨站商品下单验证
+ 输出:{"success":true,"code":"200","message":"OK","data":"ok"}
+
+"""
+# 获取已添加至购物车列表商品对应的id
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url")
+# 获取102站点商品对应的id值
+request_body = commonFuc().get_business_data(module, "payload4")
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+buyercart_id_102 = result["data"]["list"][0]["list"][0]["buyerCartId"]
+# print(buyercart_id_102)
+# 获取103站点商品对应的id值
+request_body = commonFuc().get_business_data(module, "payload5")
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+buyercart_id_103 = result["data"]["list"][0]["list"][0]["buyerCartId"]
+buyercart_its = [buyercart_id_102, buyercart_id_103]
+
+# 第四步,进行商品的选择
+url_choose = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url_choose")
+request_body = commonFuc().get_business_data(module, "payload6", buyercart_id_102)
+# 发送请求
+result = requests.post(url_choose, json=request_body, headers=headers)
+
+request_body = commonFuc().get_business_data(module, "payload7", buyercart_id_102)
+# 发送请求
+result = requests.post(url_choose, json=request_body, headers=headers)
+
+# 第五步选择已添加至购物车列表中商品进行订单提交
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url1")
+request_body = commonFuc().get_business_data(module, "payload30", buyercart_id_102, buyercart_id_102, buyercart_id_102, buyercart_id_102, buyercart_id_103, buyercart_id_103, buyercart_id_103, buyercart_id_103, buyercart_id_102, buyercart_id_103)
+# print(request_body)
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+if result["data"]:
+ # # 获取预期结果
+ check_dict = commonFuc().get_business_data(module, "checkDict2")
+ # # 断言实际结果中是否包含预期结果的内容
+ commonFuc().check_result(check_dict, result)
+else:
+ print("下单失败")
diff --git "a/air_case/cmdc_commodity_activity/\344\277\203\351\224\200\346\264\273\345\212\250\345\210\227\350\241\250\346\237\245\350\257\242\346\235\241\344\273\266\351\252\214\350\257\201.air/\344\277\203\351\224\200\346\264\273\345\212\250\345\210\227\350\241\250\346\237\245\350\257\242\346\235\241\344\273\266\351\252\214\350\257\201.py" "b/air_case/cmdc_commodity_activity/\344\277\203\351\224\200\346\264\273\345\212\250\345\210\227\350\241\250\346\237\245\350\257\242\346\235\241\344\273\266\351\252\214\350\257\201.air/\344\277\203\351\224\200\346\264\273\345\212\250\345\210\227\350\241\250\346\237\245\350\257\242\346\235\241\344\273\266\351\252\214\350\257\201.py"
new file mode 100644
index 0000000000000000000000000000000000000000..c0f344319be5f9e4fd1dc290a684f48ff0d5a53c
--- /dev/null
+++ "b/air_case/cmdc_commodity_activity/\344\277\203\351\224\200\346\264\273\345\212\250\345\210\227\350\241\250\346\237\245\350\257\242\346\235\241\344\273\266\351\252\214\350\257\201.air/\344\277\203\351\224\200\346\264\273\345\212\250\345\210\227\350\241\250\346\237\245\350\257\242\346\235\241\344\273\266\351\252\214\350\257\201.py"
@@ -0,0 +1,61 @@
+# -*- encoding=utf8 -*-
+__author__ = "liguangyu"
+
+"""
+case_tag:cmdc_api,cmdc促销活动列表查询条件验证,2262,2262-39,sit,bs
+主数据平台:运营后台管理系统促销活动列表查询接口
+"""
+
+from common.common_func import commonFuc
+from air_case.cmdc_login.后台管理系统登录.后台管理系统登录 import CmdcDoLogin
+import requests
+import json
+
+module = "cmdc_commodity_activity"
+
+# 第一步登录后台运营平台获取cmdc_access_token
+# 获取登录所需账号密码
+username = commonFuc().get_business_data(module, "username1")
+password = commonFuc().get_business_data(module, "password1")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcDoLogin(username, password).get_token()
+headers = commonFuc().get_business_data(module, "json_headers", cmdc_access_token)
+
+# 第二步进行促销活动列表获取
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url1")
+request_body = commonFuc().get_business_data(module, "payload1")
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+
+# 获取促销活动信息activityBasicId、activityName、activityStatus、activityType、startTime、endTime、cStartTime、cEndTime
+activity_basic_id = result["data"]["list"][0]["activityBasicId"]
+activity_name = result["data"]["list"][0]["activityName"]
+activity_status = result["data"]["list"][0]["activityStatus"]
+activity_type = result["data"]["list"][0]["activityType"]
+start_time = result["data"]["list"][0]["effectiveDate"]
+end_time = result["data"]["list"][0]["expirationDate"]
+c_start_time = result["data"]["list"][0]["createTime"]
+c_end_time = result["data"]["list"][0]["expirationDate"]
+
+# 第三步促销活动管理列表查询条件验证
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url1")
+request_body = commonFuc().get_business_data(module, "payload_list", activity_basic_id, activity_name, activity_status,
+ activity_type, start_time, c_start_time, end_time, c_end_time)
+# print(request_body)
+"""
+ 场景: 促销活动列表查询条件验证
+ 用例名称:促销活动列表查询条件验证
+ 输出:{"activityBasicId":"%s"}
+"""
+
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+# print(result)
+result = {"activityBasicId": result["data"]["list"][0]["activityBasicId"]}
+# 获取预期结果
+check_dict = commonFuc().get_business_data(module, "checkDict_list", activity_basic_id)
+# 断言实际结果中是否包含预期结果的内容
+commonFuc().check_result(check_dict, result)
+
diff --git "a/air_case/cmdc_commodity_activity/\344\277\203\351\224\200\346\264\273\345\212\250\345\210\227\350\241\250\350\216\267\345\217\226.air/\344\277\203\351\224\200\346\264\273\345\212\250\345\210\227\350\241\250\350\216\267\345\217\226.py" "b/air_case/cmdc_commodity_activity/\344\277\203\351\224\200\346\264\273\345\212\250\345\210\227\350\241\250\350\216\267\345\217\226.air/\344\277\203\351\224\200\346\264\273\345\212\250\345\210\227\350\241\250\350\216\267\345\217\226.py"
new file mode 100644
index 0000000000000000000000000000000000000000..59bdd03785b6259099f5d2df7cf3d4f01bff94bd
--- /dev/null
+++ "b/air_case/cmdc_commodity_activity/\344\277\203\351\224\200\346\264\273\345\212\250\345\210\227\350\241\250\350\216\267\345\217\226.air/\344\277\203\351\224\200\346\264\273\345\212\250\345\210\227\350\241\250\350\216\267\345\217\226.py"
@@ -0,0 +1,41 @@
+# -*- encoding=utf8 -*-
+__author__ = "liguangyu"
+
+"""
+case_tag:cmdc_api,cmdc促销活动列表获取,2262,2262-38,sit,bs
+主数据平台:运营后台管理系统促销活动列表查询接口
+"""
+
+from common.common_func import commonFuc
+from air_case.cmdc_login.后台管理系统登录.后台管理系统登录 import CmdcDoLogin
+import requests
+import json
+
+
+module = "cmdc_commodity_activity"
+
+
+# 第一步登录后台运营平台获取cmdc_access_token
+# 获取登录所需账号密码
+username = commonFuc().get_business_data(module, "username1")
+password = commonFuc().get_business_data(module, "password1")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcDoLogin(username, password).get_token()
+headers = commonFuc().get_business_data(module, "json_headers", cmdc_access_token)
+
+# 第二步进行促销活动列表获取
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url1")
+request_body = commonFuc().get_business_data(module, "payload1")
+"""
+ 场景:查询促销活动列表
+ 用例名称:查询促销活动列表
+ 输出:{"success":true,"code":"200","message":"OK"}
+"""
+
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+# 获取预期结果
+check_dict = commonFuc().get_business_data(module, "checkDict1")
+# 断言实际结果中是否包含预期结果的内容
+commonFuc().check_result(check_dict, result)
diff --git "a/air_case/cmdc_commodity_activity/\345\225\206\345\223\201_\344\271\260\350\265\240_\346\264\273\345\212\250\351\252\214\350\257\201.air/\345\225\206\345\223\201_\344\271\260\350\265\240_\346\264\273\345\212\250\351\252\214\350\257\201.py" "b/air_case/cmdc_commodity_activity/\345\225\206\345\223\201_\344\271\260\350\265\240_\346\264\273\345\212\250\351\252\214\350\257\201.air/\345\225\206\345\223\201_\344\271\260\350\265\240_\346\264\273\345\212\250\351\252\214\350\257\201.py"
new file mode 100644
index 0000000000000000000000000000000000000000..65e1126bfd8579f196476586048f329b319da987
--- /dev/null
+++ "b/air_case/cmdc_commodity_activity/\345\225\206\345\223\201_\344\271\260\350\265\240_\346\264\273\345\212\250\351\252\214\350\257\201.air/\345\225\206\345\223\201_\344\271\260\350\265\240_\346\264\273\345\212\250\351\252\214\350\257\201.py"
@@ -0,0 +1,66 @@
+# -*- encoding=utf8 -*-
+__author__ = "liguangyu"
+
+"""
+case_tag:cmdc_api,cmdc商品参与买赠活动验证,2262,2262-37,sit,bs
+涉及接口:运营后台管理系统登录、活动基本信息获取、活动包含的商品信息和查询商品对应的促销活动等接口
+"""
+
+from common.common_func import commonFuc
+from air_case.cmdc_login.后台管理系统登录.后台管理系统登录 import CmdcDoLogin
+import requests
+import json
+
+module = "cmdc_commodity_activity"
+
+# 第一步登录后台运营平台获取cmdc_access_token
+# 获取登录所需账号密码
+username = commonFuc().get_business_data(module, "username1")
+password = commonFuc().get_business_data(module, "password1")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcDoLogin(username, password).get_token()
+headers = commonFuc().get_business_data(module, "json_headers", cmdc_access_token)
+
+# 第二步进行促销活动列表获取
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url1")
+request_body = commonFuc().get_business_data(module, "payload15")
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+
+# 获取活动对应的activityBasicId和activityType
+activity_basic_id = result["data"]["list"][0]["activityBasicId"]
+activity_type = result["data"]["list"][0]["activityType"]
+
+# 第三步获取对应活动包含的商品信息
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url3")
+request_body = commonFuc().get_business_data(module, "payload3", activity_basic_id, activity_type)
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+# print(result)
+# 获取活动商品id、companyCode、productCode
+product_id = result["data"][0]["productId"]
+company_code = result["data"][0]["companyCode"]
+product_code = result["data"][0]["productCode"]
+
+# 第四步获取对应商品详情
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url7")
+request_body = commonFuc().get_business_data(module, "payload7", product_id, company_code, product_code)
+# print(request_body)
+"""
+ 场景:商品参与买赠活动验证
+ 用例名称:商品参与买赠活动验证
+ 输出:{"activityBasicId": 10135}
+"""
+
+# 发送请求
+result = requests.get(url, params=request_body, headers=headers)
+result = json.loads(result.content)
+result = {"productId": result["data"]["zero"]["purchaseZeroProductList"][0]["productId"]}
+# 获取预期结果
+check_dict = commonFuc().get_business_data(module, "checkDict15")
+print(check_dict)
+# 断言实际结果中是否包含预期结果的内容
+commonFuc().check_result(check_dict, result)
+
diff --git "a/air_case/cmdc_commodity_activity/\345\225\206\345\223\201_\344\271\260\350\265\240_\350\264\255\344\271\260\346\225\260\351\207\217\344\270\215\346\273\241\350\266\263_\350\265\240\345\223\201\351\252\214\350\257\201.air/\345\225\206\345\223\201_\344\271\260\350\265\240_\350\264\255\344\271\260\346\225\260\351\207\217\344\270\215\346\273\241\350\266\263_\350\265\240\345\223\201\351\252\214\350\257\201.py" "b/air_case/cmdc_commodity_activity/\345\225\206\345\223\201_\344\271\260\350\265\240_\350\264\255\344\271\260\346\225\260\351\207\217\344\270\215\346\273\241\350\266\263_\350\265\240\345\223\201\351\252\214\350\257\201.air/\345\225\206\345\223\201_\344\271\260\350\265\240_\350\264\255\344\271\260\346\225\260\351\207\217\344\270\215\346\273\241\350\266\263_\350\265\240\345\223\201\351\252\214\350\257\201.py"
new file mode 100644
index 0000000000000000000000000000000000000000..a65ccbb6d66f84fd4680ab50440ccee62db1ba97
--- /dev/null
+++ "b/air_case/cmdc_commodity_activity/\345\225\206\345\223\201_\344\271\260\350\265\240_\350\264\255\344\271\260\346\225\260\351\207\217\344\270\215\346\273\241\350\266\263_\350\265\240\345\223\201\351\252\214\350\257\201.air/\345\225\206\345\223\201_\344\271\260\350\265\240_\350\264\255\344\271\260\346\225\260\351\207\217\344\270\215\346\273\241\350\266\263_\350\265\240\345\223\201\351\252\214\350\257\201.py"
@@ -0,0 +1,78 @@
+# -*- encoding=utf8 -*-
+__author__ = "liguangyu"
+
+"""
+case_tag:cmdc_api,cmdc购买不满足条件买赠商品时验证赠品是否赠送,2262,2262-36,sit,bs
+涉及接口:运营后台管理系统登录、活动基本信息获取、活动包含的商品信息和getShoppingCartActivity等接口
+"""
+
+from common.common_func import commonFuc
+from air_case.cmdc_login.多采商城登录.多采商城登录 import CmdcMaiiLogin
+from air_case.cmdc_login.后台管理系统登录.后台管理系统登录 import CmdcDoLogin
+import requests
+import json
+import random
+
+module = "cmdc_commodity_activity"
+
+# 第一步登录后台运营平台获取cmdc_access_token
+# 获取登录所需账号密码
+username = commonFuc().get_business_data(module, "username1")
+password = commonFuc().get_business_data(module, "password1")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcDoLogin(username, password).get_token()
+headers = commonFuc().get_business_data(module, "json_headers", cmdc_access_token)
+
+# 第二步进行促销活动列表获取
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url1")
+request_body = commonFuc().get_business_data(module, "payload15")
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+
+# 获取活动对应的activityBasicId和activityType
+activity_basic_id = result["data"]["list"][0]["activityBasicId"]
+activity_type = result["data"]["list"][0]["activityType"]
+
+# 第三步获取对应活动包含的商品信息
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url3")
+request_body = commonFuc().get_business_data(module, "payload3", activity_basic_id, activity_type)
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+print(result)
+# 获取活动商品id、companyCode、productCode
+company_code = result["data"][0]["companyCode"]
+product_code = result["data"][0]["productCode"]
+purchase_quantity = random.randint(1, 2)
+
+# 获取登录所需账号密码
+username = commonFuc().get_business_data(module, "username")
+password = commonFuc().get_business_data(module, "password")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcMaiiLogin(username, password).get_token()
+headers = commonFuc().get_business_data(module, "json_headers1", cmdc_access_token)
+
+# 第四步验证赠品正确性
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url16")
+# print(url)
+request_body = [
+ {"buyerCartId": 0, "purchaseQuantity": purchase_quantity, "productCode": product_code, "companyCode": company_code}]
+# print(request_body)
+
+"""
+ 场景:购买满足条件买赠商品验证赠品是否赠送
+ 用例名称:购买满足条件买赠商品验证赠品是否赠送
+ 输出:{"purchaseZeroProductList": []}
+"""
+
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+result = {"purchaseZeroProductList": result["data"][0]["purchaseZeroProductList"]}
+
+# 获取预期结果
+check_dict = commonFuc().get_business_data(module, "checkDict17")
+print(check_dict)
+# 断言实际结果中是否包含预期结果的内容
+commonFuc().check_result(check_dict, result)
diff --git "a/air_case/cmdc_commodity_activity/\345\225\206\345\223\201_\344\271\260\350\265\240_\350\264\255\344\271\260\346\225\260\351\207\217\346\273\241\350\266\263_\350\265\240\345\223\201\351\252\214\350\257\201.air/\345\225\206\345\223\201_\344\271\260\350\265\240_\350\264\255\344\271\260\346\225\260\351\207\217\346\273\241\350\266\263_\350\265\240\345\223\201\351\252\214\350\257\201.py" "b/air_case/cmdc_commodity_activity/\345\225\206\345\223\201_\344\271\260\350\265\240_\350\264\255\344\271\260\346\225\260\351\207\217\346\273\241\350\266\263_\350\265\240\345\223\201\351\252\214\350\257\201.air/\345\225\206\345\223\201_\344\271\260\350\265\240_\350\264\255\344\271\260\346\225\260\351\207\217\346\273\241\350\266\263_\350\265\240\345\223\201\351\252\214\350\257\201.py"
new file mode 100644
index 0000000000000000000000000000000000000000..ab22ddc5f0bac5d1794941ec6a3bc15ac98db6f4
--- /dev/null
+++ "b/air_case/cmdc_commodity_activity/\345\225\206\345\223\201_\344\271\260\350\265\240_\350\264\255\344\271\260\346\225\260\351\207\217\346\273\241\350\266\263_\350\265\240\345\223\201\351\252\214\350\257\201.air/\345\225\206\345\223\201_\344\271\260\350\265\240_\350\264\255\344\271\260\346\225\260\351\207\217\346\273\241\350\266\263_\350\265\240\345\223\201\351\252\214\350\257\201.py"
@@ -0,0 +1,78 @@
+# -*- encoding=utf8 -*-
+__author__ = "liguangyu"
+
+"""
+case_tag:cmdc_api,cmdc购买满足条件买赠商品验证赠品是否赠送,2262,2262-35,sit,bs
+涉及接口:运营后台管理系统登录、活动基本信息获取、活动包含的商品信息和getShoppingCartActivity等接口
+"""
+
+from common.common_func import commonFuc
+from air_case.cmdc_login.多采商城登录.多采商城登录 import CmdcMaiiLogin
+from air_case.cmdc_login.后台管理系统登录.后台管理系统登录 import CmdcDoLogin
+import requests
+import json
+import random
+
+module = "cmdc_commodity_activity"
+
+# 第一步登录后台运营平台获取cmdc_access_token
+# 获取登录所需账号密码
+username = commonFuc().get_business_data(module, "username1")
+password = commonFuc().get_business_data(module, "password1")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcDoLogin(username, password).get_token()
+headers = commonFuc().get_business_data(module, "json_headers", cmdc_access_token)
+
+# 第二步进行促销活动列表获取
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url1")
+request_body = commonFuc().get_business_data(module, "payload15")
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+
+# 获取活动对应的activityBasicId和activityType
+activity_basic_id = result["data"]["list"][0]["activityBasicId"]
+activity_type = result["data"]["list"][0]["activityType"]
+
+# 第三步获取对应活动包含的商品信息
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url3")
+request_body = commonFuc().get_business_data(module, "payload3", activity_basic_id, activity_type)
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+# print(result)
+# 获取活动商品id、companyCode、productCode
+company_code = result["data"][0]["companyCode"]
+product_code = result["data"][0]["productCode"]
+purchase_quantity = random.randint(3, 10)
+
+# 获取登录所需账号密码
+username = commonFuc().get_business_data(module, "username")
+password = commonFuc().get_business_data(module, "password")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcMaiiLogin(username, password).get_token()
+headers = commonFuc().get_business_data(module, "json_headers1", cmdc_access_token)
+
+# 第四步验证赠品正确性
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url16")
+# print(url)
+request_body = [
+ {"buyerCartId": 0, "purchaseQuantity": purchase_quantity, "productCode": product_code, "companyCode": company_code}]
+# print(request_body)
+
+"""
+ 场景:购买满足条件买赠商品验证赠品是否赠送
+ 用例名称:购买满足条件买赠商品验证赠品是否赠送
+ 输出:{"productId": 7670}
+"""
+
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+result = {"productId": result["data"][0]["purchaseZeroProductList"][0]["productId"]}
+
+# 获取预期结果
+check_dict = commonFuc().get_business_data(module, "checkDict15")
+print(check_dict)
+# 断言实际结果中是否包含预期结果的内容
+commonFuc().check_result(check_dict, result)
diff --git "a/air_case/cmdc_commodity_activity/\345\225\206\345\223\201_\346\212\230\346\211\243_\346\264\273\345\212\250\351\252\214\350\257\201.air/\345\225\206\345\223\201_\346\212\230\346\211\243_\346\264\273\345\212\250\351\252\214\350\257\201.py" "b/air_case/cmdc_commodity_activity/\345\225\206\345\223\201_\346\212\230\346\211\243_\346\264\273\345\212\250\351\252\214\350\257\201.air/\345\225\206\345\223\201_\346\212\230\346\211\243_\346\264\273\345\212\250\351\252\214\350\257\201.py"
new file mode 100644
index 0000000000000000000000000000000000000000..34fc726f91077d0d0fa3b506c1dac08f097ef4d3
--- /dev/null
+++ "b/air_case/cmdc_commodity_activity/\345\225\206\345\223\201_\346\212\230\346\211\243_\346\264\273\345\212\250\351\252\214\350\257\201.air/\345\225\206\345\223\201_\346\212\230\346\211\243_\346\264\273\345\212\250\351\252\214\350\257\201.py"
@@ -0,0 +1,66 @@
+# -*- encoding=utf8 -*-
+__author__ = "liguangyu"
+
+"""
+case_tag:cmdc_api,cmdc商品参与折扣活动验证,2262,2262-34,sit,bs
+涉及接口:运营后台管理系统登录、活动基本信息获取、活动包含的商品信息和查询商品对应的促销活动等接口
+"""
+
+from common.common_func import commonFuc
+from air_case.cmdc_login.后台管理系统登录.后台管理系统登录 import CmdcDoLogin
+import requests
+import json
+
+module = "cmdc_commodity_activity"
+
+# 第一步登录后台运营平台获取cmdc_access_token
+# 获取登录所需账号密码
+username = commonFuc().get_business_data(module, "username1")
+password = commonFuc().get_business_data(module, "password1")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcDoLogin(username, password).get_token()
+headers = commonFuc().get_business_data(module, "json_headers", cmdc_access_token)
+
+# 第二步进行促销活动列表获取
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url1")
+request_body = commonFuc().get_business_data(module, "payload13")
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+
+# 获取活动对应的activityBasicId和activityType
+activity_basic_id = result["data"]["list"][0]["activityBasicId"]
+activity_type = result["data"]["list"][0]["activityType"]
+
+# 第三步获取对应活动包含的商品信息
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url3")
+request_body = commonFuc().get_business_data(module, "payload3", activity_basic_id, activity_type)
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+# print(result)
+# 获取活动商品id、companyCode、productCode
+product_id = result["data"][0]["productId"]
+company_code = result["data"][0]["companyCode"]
+product_code = result["data"][0]["productCode"]
+
+# 第四步获取对应商品详情
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url7")
+request_body = commonFuc().get_business_data(module, "payload7", product_id, company_code, product_code)
+# print(request_body)
+"""
+ 场景:商品参与折扣活动验证
+ 用例名称:商品参与折扣活动验证
+ 输出:{"activityBasicId": 10134}
+"""
+
+# 发送请求
+result = requests.get(url, params=request_body, headers=headers)
+result = json.loads(result.content)
+result = {"activityBasicId": result["data"]["activity"]["activityBasicId"]}
+# print(result)
+# 获取预期结果
+check_dict = commonFuc().get_business_data(module, "checkDict13")
+print(check_dict)
+# 断言实际结果中是否包含预期结果的内容
+commonFuc().check_result(check_dict, result)
diff --git "a/air_case/cmdc_commodity_activity/\345\225\206\345\223\201_\346\212\230\346\211\243_\350\264\255\344\271\260\346\225\260\351\207\217\344\270\215\346\273\241\350\266\263_\351\207\221\351\242\235\351\252\214\350\257\201.air/\345\225\206\345\223\201_\346\212\230\346\211\243_\350\264\255\344\271\260\346\225\260\351\207\217\344\270\215\346\273\241\350\266\263_\351\207\221\351\242\235\351\252\214\350\257\201.py" "b/air_case/cmdc_commodity_activity/\345\225\206\345\223\201_\346\212\230\346\211\243_\350\264\255\344\271\260\346\225\260\351\207\217\344\270\215\346\273\241\350\266\263_\351\207\221\351\242\235\351\252\214\350\257\201.air/\345\225\206\345\223\201_\346\212\230\346\211\243_\350\264\255\344\271\260\346\225\260\351\207\217\344\270\215\346\273\241\350\266\263_\351\207\221\351\242\235\351\252\214\350\257\201.py"
new file mode 100644
index 0000000000000000000000000000000000000000..9a5528bfa5edc154e243a0b2b4b64ed7e2c6e5d7
--- /dev/null
+++ "b/air_case/cmdc_commodity_activity/\345\225\206\345\223\201_\346\212\230\346\211\243_\350\264\255\344\271\260\346\225\260\351\207\217\344\270\215\346\273\241\350\266\263_\351\207\221\351\242\235\351\252\214\350\257\201.air/\345\225\206\345\223\201_\346\212\230\346\211\243_\350\264\255\344\271\260\346\225\260\351\207\217\344\270\215\346\273\241\350\266\263_\351\207\221\351\242\235\351\252\214\350\257\201.py"
@@ -0,0 +1,70 @@
+# -*- encoding=utf8 -*-
+__author__ = "liguangyu"
+
+"""
+case_tag:cmdc_api,cmdc购买不满足条件折扣商品金额验证,2262,2262-33,sit,bs
+涉及接口:运营后台管理系统登录、活动基本信息获取、活动包含的商品信息和getShoppingCartActivity等接口
+"""
+
+from common.common_func import commonFuc
+from air_case.cmdc_login.后台管理系统登录.后台管理系统登录 import CmdcDoLogin
+import requests
+import json
+import random
+
+module = "cmdc_commodity_activity"
+
+# 第一步登录后台运营平台获取cmdc_access_token
+# 获取登录所需账号密码
+username = commonFuc().get_business_data(module, "username1")
+password = commonFuc().get_business_data(module, "password1")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcDoLogin(username, password).get_token()
+headers = commonFuc().get_business_data(module, "json_headers", cmdc_access_token)
+
+# 第二步进行促销活动列表获取
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url1")
+request_body = commonFuc().get_business_data(module, "payload13")
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+
+# 获取活动对应的activityBasicId和activityType
+activity_basic_id = result["data"]["list"][0]["activityBasicId"]
+activity_type = result["data"]["list"][0]["activityType"]
+
+# 第三步获取对应活动包含的商品信息
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url3")
+request_body = commonFuc().get_business_data(module, "payload3", activity_basic_id, activity_type)
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+# print(result)
+# 获取活动商品id、companyCode、productCode
+product_id = result["data"][0]["productId"]
+company_code = result["data"][0]["companyCode"]
+product_code = result["data"][0]["productCode"]
+product_price = result["data"][0]["referencePrice"]
+purchase_quantity = 1
+
+# 第四步验证减免金额正确性
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url10")
+request_body = commonFuc().get_business_data(module, "payload10", company_code, product_id, product_code, product_price,
+ purchase_quantity)
+# print(request_body)
+"""
+ 场景:验证当购买折扣商品数量不满足规则时,折扣价格是否正确
+ 用例名称:购买满足条件折扣商品金额验证
+ 输出:{"activityAmount":0}
+"""
+
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+activity_amount = result["data"]["orderProductList"][0]["activityAmount"]
+# print(activity_amount)
+# 获取预期结果
+check_dict = commonFuc().get_business_data(module, "checkDict11")
+print(check_dict)
+# 断言实际结果中是否包含预期结果的内容
+commonFuc().check_result(check_dict, result)
diff --git "a/air_case/cmdc_commodity_activity/\345\225\206\345\223\201_\346\212\230\346\211\243_\350\264\255\344\271\260\346\225\260\351\207\217\346\273\241\350\266\263_\351\207\221\351\242\235\351\252\214\350\257\201.air/\345\225\206\345\223\201_\346\212\230\346\211\243_\350\264\255\344\271\260\346\225\260\351\207\217\346\273\241\350\266\263_\351\207\221\351\242\235\351\252\214\350\257\201.py" "b/air_case/cmdc_commodity_activity/\345\225\206\345\223\201_\346\212\230\346\211\243_\350\264\255\344\271\260\346\225\260\351\207\217\346\273\241\350\266\263_\351\207\221\351\242\235\351\252\214\350\257\201.air/\345\225\206\345\223\201_\346\212\230\346\211\243_\350\264\255\344\271\260\346\225\260\351\207\217\346\273\241\350\266\263_\351\207\221\351\242\235\351\252\214\350\257\201.py"
new file mode 100644
index 0000000000000000000000000000000000000000..642b5a38ee994d7f8e9c6f5218c560dfaa8140d7
--- /dev/null
+++ "b/air_case/cmdc_commodity_activity/\345\225\206\345\223\201_\346\212\230\346\211\243_\350\264\255\344\271\260\346\225\260\351\207\217\346\273\241\350\266\263_\351\207\221\351\242\235\351\252\214\350\257\201.air/\345\225\206\345\223\201_\346\212\230\346\211\243_\350\264\255\344\271\260\346\225\260\351\207\217\346\273\241\350\266\263_\351\207\221\351\242\235\351\252\214\350\257\201.py"
@@ -0,0 +1,74 @@
+# -*- encoding=utf8 -*-
+__author__ = "liguangyu"
+
+"""
+case_tag:cmdc_api,cmdc购买满足条件折扣商品金额验证,2262,2262-32,sit,bs
+涉及接口:运营后台管理系统登录、活动基本信息获取、活动包含的商品信息和getShoppingCartActivity等接口
+"""
+
+from common.common_func import commonFuc
+from air_case.cmdc_login.后台管理系统登录.后台管理系统登录 import CmdcDoLogin
+import requests
+import json
+import random
+
+module = "cmdc_commodity_activity"
+
+# 第一步登录后台运营平台获取cmdc_access_token
+# 获取登录所需账号密码
+username = commonFuc().get_business_data(module, "username1")
+password = commonFuc().get_business_data(module, "password1")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcDoLogin(username, password).get_token()
+headers = commonFuc().get_business_data(module, "json_headers", cmdc_access_token)
+
+# 第二步进行促销活动列表获取
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url1")
+request_body = commonFuc().get_business_data(module, "payload13")
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+
+# 获取活动对应的activityBasicId和activityType
+activity_basic_id = result["data"]["list"][0]["activityBasicId"]
+activity_type = result["data"]["list"][0]["activityType"]
+
+# 第三步获取对应活动包含的商品信息
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url3")
+request_body = commonFuc().get_business_data(module, "payload3", activity_basic_id, activity_type)
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+# print(result)
+# 获取活动商品id、companyCode、productCode
+product_id = result["data"][0]["productId"]
+company_code = result["data"][0]["companyCode"]
+product_code = result["data"][0]["productCode"]
+product_price = result["data"][0]["referencePrice"]
+purchase_quantity = random.randint(2, 10)
+# 计算减免金额
+amount = (product_price - (result["data"][0]["unitDiscount"] * product_price)/100) * purchase_quantity
+# 保留两位小数(四舍五入)
+amount = round(amount, 2)
+
+# 第四步验证减免金额正确性
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url10")
+request_body = commonFuc().get_business_data(module, "payload10", company_code, product_id, product_code, product_price,
+ purchase_quantity)
+# print(request_body)
+"""
+ 场景:验证当购买折扣商品数量满足规则时,折扣价格是否正确
+ 用例名称:购买满足条件折扣商品金额验证
+ 输出:{"activityAmount":"%s"}
+"""
+
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+activity_amount = result["data"]["orderProductList"][0]["activityAmount"]
+# print(activity_amount)
+# 获取预期结果
+check_dict = commonFuc().get_business_data(module, "checkDict10", amount)
+print(check_dict)
+# 断言实际结果中是否包含预期结果的内容
+commonFuc().check_result(check_dict, result)
diff --git "a/air_case/cmdc_commodity_activity/\345\225\206\345\223\201_\346\234\252\345\217\202\344\270\216\346\264\273\345\212\250.air/\345\225\206\345\223\201_\346\234\252\345\217\202\344\270\216\346\264\273\345\212\250.py" "b/air_case/cmdc_commodity_activity/\345\225\206\345\223\201_\346\234\252\345\217\202\344\270\216\346\264\273\345\212\250.air/\345\225\206\345\223\201_\346\234\252\345\217\202\344\270\216\346\264\273\345\212\250.py"
new file mode 100644
index 0000000000000000000000000000000000000000..6cd5999e0b790202ebed915da3d2a693fe6f3e60
--- /dev/null
+++ "b/air_case/cmdc_commodity_activity/\345\225\206\345\223\201_\346\234\252\345\217\202\344\270\216\346\264\273\345\212\250.air/\345\225\206\345\223\201_\346\234\252\345\217\202\344\270\216\346\264\273\345\212\250.py"
@@ -0,0 +1,43 @@
+# -*- encoding=utf8 -*-
+__author__ = "liguangyu"
+
+"""
+case_tag:cmdc_api,cmdc商品未参与活动验证,2262,2262-31,sit,bs
+涉及接口:运营后台管理系统登录、查询商品对应的促销活动等接口
+"""
+
+from common.common_func import commonFuc
+from air_case.cmdc_login.后台管理系统登录.后台管理系统登录 import CmdcDoLogin
+import requests
+import json
+
+module = "cmdc_commodity_activity"
+
+# 第一步登录后台运营平台获取cmdc_access_token
+# 获取登录所需账号密码
+username = commonFuc().get_business_data(module, "username1")
+password = commonFuc().get_business_data(module, "password1")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcDoLogin(username, password).get_token()
+headers = commonFuc().get_business_data(module, "json_headers", cmdc_access_token)
+
+# 第二步验证商品未参与活动
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url7")
+request_body = commonFuc().get_business_data(module, "payload8")
+# print(request_body)
+"""
+ 场景:验证商品未参与活动
+ 用例名称:验证商品未参与活动
+ 输出:{"activity": null}
+"""
+
+# 发送请求
+result = requests.get(url, params=request_body, headers=headers)
+result = json.loads(result.content)
+# print(result)
+result = {"activity": result["data"]["activity"]}
+# 获取预期结果
+check_dict = commonFuc().get_business_data(module, "checkDict8")
+print(check_dict)
+# 断言实际结果中是否包含预期结果的内容
+commonFuc().check_result(check_dict, result)
diff --git "a/air_case/cmdc_commodity_activity/\345\225\206\345\223\201_\346\273\241\345\207\217_\346\264\273\345\212\250\351\252\214\350\257\201.air/\345\225\206\345\223\201_\346\273\241\345\207\217_\346\264\273\345\212\250\351\252\214\350\257\201.py" "b/air_case/cmdc_commodity_activity/\345\225\206\345\223\201_\346\273\241\345\207\217_\346\264\273\345\212\250\351\252\214\350\257\201.air/\345\225\206\345\223\201_\346\273\241\345\207\217_\346\264\273\345\212\250\351\252\214\350\257\201.py"
new file mode 100644
index 0000000000000000000000000000000000000000..ded7cc65de21264496686e0445966c89bad88985
--- /dev/null
+++ "b/air_case/cmdc_commodity_activity/\345\225\206\345\223\201_\346\273\241\345\207\217_\346\264\273\345\212\250\351\252\214\350\257\201.air/\345\225\206\345\223\201_\346\273\241\345\207\217_\346\264\273\345\212\250\351\252\214\350\257\201.py"
@@ -0,0 +1,66 @@
+# -*- encoding=utf8 -*-
+__author__ = "liguangyu"
+
+"""
+case_tag:cmdc_api,cmdc商品参与满减活动验证,2262,2262-30,sit,bs
+涉及接口:运营后台管理系统登录、活动基本信息获取、活动包含的商品信息和查询商品对应的促销活动等接口
+"""
+
+from common.common_func import commonFuc
+from air_case.cmdc_login.后台管理系统登录.后台管理系统登录 import CmdcDoLogin
+import requests
+import json
+
+module = "cmdc_commodity_activity"
+
+# 第一步登录后台运营平台获取cmdc_access_token
+# 获取登录所需账号密码
+username = commonFuc().get_business_data(module, "username1")
+password = commonFuc().get_business_data(module, "password1")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcDoLogin(username, password).get_token()
+headers = commonFuc().get_business_data(module, "json_headers", cmdc_access_token)
+
+# 第二步进行促销活动列表获取
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url1")
+request_body = commonFuc().get_business_data(module, "payload14")
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+
+# 获取活动对应的activityBasicId和activityType
+activity_basic_id = result["data"]["list"][0]["activityBasicId"]
+activity_type = result["data"]["list"][0]["activityType"]
+
+# 第三步获取对应活动包含的商品信息
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url3")
+request_body = commonFuc().get_business_data(module, "payload3", activity_basic_id, activity_type)
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+# print(result)
+# 获取活动商品id、companyCode、productCode
+product_id = result["data"][0]["productId"]
+company_code = result["data"][0]["companyCode"]
+product_code = result["data"][0]["productCode"]
+
+# 第四步获取对应商品详情
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url7")
+request_body = commonFuc().get_business_data(module, "payload7", product_id, company_code, product_code)
+# print(request_body)
+"""
+ 场景:商品参与满减活动验证
+ 用例名称:商品参与满减活动验证
+ 输出:{"activityBasicId": 10135}
+"""
+
+# 发送请求
+result = requests.get(url, params=request_body, headers=headers)
+result = json.loads(result.content)
+result = {"activityBasicId": result["data"]["activity"]["activityBasicId"]}
+# print(result)
+# 获取预期结果
+check_dict = commonFuc().get_business_data(module, "checkDict14")
+print(check_dict)
+# 断言实际结果中是否包含预期结果的内容
+commonFuc().check_result(check_dict, result)
diff --git "a/air_case/cmdc_commodity_activity/\345\225\206\345\223\201_\346\273\241\345\207\217_\350\264\255\344\271\260\346\225\260\351\207\217\344\270\215\346\273\241\350\266\263_\351\207\221\351\242\235\351\252\214\350\257\201.air/\345\225\206\345\223\201_\346\273\241\345\207\217_\350\264\255\344\271\260\346\225\260\351\207\217\344\270\215\346\273\241\350\266\263_\351\207\221\351\242\235\351\252\214\350\257\201.py" "b/air_case/cmdc_commodity_activity/\345\225\206\345\223\201_\346\273\241\345\207\217_\350\264\255\344\271\260\346\225\260\351\207\217\344\270\215\346\273\241\350\266\263_\351\207\221\351\242\235\351\252\214\350\257\201.air/\345\225\206\345\223\201_\346\273\241\345\207\217_\350\264\255\344\271\260\346\225\260\351\207\217\344\270\215\346\273\241\350\266\263_\351\207\221\351\242\235\351\252\214\350\257\201.py"
new file mode 100644
index 0000000000000000000000000000000000000000..a0c886635726eb812447787d157c9aabf25bb411
--- /dev/null
+++ "b/air_case/cmdc_commodity_activity/\345\225\206\345\223\201_\346\273\241\345\207\217_\350\264\255\344\271\260\346\225\260\351\207\217\344\270\215\346\273\241\350\266\263_\351\207\221\351\242\235\351\252\214\350\257\201.air/\345\225\206\345\223\201_\346\273\241\345\207\217_\350\264\255\344\271\260\346\225\260\351\207\217\344\270\215\346\273\241\350\266\263_\351\207\221\351\242\235\351\252\214\350\257\201.py"
@@ -0,0 +1,71 @@
+# -*- encoding=utf8 -*-
+__author__ = "liguangyu"
+
+"""
+case_tag:cmdc_api,cmdc购买不满足条件满减商品金额验证,2262,2262-29,sit,bs
+涉及接口:运营后台管理系统登录、活动基本信息获取、活动包含的商品信息和getShoppingCartActivity等接口
+"""
+
+from common.common_func import commonFuc
+from air_case.cmdc_login.后台管理系统登录.后台管理系统登录 import CmdcDoLogin
+import requests
+import json
+import random
+
+module = "cmdc_commodity_activity"
+
+# 第一步登录后台运营平台获取cmdc_access_token
+# 获取登录所需账号密码
+username = commonFuc().get_business_data(module, "username1")
+password = commonFuc().get_business_data(module, "password1")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcDoLogin(username, password).get_token()
+headers = commonFuc().get_business_data(module, "json_headers", cmdc_access_token)
+
+# 第二步进行促销活动列表获取
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url1")
+request_body = commonFuc().get_business_data(module, "payload1")
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+
+# 获取活动对应的activityBasicId和activityType
+activity_basic_id = result["data"]["list"][0]["activityBasicId"]
+activity_type = result["data"]["list"][0]["activityType"]
+
+# 第三步获取对应活动包含的商品信息
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url3")
+request_body = commonFuc().get_business_data(module, "payload3", activity_basic_id, activity_type)
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+# print(result)
+# 获取活动商品id、companyCode、productCode
+product_id = result["data"][0]["productId"]
+company_code = result["data"][0]["companyCode"]
+product_code = result["data"][0]["productCode"]
+product_price = result["data"][0]["referencePrice"]
+purchase_quantity = random.randint(1, 2)
+# print(purchase_quantity)
+# 第四步验证减免金额正确性
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url10")
+request_body = commonFuc().get_business_data(module, "payload10", company_code, product_id, product_code, product_price,
+ purchase_quantity)
+# print(request_body)
+"""
+ 场景:验证当购买满减商品数量不满足规则时,满减价格是否正确
+ 用例名称:购买满足条件满减商品金额验证
+ 输出:{"activityAmount":0}
+"""
+
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+activity_amount = result["data"]["orderProductList"][0]["activityAmount"]
+# print(activity_amount)
+# 获取预期结果
+check_dict = commonFuc().get_business_data(module, "checkDict11")
+print(check_dict)
+# 断言实际结果中是否包含预期结果的内容
+commonFuc().check_result(check_dict, result)
+
diff --git "a/air_case/cmdc_commodity_activity/\345\225\206\345\223\201_\346\273\241\345\207\217_\350\264\255\344\271\260\346\225\260\351\207\217\346\273\241\350\266\263_\351\207\221\351\242\235\351\252\214\350\257\201.air/\345\225\206\345\223\201_\346\273\241\345\207\217_\350\264\255\344\271\260\346\225\260\351\207\217\346\273\241\350\266\263_\351\207\221\351\242\235\351\252\214\350\257\201.py" "b/air_case/cmdc_commodity_activity/\345\225\206\345\223\201_\346\273\241\345\207\217_\350\264\255\344\271\260\346\225\260\351\207\217\346\273\241\350\266\263_\351\207\221\351\242\235\351\252\214\350\257\201.air/\345\225\206\345\223\201_\346\273\241\345\207\217_\350\264\255\344\271\260\346\225\260\351\207\217\346\273\241\350\266\263_\351\207\221\351\242\235\351\252\214\350\257\201.py"
new file mode 100644
index 0000000000000000000000000000000000000000..e02ee3c471312a63754528f05093126468832eb8
--- /dev/null
+++ "b/air_case/cmdc_commodity_activity/\345\225\206\345\223\201_\346\273\241\345\207\217_\350\264\255\344\271\260\346\225\260\351\207\217\346\273\241\350\266\263_\351\207\221\351\242\235\351\252\214\350\257\201.air/\345\225\206\345\223\201_\346\273\241\345\207\217_\350\264\255\344\271\260\346\225\260\351\207\217\346\273\241\350\266\263_\351\207\221\351\242\235\351\252\214\350\257\201.py"
@@ -0,0 +1,74 @@
+# -*- encoding=utf8 -*-
+__author__ = "liguangyu"
+
+"""
+case_tag:cmdc_api,cmdc购买满足条件满减商品金额验证,2262,2262-28,sit,bs
+涉及接口:运营后台管理系统登录、活动基本信息获取、活动包含的商品信息和getShoppingCartActivity等接口
+"""
+
+from common.common_func import commonFuc
+from air_case.cmdc_login.后台管理系统登录.后台管理系统登录 import CmdcDoLogin
+import requests
+import json
+import random
+
+module = "cmdc_commodity_activity"
+
+# 第一步登录后台运营平台获取cmdc_access_token
+# 获取登录所需账号密码
+username = commonFuc().get_business_data(module, "username1")
+password = commonFuc().get_business_data(module, "password1")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcDoLogin(username, password).get_token()
+headers = commonFuc().get_business_data(module, "json_headers", cmdc_access_token)
+
+# 第二步进行促销活动列表获取
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url1")
+request_body = commonFuc().get_business_data(module, "payload14")
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+
+# 获取活动对应的activityBasicId和activityType
+activity_basic_id = result["data"]["list"][0]["activityBasicId"]
+activity_type = result["data"]["list"][0]["activityType"]
+
+# 第三步获取对应活动包含的商品信息
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url3")
+request_body = commonFuc().get_business_data(module, "payload3", activity_basic_id, activity_type)
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+# print(result)
+# 获取活动商品id、companyCode、productCode
+product_id = result["data"][0]["productId"]
+company_code = result["data"][0]["companyCode"]
+product_code = result["data"][0]["productCode"]
+product_price = result["data"][0]["referencePrice"]
+purchase_quantity = random.randint(3, 10)
+# 计算减免金额
+amount = result["data"][0]["reductTotal"]
+# 保留两位小数(四舍五入)
+amount = round(amount, 2)
+
+# 第四步验证减免金额正确性
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url10")
+request_body = commonFuc().get_business_data(module, "payload10", company_code, product_id, product_code, product_price,
+ purchase_quantity)
+# print(request_body)
+"""
+ 场景:验证当购买满减商品数量满足规则时,满减金额是否正确
+ 用例名称:购买满足条件满减商品金额验证
+ 输出:{"activityAmount":"%s"}
+"""
+
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+activity_amount = result["data"]["orderProductList"][0]["activityAmount"]
+print(activity_amount)
+# 获取预期结果
+check_dict = commonFuc().get_business_data(module, "checkDict10", amount)
+print(check_dict)
+# 断言实际结果中是否包含预期结果的内容
+commonFuc().check_result(check_dict, result)
diff --git "a/air_case/cmdc_commodity_activity/\345\225\206\345\223\201_\347\211\271\344\273\267_\346\225\260\351\207\217\344\270\215\346\273\241\350\266\263\350\247\204\345\210\231_\351\207\221\351\242\235\351\252\214\350\257\201.air/\345\225\206\345\223\201_\347\211\271\344\273\267_\346\225\260\351\207\217\344\270\215\346\273\241\350\266\263\350\247\204\345\210\231_\351\207\221\351\242\235\351\252\214\350\257\201.py" "b/air_case/cmdc_commodity_activity/\345\225\206\345\223\201_\347\211\271\344\273\267_\346\225\260\351\207\217\344\270\215\346\273\241\350\266\263\350\247\204\345\210\231_\351\207\221\351\242\235\351\252\214\350\257\201.air/\345\225\206\345\223\201_\347\211\271\344\273\267_\346\225\260\351\207\217\344\270\215\346\273\241\350\266\263\350\247\204\345\210\231_\351\207\221\351\242\235\351\252\214\350\257\201.py"
new file mode 100644
index 0000000000000000000000000000000000000000..59c54c81c88e0f54d5ce349b2350b325db14a06d
--- /dev/null
+++ "b/air_case/cmdc_commodity_activity/\345\225\206\345\223\201_\347\211\271\344\273\267_\346\225\260\351\207\217\344\270\215\346\273\241\350\266\263\350\247\204\345\210\231_\351\207\221\351\242\235\351\252\214\350\257\201.air/\345\225\206\345\223\201_\347\211\271\344\273\267_\346\225\260\351\207\217\344\270\215\346\273\241\350\266\263\350\247\204\345\210\231_\351\207\221\351\242\235\351\252\214\350\257\201.py"
@@ -0,0 +1,70 @@
+# -*- encoding=utf8 -*-
+__author__ = "liguangyu"
+
+"""
+case_tag:cmdc_api,cmdc购买不满足条件特价商品金额验证,2262,2262-27,sit,bs
+涉及接口:运营后台管理系统登录、活动基本信息获取、活动包含的商品信息和getShoppingCartActivity等接口
+"""
+
+from common.common_func import commonFuc
+from air_case.cmdc_login.后台管理系统登录.后台管理系统登录 import CmdcDoLogin
+import requests
+import json
+import random
+
+module = "cmdc_commodity_activity"
+
+# 第一步登录后台运营平台获取cmdc_access_token
+# 获取登录所需账号密码
+username = commonFuc().get_business_data(module, "username1")
+password = commonFuc().get_business_data(module, "password1")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcDoLogin(username, password).get_token()
+headers = commonFuc().get_business_data(module, "json_headers", cmdc_access_token)
+
+# 第二步进行促销活动列表获取
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url1")
+request_body = commonFuc().get_business_data(module, "payload1")
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+
+# 获取活动对应的activityBasicId和activityType
+activity_basic_id = result["data"]["list"][0]["activityBasicId"]
+activity_type = result["data"]["list"][0]["activityType"]
+
+# 第三步获取对应活动包含的商品信息
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url3")
+request_body = commonFuc().get_business_data(module, "payload3", activity_basic_id, activity_type)
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+# print(result)
+# 获取活动商品id、companyCode、productCode
+product_id = result["data"][0]["productId"]
+company_code = result["data"][0]["companyCode"]
+product_code = result["data"][0]["productCode"]
+product_price = result["data"][0]["referencePrice"]
+purchase_quantity = random.randint(1, 5)
+# print(purchase_quantity)
+# 第四步验证减免金额正确性
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url10")
+request_body = commonFuc().get_business_data(module, "payload10", company_code, product_id, product_code, product_price,
+ purchase_quantity)
+# print(request_body)
+"""
+ 场景:验证当购买特价商品数量不满足规则时,减免价格是否正确
+ 用例名称:购买满足条件特价商品金额验证
+ 输出:{"activityAmount":0}
+"""
+
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+activity_amount = result["data"]["orderProductList"][0]["activityAmount"]
+print(activity_amount)
+# 获取预期结果
+check_dict = commonFuc().get_business_data(module, "checkDict11")
+print(check_dict)
+# 断言实际结果中是否包含预期结果的内容
+commonFuc().check_result(check_dict, result)
diff --git "a/air_case/cmdc_commodity_activity/\345\225\206\345\223\201_\347\211\271\344\273\267_\346\225\260\351\207\217\346\273\241\350\266\263\350\247\204\345\210\231_\351\207\221\351\242\235\351\252\214\350\257\201.air/\345\225\206\345\223\201_\347\211\271\344\273\267_\346\225\260\351\207\217\346\273\241\350\266\263\350\247\204\345\210\231_\351\207\221\351\242\235\351\252\214\350\257\201.py" "b/air_case/cmdc_commodity_activity/\345\225\206\345\223\201_\347\211\271\344\273\267_\346\225\260\351\207\217\346\273\241\350\266\263\350\247\204\345\210\231_\351\207\221\351\242\235\351\252\214\350\257\201.air/\345\225\206\345\223\201_\347\211\271\344\273\267_\346\225\260\351\207\217\346\273\241\350\266\263\350\247\204\345\210\231_\351\207\221\351\242\235\351\252\214\350\257\201.py"
new file mode 100644
index 0000000000000000000000000000000000000000..2c9269270571e99bc78811e96b5c550c455f873b
--- /dev/null
+++ "b/air_case/cmdc_commodity_activity/\345\225\206\345\223\201_\347\211\271\344\273\267_\346\225\260\351\207\217\346\273\241\350\266\263\350\247\204\345\210\231_\351\207\221\351\242\235\351\252\214\350\257\201.air/\345\225\206\345\223\201_\347\211\271\344\273\267_\346\225\260\351\207\217\346\273\241\350\266\263\350\247\204\345\210\231_\351\207\221\351\242\235\351\252\214\350\257\201.py"
@@ -0,0 +1,73 @@
+# -*- encoding=utf8 -*-
+__author__ = "liguangyu"
+
+"""
+case_tag:cmdc_api,cmdc购买满足条件特价商品金额验证,2262,2262-26,sit,bs
+涉及接口:运营后台管理系统登录、活动基本信息获取、活动包含的商品信息和getShoppingCartActivity等接口
+"""
+
+from common.common_func import commonFuc
+from air_case.cmdc_login.后台管理系统登录.后台管理系统登录 import CmdcDoLogin
+import requests
+import json
+import random
+
+module = "cmdc_commodity_activity"
+
+# 第一步登录后台运营平台获取cmdc_access_token
+# 获取登录所需账号密码
+username = commonFuc().get_business_data(module, "username1")
+password = commonFuc().get_business_data(module, "password1")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcDoLogin(username, password).get_token()
+headers = commonFuc().get_business_data(module, "json_headers", cmdc_access_token)
+
+# 第二步进行促销活动列表获取
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url1")
+request_body = commonFuc().get_business_data(module, "payload1")
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+
+# 获取活动对应的activityBasicId和activityType
+activity_basic_id = result["data"]["list"][0]["activityBasicId"]
+activity_type = result["data"]["list"][0]["activityType"]
+
+# 第三步获取对应活动包含的商品信息
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url3")
+request_body = commonFuc().get_business_data(module, "payload3", activity_basic_id, activity_type)
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+# 获取活动商品id、companyCode、productCode
+product_id = result["data"][0]["productId"]
+company_code = result["data"][0]["companyCode"]
+product_code = result["data"][0]["productCode"]
+product_price = result["data"][0]["referencePrice"]
+purchase_quantity = random.randint(6, 10)
+# 计算减免金额
+amount = result["data"][0]["directUnitPrice"]*purchase_quantity
+# 保留两位小数(四舍五入)
+amount = round(amount, 2)
+
+# 第四步验证减免金额正确性
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url10")
+request_body = commonFuc().get_business_data(module, "payload10", company_code, product_id, product_code, product_price,
+ purchase_quantity)
+# print(request_body)
+"""
+ 场景:验证当购买特价商品数量满足规则时,减免价格是否正确
+ 用例名称:购买满足条件特价商品金额验证
+ 输出:{"activityAmount":"%s"}
+"""
+
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+activity_amount = result["data"]["orderProductList"][0]["activityAmount"]
+print(activity_amount)
+# 获取预期结果
+check_dict = commonFuc().get_business_data(module, "checkDict10", amount)
+print(check_dict)
+# 断言实际结果中是否包含预期结果的内容
+commonFuc().check_result(check_dict, result)
diff --git "a/air_case/cmdc_commodity_activity/\345\225\206\345\223\201_\347\211\271\344\273\267_\346\264\273\345\212\250\351\252\214\350\257\201.air/\345\225\206\345\223\201_\347\211\271\344\273\267_\346\264\273\345\212\250\351\252\214\350\257\201.py" "b/air_case/cmdc_commodity_activity/\345\225\206\345\223\201_\347\211\271\344\273\267_\346\264\273\345\212\250\351\252\214\350\257\201.air/\345\225\206\345\223\201_\347\211\271\344\273\267_\346\264\273\345\212\250\351\252\214\350\257\201.py"
new file mode 100644
index 0000000000000000000000000000000000000000..5b836c8b71886c735c37453a587ca84ca5639ae9
--- /dev/null
+++ "b/air_case/cmdc_commodity_activity/\345\225\206\345\223\201_\347\211\271\344\273\267_\346\264\273\345\212\250\351\252\214\350\257\201.air/\345\225\206\345\223\201_\347\211\271\344\273\267_\346\264\273\345\212\250\351\252\214\350\257\201.py"
@@ -0,0 +1,66 @@
+# -*- encoding=utf8 -*-
+__author__ = "liguangyu"
+
+"""
+case_tag:cmdc_api,cmdc商品参与特价活动验证,2262,2262-25,sit,bs
+涉及接口:运营后台管理系统登录、活动基本信息获取、活动包含的商品信息和查询商品对应的促销活动等接口
+"""
+
+from common.common_func import commonFuc
+from air_case.cmdc_login.后台管理系统登录.后台管理系统登录 import CmdcDoLogin
+import requests
+import json
+
+module = "cmdc_commodity_activity"
+
+# 第一步登录后台运营平台获取cmdc_access_token
+# 获取登录所需账号密码
+username = commonFuc().get_business_data(module, "username1")
+password = commonFuc().get_business_data(module, "password1")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcDoLogin(username, password).get_token()
+headers = commonFuc().get_business_data(module, "json_headers", cmdc_access_token)
+
+# 第二步进行促销活动列表获取
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url1")
+request_body = commonFuc().get_business_data(module, "payload1")
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+
+# 获取活动对应的activityBasicId和activityType
+activity_basic_id = result["data"]["list"][0]["activityBasicId"]
+activity_type = result["data"]["list"][0]["activityType"]
+
+# 第三步获取对应活动包含的商品信息
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url3")
+request_body = commonFuc().get_business_data(module, "payload3", activity_basic_id, activity_type)
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+# print(result)
+# 获取活动商品id、companyCode、productCode
+product_id = result["data"][0]["productId"]
+company_code = result["data"][0]["companyCode"]
+product_code = result["data"][0]["productCode"]
+
+# 第四步获取对应商品详情
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url7")
+request_body = commonFuc().get_business_data(module, "payload7", product_id, company_code, product_code)
+# print(request_body)
+"""
+ 场景:商品参与特价活动验证
+ 用例名称:商品参与特价活动验证
+ 输出:{"activityBasicId": 10127}
+"""
+
+# 发送请求
+result = requests.get(url, params=request_body, headers=headers)
+result = json.loads(result.content)
+result = {"activityBasicId": result["data"]["activity"]["activityBasicId"]}
+# print(result)
+# 获取预期结果
+check_dict = commonFuc().get_business_data(module, "checkDict9", activity_basic_id)
+print(check_dict)
+# 断言实际结果中是否包含预期结果的内容
+commonFuc().check_result(check_dict, result)
diff --git "a/air_case/cmdc_commodity_activity/\346\237\245\350\257\242\345\225\206\345\223\201\345\257\271\345\272\224\347\232\204\344\277\203\351\224\200\346\264\273\345\212\250.air/\346\237\245\350\257\242\345\225\206\345\223\201\345\257\271\345\272\224\347\232\204\344\277\203\351\224\200\346\264\273\345\212\250.py" "b/air_case/cmdc_commodity_activity/\346\237\245\350\257\242\345\225\206\345\223\201\345\257\271\345\272\224\347\232\204\344\277\203\351\224\200\346\264\273\345\212\250.air/\346\237\245\350\257\242\345\225\206\345\223\201\345\257\271\345\272\224\347\232\204\344\277\203\351\224\200\346\264\273\345\212\250.py"
new file mode 100644
index 0000000000000000000000000000000000000000..8d27841b0b1d59e20812c3f71953083c3b167e9f
--- /dev/null
+++ "b/air_case/cmdc_commodity_activity/\346\237\245\350\257\242\345\225\206\345\223\201\345\257\271\345\272\224\347\232\204\344\277\203\351\224\200\346\264\273\345\212\250.air/\346\237\245\350\257\242\345\225\206\345\223\201\345\257\271\345\272\224\347\232\204\344\277\203\351\224\200\346\264\273\345\212\250.py"
@@ -0,0 +1,65 @@
+# -*- encoding=utf8 -*-
+__author__ = "liguangyu"
+
+"""
+case_tag:cmdc_api,cmdc查询商品对应的促销活动,2262,2262-24,sit,bs
+涉及接口:运营后台管理系统登录、活动基本信息获取、活动包含的商品信息和查询商品对应的促销活动等接口
+"""
+
+from common.common_func import commonFuc
+from air_case.cmdc_login.后台管理系统登录.后台管理系统登录 import CmdcDoLogin
+import requests
+import json
+
+module = "cmdc_commodity_activity"
+
+# 第一步登录后台运营平台获取cmdc_access_token
+# 获取登录所需账号密码
+username = commonFuc().get_business_data(module, "username1")
+password = commonFuc().get_business_data(module, "password1")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcDoLogin(username, password).get_token()
+headers = commonFuc().get_business_data(module, "json_headers", cmdc_access_token)
+
+# 第二步进行促销活动列表获取
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url1")
+request_body = commonFuc().get_business_data(module, "payload1")
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+
+# 获取活动对应的activityBasicId和activityType
+activity_basic_id = result["data"]["list"][0]["activityBasicId"]
+activity_type = result["data"]["list"][0]["activityType"]
+
+# 第三步获取对应活动包含的商品信息
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url3")
+request_body = commonFuc().get_business_data(module, "payload3", activity_basic_id, activity_type)
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+# print(result)
+# 获取活动商品id、companyCode、productCode
+product_id = result["data"][0]["productId"]
+company_code = result["data"][0]["companyCode"]
+product_code = result["data"][0]["productCode"]
+
+# 第四步获取对应商品详情
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url7")
+request_body = commonFuc().get_business_data(module, "payload7", product_id, company_code, product_code)
+# print(request_body)
+"""
+ 场景:查询商品对应的促销活动
+ 用例名称:查询商品对应的促销活动
+ 输出:{"success":true,"code":"200","message":"OK"}
+"""
+
+# 发送请求
+result = requests.get(url, params=request_body, headers=headers)
+result = json.loads(result.content)
+# print(result)
+# 获取预期结果
+check_dict = commonFuc().get_business_data(module, "checkDict7")
+print(check_dict)
+# 断言实际结果中是否包含预期结果的内容
+commonFuc().check_result(check_dict, result)
diff --git "a/air_case/cmdc_commodity_activity/\346\237\245\350\257\242\345\225\206\345\223\201\350\257\246\346\203\205.air/\346\237\245\350\257\242\345\225\206\345\223\201\350\257\246\346\203\205.py" "b/air_case/cmdc_commodity_activity/\346\237\245\350\257\242\345\225\206\345\223\201\350\257\246\346\203\205.air/\346\237\245\350\257\242\345\225\206\345\223\201\350\257\246\346\203\205.py"
new file mode 100644
index 0000000000000000000000000000000000000000..d29a08ef5e7c65a96ae7d61894164e50ecaec8b1
--- /dev/null
+++ "b/air_case/cmdc_commodity_activity/\346\237\245\350\257\242\345\225\206\345\223\201\350\257\246\346\203\205.air/\346\237\245\350\257\242\345\225\206\345\223\201\350\257\246\346\203\205.py"
@@ -0,0 +1,64 @@
+# -*- encoding=utf8 -*-
+__author__ = "liguangyu"
+
+"""
+case_tag:cmdc_api,cmdc查询商品详情,2262,2262-23,sit,bs
+涉及接口:运营后台管理系统登录、活动基本信息获取、活动包含的商品信息和商品详情等接口
+"""
+
+from common.common_func import commonFuc
+from air_case.cmdc_login.后台管理系统登录.后台管理系统登录 import CmdcDoLogin
+import requests
+import json
+
+module = "cmdc_commodity_activity"
+
+# 第一步登录后台运营平台获取cmdc_access_token
+# 获取登录所需账号密码
+username = commonFuc().get_business_data(module, "username1")
+password = commonFuc().get_business_data(module, "password1")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcDoLogin(username, password).get_token()
+headers = commonFuc().get_business_data(module, "json_headers", cmdc_access_token)
+
+# 第二步进行促销活动列表获取
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url1")
+request_body = commonFuc().get_business_data(module, "payload1")
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+
+# 获取活动对应的activityBasicId和activityType
+activity_basic_id = result["data"]["list"][0]["activityBasicId"]
+activity_type = result["data"]["list"][0]["activityType"]
+
+# 第三步获取对应活动包含的商品信息
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url3")
+request_body = commonFuc().get_business_data(module, "payload3", activity_basic_id, activity_type)
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+# print(result)
+# 获取活动商品id
+product_id = result["data"][0]["productId"]
+
+# 第四步获取对应商品详情
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url6")
+request_body = commonFuc().get_business_data(module, "payload6", product_id)
+# print(request_body)
+"""
+ 场景:获取商品详情
+ 用例名称:获取商品详情
+ 输出:{"success":true,"code":"200","message":"OK"}
+"""
+
+# 发送请求
+result = requests.get(url, params=request_body, headers=headers)
+result = json.loads(result.content)
+# print(result)
+# 获取预期结果
+check_dict = commonFuc().get_business_data(module, "checkDict6")
+print(check_dict)
+# 断言实际结果中是否包含预期结果的内容
+commonFuc().check_result(check_dict, result)
+
diff --git "a/air_case/cmdc_commodity_activity/\346\264\273\345\212\250\351\235\236\351\273\221\345\220\215\345\215\225\347\224\250\346\210\267\351\252\214\350\257\201.air/\346\264\273\345\212\250\351\235\236\351\273\221\345\220\215\345\215\225\347\224\250\346\210\267\351\252\214\350\257\201.py" "b/air_case/cmdc_commodity_activity/\346\264\273\345\212\250\351\235\236\351\273\221\345\220\215\345\215\225\347\224\250\346\210\267\351\252\214\350\257\201.air/\346\264\273\345\212\250\351\235\236\351\273\221\345\220\215\345\215\225\347\224\250\346\210\267\351\252\214\350\257\201.py"
new file mode 100644
index 0000000000000000000000000000000000000000..7b34061f01f3397bb6b89dbf8e81c65185e2bd1e
--- /dev/null
+++ "b/air_case/cmdc_commodity_activity/\346\264\273\345\212\250\351\235\236\351\273\221\345\220\215\345\215\225\347\224\250\346\210\267\351\252\214\350\257\201.air/\346\264\273\345\212\250\351\235\236\351\273\221\345\220\215\345\215\225\347\224\250\346\210\267\351\252\214\350\257\201.py"
@@ -0,0 +1,66 @@
+# -*- encoding=utf8 -*-
+__author__ = "liguangyu"
+
+"""
+case_tag:cmdc_api,cmdc商品活动非黑名单用户验证,2262,2262-22,sit,bs
+涉及接口:运营后台管理系统登录、活动基本信息获取、活动包含的商品信息和查询商品对应的促销活动等接口
+"""
+
+from common.common_func import commonFuc
+from air_case.cmdc_login.后台管理系统登录.后台管理系统登录 import CmdcDoLogin
+import requests
+import json
+
+module = "cmdc_commodity_activity"
+
+# 第一步登录后台运营平台获取cmdc_access_token
+# 获取登录所需账号密码
+username = commonFuc().get_business_data(module, "username1")
+password = commonFuc().get_business_data(module, "password1")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcDoLogin(username, password).get_token()
+headers = commonFuc().get_business_data(module, "json_headers", cmdc_access_token)
+
+# 第二步进行促销活动列表获取
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url1")
+request_body = commonFuc().get_business_data(module, "payload22")
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+
+# 获取活动对应的activityBasicId和activityType
+activity_basic_id = result["data"]["list"][0]["activityBasicId"]
+activity_type = result["data"]["list"][0]["activityType"]
+
+# 第三步获取对应活动包含的商品信息
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url3")
+request_body = commonFuc().get_business_data(module, "payload3", activity_basic_id, activity_type)
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+# print(result)
+# 获取活动商品id、companyCode、productCode
+product_id = result["data"][0]["productId"]
+company_code = result["data"][0]["companyCode"]
+product_code = result["data"][0]["productCode"]
+
+# 第四步获取对应商品详情
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url7")
+request_body = commonFuc().get_business_data(module, "payload7", product_id, company_code, product_code)
+# print(request_body)
+"""
+ 场景:商品活动非黑名单用户验证
+ 用例名称:商品活动非黑名单用户验证
+ 输出:{"activityBasicId": 10127}
+"""
+
+# 发送请求
+result = requests.get(url, params=request_body, headers=headers)
+result = json.loads(result.content)
+result = {"activityBasicId": result["data"]["activity"]["activityBasicId"]}
+# print(result)
+# 获取预期结果
+check_dict = commonFuc().get_business_data(module, "checkDict9", activity_basic_id)
+print(check_dict)
+# 断言实际结果中是否包含预期结果的内容
+commonFuc().check_result(check_dict, result)
diff --git "a/air_case/cmdc_commodity_activity/\346\264\273\345\212\250\351\273\221\345\220\215\345\215\225\347\224\250\346\210\267\351\252\214\350\257\201.air/\346\264\273\345\212\250\351\273\221\345\220\215\345\215\225\347\224\250\346\210\267\351\252\214\350\257\201.py" "b/air_case/cmdc_commodity_activity/\346\264\273\345\212\250\351\273\221\345\220\215\345\215\225\347\224\250\346\210\267\351\252\214\350\257\201.air/\346\264\273\345\212\250\351\273\221\345\220\215\345\215\225\347\224\250\346\210\267\351\252\214\350\257\201.py"
new file mode 100644
index 0000000000000000000000000000000000000000..4a733c304a271926274ff963b4855dd21f6652bd
--- /dev/null
+++ "b/air_case/cmdc_commodity_activity/\346\264\273\345\212\250\351\273\221\345\220\215\345\215\225\347\224\250\346\210\267\351\252\214\350\257\201.air/\346\264\273\345\212\250\351\273\221\345\220\215\345\215\225\347\224\250\346\210\267\351\252\214\350\257\201.py"
@@ -0,0 +1,75 @@
+# -*- encoding=utf8 -*-
+__author__ = "liguangyu"
+
+"""
+case_tag:cmdc_api,cmdc商品活动黑名单用户验证,2262,2262-21,sit,bs
+涉及接口:运营后台管理系统登录、活动基本信息获取、活动包含的商品信息和查询商品对应的促销活动等接口
+"""
+
+from common.common_func import commonFuc
+from air_case.cmdc_login.后台管理系统登录.后台管理系统登录 import CmdcDoLogin
+from air_case.cmdc_login.多采商城登录.多采商城登录 import CmdcMaiiLogin
+import requests
+import json
+
+module = "cmdc_commodity_activity"
+
+# 第一步登录后台运营平台获取cmdc_access_token
+# 获取登录所需账号密码
+username = commonFuc().get_business_data(module, "username1")
+password = commonFuc().get_business_data(module, "password1")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcDoLogin(username, password).get_token()
+headers = commonFuc().get_business_data(module, "json_headers", cmdc_access_token)
+
+# 第二步进行促销活动列表获取
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url1")
+request_body = commonFuc().get_business_data(module, "payload22")
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+
+# 获取活动对应的activityBasicId和activityType
+activity_basic_id = result["data"]["list"][0]["activityBasicId"]
+activity_type = result["data"]["list"][0]["activityType"]
+
+# 第三步获取对应活动包含的商品信息
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url3")
+request_body = commonFuc().get_business_data(module, "payload3", activity_basic_id, activity_type)
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+# print(result)
+# 获取活动商品id、companyCode、productCode
+product_id = result["data"][0]["productId"]
+company_code = result["data"][0]["companyCode"]
+product_code = result["data"][0]["productCode"]
+
+# 登录多采商城获取所需账号密码
+username = commonFuc().get_business_data(module, "username5")
+password = commonFuc().get_business_data(module, "password5")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcMaiiLogin(username, password).get_token()
+headers = commonFuc().get_business_data(module, "json_headers1", cmdc_access_token)
+
+# 第四步获取对应商品详情
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url7")
+request_body = commonFuc().get_business_data(module, "payload7", product_id, company_code, product_code)
+# print(request_body)
+"""
+ 场景:商品活动黑名单用户验证
+ 用例名称:商品活动黑名单用户验证
+ 输出:{"activity": null}
+"""
+
+# 发送请求
+result = requests.get(url, params=request_body, headers=headers)
+result = json.loads(result.content)
+print(result)
+result = {"activity": result["data"]["activity"]}
+# print(result)
+# 获取预期结果
+check_dict = commonFuc().get_business_data(module, "checkDict22")
+print(check_dict)
+# 断言实际结果中是否包含预期结果的内容
+commonFuc().check_result(check_dict, result)
diff --git "a/air_case/cmdc_commodity_activity/\350\216\267\345\217\226\345\225\206\345\223\201\345\257\271\345\272\224\347\232\204\350\265\240\345\223\201\344\277\241\346\201\257.air/\350\216\267\345\217\226\345\225\206\345\223\201\345\257\271\345\272\224\347\232\204\350\265\240\345\223\201\344\277\241\346\201\257.py" "b/air_case/cmdc_commodity_activity/\350\216\267\345\217\226\345\225\206\345\223\201\345\257\271\345\272\224\347\232\204\350\265\240\345\223\201\344\277\241\346\201\257.air/\350\216\267\345\217\226\345\225\206\345\223\201\345\257\271\345\272\224\347\232\204\350\265\240\345\223\201\344\277\241\346\201\257.py"
new file mode 100644
index 0000000000000000000000000000000000000000..4afff3aa949d1f571dea44e8b408d7a015276aae
--- /dev/null
+++ "b/air_case/cmdc_commodity_activity/\350\216\267\345\217\226\345\225\206\345\223\201\345\257\271\345\272\224\347\232\204\350\265\240\345\223\201\344\277\241\346\201\257.air/\350\216\267\345\217\226\345\225\206\345\223\201\345\257\271\345\272\224\347\232\204\350\265\240\345\223\201\344\277\241\346\201\257.py"
@@ -0,0 +1,47 @@
+# -*- encoding=utf8 -*-
+__author__ = "liguangyu"
+
+"""
+case_tag:cmdc_api,cmdc获取商品对应的赠品信息,2262,2262-20,sit,bs
+涉及接口:多采商城登录和获取商品对应赠品信息等接口
+"""
+
+from common.common_func import commonFuc
+from air_case.cmdc_login.多采商城登录.多采商城登录 import CmdcMaiiLogin
+import requests
+import json
+import random
+
+module = "cmdc_commodity_activity"
+
+# 第一步登录多采商城获取token信息
+# 获取登录所需账号密码
+username = commonFuc().get_business_data(module, "username")
+password = commonFuc().get_business_data(module, "password")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcMaiiLogin(username, password).get_token()
+headers = commonFuc().get_business_data(module, "json_headers1", cmdc_access_token)
+
+# 第二步获取商品对应的赠品信息
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url16")
+print(url)
+request_body = commonFuc().get_business_data(module, "payload16")
+
+"""
+ 场景:购买满足条件买赠商品验证赠品是否赠送
+ 用例名称:购买满足条件买赠商品验证赠品是否赠送
+ 输出:{"success":True,"code":"200","message":"OK"}
+"""
+
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+# print(result)
+
+
+# 获取预期结果
+check_dict = commonFuc().get_business_data(module, "checkDict16")
+print(check_dict)
+# 断言实际结果中是否包含预期结果的内容
+commonFuc().check_result(check_dict, result)
+
diff --git "a/air_case/cmdc_commodity_activity/\350\216\267\345\217\226\346\264\273\345\212\250\345\214\205\345\220\253\347\232\204\345\225\206\345\223\201\344\277\241\346\201\257.air/\350\216\267\345\217\226\346\264\273\345\212\250\345\214\205\345\220\253\347\232\204\345\225\206\345\223\201\344\277\241\346\201\257.py" "b/air_case/cmdc_commodity_activity/\350\216\267\345\217\226\346\264\273\345\212\250\345\214\205\345\220\253\347\232\204\345\225\206\345\223\201\344\277\241\346\201\257.air/\350\216\267\345\217\226\346\264\273\345\212\250\345\214\205\345\220\253\347\232\204\345\225\206\345\223\201\344\277\241\346\201\257.py"
new file mode 100644
index 0000000000000000000000000000000000000000..236f2a2e344edc763ff266843190cd1ecc134abf
--- /dev/null
+++ "b/air_case/cmdc_commodity_activity/\350\216\267\345\217\226\346\264\273\345\212\250\345\214\205\345\220\253\347\232\204\345\225\206\345\223\201\344\277\241\346\201\257.air/\350\216\267\345\217\226\346\264\273\345\212\250\345\214\205\345\220\253\347\232\204\345\225\206\345\223\201\344\277\241\346\201\257.py"
@@ -0,0 +1,53 @@
+# -*- encoding=utf8 -*-
+__author__ = "liguangyu"
+
+"""
+case_tag:cmdc_api,cmdc获取活动包含的商品信息,2262,2262-19,sit,bs
+涉及接口:运营后台管理系统登录、活动基本信息获取和活动包含的商品信息等接口
+"""
+
+from common.common_func import commonFuc
+from air_case.cmdc_login.后台管理系统登录.后台管理系统登录 import CmdcDoLogin
+import requests
+import json
+
+module = "cmdc_commodity_activity"
+
+# 第一步登录后台运营平台获取cmdc_access_token
+# 获取登录所需账号密码
+username = commonFuc().get_business_data(module, "username1")
+password = commonFuc().get_business_data(module, "password1")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcDoLogin(username, password).get_token()
+headers = commonFuc().get_business_data(module, "json_headers", cmdc_access_token)
+
+# 第二步进行促销活动列表获取
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url1")
+request_body = commonFuc().get_business_data(module, "payload1")
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+
+# 获取活动对应的activityBasicId和activityType
+activity_basic_id = result["data"]["list"][0]["activityBasicId"]
+activity_type = result["data"]["list"][0]["activityType"]
+
+# 第三步获取对应活动基本信息
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url3")
+request_body = commonFuc().get_business_data(module, "payload3", activity_basic_id, activity_type)
+
+"""
+ 场景:获取活动包含的商品信息
+ 用例名称:获取活动包含的商品信息
+ 输出:{"success":true,"code":"200","message":"OK"}
+"""
+
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+# print(result)
+# 获取预期结果
+check_dict = commonFuc().get_business_data(module, "checkDict3")
+print(check_dict)
+# 断言实际结果中是否包含预期结果的内容
+commonFuc().check_result(check_dict, result)
diff --git "a/air_case/cmdc_commodity_activity/\350\216\267\345\217\226\346\264\273\345\212\250\345\237\272\346\234\254\344\277\241\346\201\257.air/\350\216\267\345\217\226\346\264\273\345\212\250\345\237\272\346\234\254\344\277\241\346\201\257.py" "b/air_case/cmdc_commodity_activity/\350\216\267\345\217\226\346\264\273\345\212\250\345\237\272\346\234\254\344\277\241\346\201\257.air/\350\216\267\345\217\226\346\264\273\345\212\250\345\237\272\346\234\254\344\277\241\346\201\257.py"
new file mode 100644
index 0000000000000000000000000000000000000000..ab0c38d00ecb8e181a22c0e73edd15982505dd27
--- /dev/null
+++ "b/air_case/cmdc_commodity_activity/\350\216\267\345\217\226\346\264\273\345\212\250\345\237\272\346\234\254\344\277\241\346\201\257.air/\350\216\267\345\217\226\346\264\273\345\212\250\345\237\272\346\234\254\344\277\241\346\201\257.py"
@@ -0,0 +1,52 @@
+# -*- encoding=utf8 -*-
+__author__ = "liguangyu"
+
+"""
+case_tag:cmdc_api,cmdc获取活动基本信息,2262,2262-18,sit,bs
+涉及接口:运营后台管理系统登录、促销活动列表获取、活动基本信息获取等接口
+"""
+
+from common.common_func import commonFuc
+from air_case.cmdc_login.后台管理系统登录.后台管理系统登录 import CmdcDoLogin
+import requests
+import json
+
+module = "cmdc_commodity_activity"
+
+# 第一步登录后台运营平台获取cmdc_access_token
+# 获取登录所需账号密码
+username = commonFuc().get_business_data(module, "username1")
+password = commonFuc().get_business_data(module, "password1")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcDoLogin(username, password).get_token()
+headers = commonFuc().get_business_data(module, "json_headers", cmdc_access_token)
+
+# 第二步进行促销活动列表获取
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url1")
+request_body = commonFuc().get_business_data(module, "payload1")
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+
+# 获取活动对应的activityBasicId
+activity_basic_id = result["data"]["list"][0]["activityBasicId"]
+
+# 第三步获取对应活动基本信息
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url2")
+request_body = commonFuc().get_business_data(module, "payload2", activity_basic_id)
+
+"""
+ 场景:查询促销活动列表
+ 用例名称:查询促销活动列表
+ 输出:{"success":true,"code":"200","message":"OK"}
+"""
+
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+# print(result)
+# 获取预期结果
+check_dict = commonFuc().get_business_data(module, "checkDict2")
+print(check_dict)
+# 断言实际结果中是否包含预期结果的内容
+commonFuc().check_result(check_dict, result)
diff --git "a/air_case/cmdc_commodity_activity/\350\216\267\345\217\226\346\264\273\345\212\250\345\257\271\345\272\224\347\232\204\346\214\207\345\256\232\345\256\242\346\210\267\345\267\256\345\274\202\344\277\203\351\224\200\350\247\204\345\210\231.air/\350\216\267\345\217\226\346\264\273\345\212\250\345\257\271\345\272\224\347\232\204\346\214\207\345\256\232\345\256\242\346\210\267\345\267\256\345\274\202\344\277\203\351\224\200\350\247\204\345\210\231.py" "b/air_case/cmdc_commodity_activity/\350\216\267\345\217\226\346\264\273\345\212\250\345\257\271\345\272\224\347\232\204\346\214\207\345\256\232\345\256\242\346\210\267\345\267\256\345\274\202\344\277\203\351\224\200\350\247\204\345\210\231.air/\350\216\267\345\217\226\346\264\273\345\212\250\345\257\271\345\272\224\347\232\204\346\214\207\345\256\232\345\256\242\346\210\267\345\267\256\345\274\202\344\277\203\351\224\200\350\247\204\345\210\231.py"
new file mode 100644
index 0000000000000000000000000000000000000000..3a14a6880fd2f8d3743514d83dd2166c4f1bbb30
--- /dev/null
+++ "b/air_case/cmdc_commodity_activity/\350\216\267\345\217\226\346\264\273\345\212\250\345\257\271\345\272\224\347\232\204\346\214\207\345\256\232\345\256\242\346\210\267\345\267\256\345\274\202\344\277\203\351\224\200\350\247\204\345\210\231.air/\350\216\267\345\217\226\346\264\273\345\212\250\345\257\271\345\272\224\347\232\204\346\214\207\345\256\232\345\256\242\346\210\267\345\267\256\345\274\202\344\277\203\351\224\200\350\247\204\345\210\231.py"
@@ -0,0 +1,54 @@
+# -*- encoding=utf8 -*-
+__author__ = "liguangyu"
+
+"""
+case_tag:cmdc_api,cmdc获取活动对应的指定客户差异促销规则,2262,2262-17,sit,bs
+涉及接口:运营后台管理系统登录、活动基本信息获取和活动包含的商品信息等接口
+"""
+
+from common.common_func import commonFuc
+from air_case.cmdc_login.后台管理系统登录.后台管理系统登录 import CmdcDoLogin
+import requests
+import json
+
+module = "cmdc_commodity_activity"
+
+# 第一步登录后台运营平台获取cmdc_access_token
+# 获取登录所需账号密码
+username = commonFuc().get_business_data(module, "username1")
+password = commonFuc().get_business_data(module, "password1")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcDoLogin(username, password).get_token()
+headers = commonFuc().get_business_data(module, "json_headers", cmdc_access_token)
+
+# 第二步进行促销活动列表获取
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url1")
+request_body = commonFuc().get_business_data(module, "payload1")
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+
+# 获取活动对应的activityBasicId和activityType
+activity_basic_id = result["data"]["list"][0]["activityBasicId"]
+activity_type = result["data"]["list"][0]["activityType"]
+
+# 第三步获取对应活动基本信息
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url5")
+request_body = commonFuc().get_business_data(module, "payload5", activity_basic_id, activity_type)
+# print(request_body)
+
+"""
+ 场景:获取活动对应的指定客户差异促销规则
+ 用例名称:获取活动对应的指定客户差异促销规则
+ 输出:{"success":true,"code":"200","message":"OK"}
+"""
+
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+# print(result)
+# 获取预期结果
+check_dict = commonFuc().get_business_data(module, "checkDict5")
+print(check_dict)
+# 断言实际结果中是否包含预期结果的内容
+commonFuc().check_result(check_dict, result)
diff --git "a/air_case/cmdc_commodity_activity/\350\216\267\345\217\226\346\264\273\345\212\250\345\257\271\345\272\224\347\232\204\351\273\221\345\220\215\345\215\225.air/\350\216\267\345\217\226\346\264\273\345\212\250\345\257\271\345\272\224\347\232\204\351\273\221\345\220\215\345\215\225.py" "b/air_case/cmdc_commodity_activity/\350\216\267\345\217\226\346\264\273\345\212\250\345\257\271\345\272\224\347\232\204\351\273\221\345\220\215\345\215\225.air/\350\216\267\345\217\226\346\264\273\345\212\250\345\257\271\345\272\224\347\232\204\351\273\221\345\220\215\345\215\225.py"
new file mode 100644
index 0000000000000000000000000000000000000000..406b41b8d511077ee5fd7f53d4f347736aed77e8
--- /dev/null
+++ "b/air_case/cmdc_commodity_activity/\350\216\267\345\217\226\346\264\273\345\212\250\345\257\271\345\272\224\347\232\204\351\273\221\345\220\215\345\215\225.air/\350\216\267\345\217\226\346\264\273\345\212\250\345\257\271\345\272\224\347\232\204\351\273\221\345\220\215\345\215\225.py"
@@ -0,0 +1,52 @@
+# -*- encoding=utf8 -*-
+__author__ = "liguangyu"
+
+"""
+case_tag:cmdc_api,cmdc获取活动对应的黑名单,2262,2262-16,sit,bs
+涉及接口:运营后台管理系统登录、促销活动列表获取和活动对应的黑名单获取等接口
+"""
+
+from common.common_func import commonFuc
+from air_case.cmdc_login.后台管理系统登录.后台管理系统登录 import CmdcDoLogin
+import requests
+import json
+
+module = "cmdc_commodity_activity"
+
+# 第一步登录后台运营平台获取cmdc_access_token
+# 获取登录所需账号密码
+username = commonFuc().get_business_data(module, "username1")
+password = commonFuc().get_business_data(module, "password1")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcDoLogin(username, password).get_token()
+headers = commonFuc().get_business_data(module, "json_headers", cmdc_access_token)
+
+# 第二步进行促销活动列表获取
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url1")
+request_body = commonFuc().get_business_data(module, "payload1")
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+
+# 获取活动对应的activityBasicId
+activity_basic_id = result["data"]["list"][0]["activityBasicId"]
+
+# 第三步获取对应活动基本信息
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url4")
+request_body = commonFuc().get_business_data(module, "payload4", activity_basic_id)
+
+"""
+ 场景:获取活动对应的黑名单
+ 用例名称:获取活动对应的黑名单
+ 输出:{"success":true,"code":"200","message":"OK"}
+"""
+
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+# print(result)
+# 获取预期结果
+check_dict = commonFuc().get_business_data(module, "checkDict4")
+print(check_dict)
+# 断言实际结果中是否包含预期结果的内容
+commonFuc().check_result(check_dict, result)
diff --git "a/air_case/cmdc_commodity_activity/\351\233\205\345\237\271\351\200\211\350\265\240_\346\264\273\345\212\250\345\225\206\345\223\201\351\252\214\350\257\201.air/\351\233\205\345\237\271\351\200\211\350\265\240_\346\264\273\345\212\250\345\225\206\345\223\201\351\252\214\350\257\201.py" "b/air_case/cmdc_commodity_activity/\351\233\205\345\237\271\351\200\211\350\265\240_\346\264\273\345\212\250\345\225\206\345\223\201\351\252\214\350\257\201.air/\351\233\205\345\237\271\351\200\211\350\265\240_\346\264\273\345\212\250\345\225\206\345\223\201\351\252\214\350\257\201.py"
new file mode 100644
index 0000000000000000000000000000000000000000..270e410ddb8fb0c5677495fe207225eb49a63463
--- /dev/null
+++ "b/air_case/cmdc_commodity_activity/\351\233\205\345\237\271\351\200\211\350\265\240_\346\264\273\345\212\250\345\225\206\345\223\201\351\252\214\350\257\201.air/\351\233\205\345\237\271\351\200\211\350\265\240_\346\264\273\345\212\250\345\225\206\345\223\201\351\252\214\350\257\201.py"
@@ -0,0 +1,76 @@
+# -*- encoding=utf8 -*-
+__author__ = "liguangyu"
+
+"""
+case_tag:cmdc_api,cmdc验证雅培选赠活动商品,2262,2262-15,sit,bs
+涉及接口:运营后台管理系统登录、活动基本信息获取、活动包含的商品信息和查询商品对应的促销活动等接口
+"""
+
+from common.common_func import commonFuc
+from air_case.cmdc_login.多采商城登录.多采商城登录 import CmdcMaiiLogin
+from air_case.cmdc_login.后台管理系统登录.后台管理系统登录 import CmdcDoLogin
+import requests
+import json
+
+module = "cmdc_commodity_activity"
+
+# 第一步登录后台运营平台获取cmdc_access_token
+# 获取登录所需账号密码
+username = commonFuc().get_business_data(module, "username4")
+password = commonFuc().get_business_data(module, "password4")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcDoLogin(username, password).get_token()
+headers = commonFuc().get_business_data(module, "json_headers", cmdc_access_token)
+
+# 第二步进行促销活动列表获取
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url1")
+request_body = commonFuc().get_business_data(module, "payload18")
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+
+# 获取活动对应的activityBasicId和activityType
+activity_basic_id = result["data"]["list"][0]["activityBasicId"]
+activity_type = result["data"]["list"][0]["activityType"]
+
+# 第三步获取雅培选赠活动对应的活动商品信息
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url3")
+# print(url)
+request_body = commonFuc().get_business_data(module, "payload3", activity_basic_id, activity_type)
+# print(request_body)
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+# print(result)
+# 获取活动用户companyCode、userId
+company_code = result["data"][0]["companyCode"]
+product_id = result["data"][0]["productId"]
+product_code = result["data"][0]["productCode"]
+
+# 获取登录所需账号密码
+username = commonFuc().get_business_data(module, "username3")
+password = commonFuc().get_business_data(module, "password3")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcMaiiLogin(username, password).get_token()
+headers = commonFuc().get_business_data(module, "json_headers1", cmdc_access_token)
+
+# 第四步验证活动用户对应的活动
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url21")
+request_body = commonFuc().get_business_data(module, "payload21", company_code, product_id, product_code)
+
+"""
+ 场景:登录活动用户账户、查看活动商品信息是否包含雅培选赠信息
+ 用例名称:特定用户特定商品雅培选赠活动验证
+ 输出:{"activityBasicId": "%s"}
+"""
+
+# 发送请求
+result = requests.get(url, params=request_body, headers=headers)
+result = json.loads(result.content)
+# 获取活动客户对应的活动规则id
+result = {"activityBasicId": result["data"][0]["activityBasicId"]}
+# 获取预期结果
+check_dict = commonFuc().get_business_data(module, "checkDict20", activity_basic_id)
+print(check_dict)
+# 断言实际结果中是否包含预期结果的内容
+commonFuc().check_result(check_dict, result)
diff --git "a/air_case/cmdc_commodity_activity/\351\233\205\345\237\271\351\200\211\350\265\240_\346\264\273\345\212\250\347\224\250\346\210\267\351\252\214\350\257\201.air/\351\233\205\345\237\271\351\200\211\350\265\240_\346\264\273\345\212\250\347\224\250\346\210\267\351\252\214\350\257\201.py" "b/air_case/cmdc_commodity_activity/\351\233\205\345\237\271\351\200\211\350\265\240_\346\264\273\345\212\250\347\224\250\346\210\267\351\252\214\350\257\201.air/\351\233\205\345\237\271\351\200\211\350\265\240_\346\264\273\345\212\250\347\224\250\346\210\267\351\252\214\350\257\201.py"
new file mode 100644
index 0000000000000000000000000000000000000000..483ce0a79aef7ecccf49dca0e2aa4698553d6483
--- /dev/null
+++ "b/air_case/cmdc_commodity_activity/\351\233\205\345\237\271\351\200\211\350\265\240_\346\264\273\345\212\250\347\224\250\346\210\267\351\252\214\350\257\201.air/\351\233\205\345\237\271\351\200\211\350\265\240_\346\264\273\345\212\250\347\224\250\346\210\267\351\252\214\350\257\201.py"
@@ -0,0 +1,75 @@
+# -*- encoding=utf8 -*-
+__author__ = "liguangyu"
+
+"""
+case_tag:cmdc_api,cmdc验证雅培选赠活动用户,2262,2262-14,sit,bs
+涉及接口:运营后台管理系统登录、活动基本信息获取、活动包含的商品信息和查询商品对应的促销活动等接口
+"""
+
+from common.common_func import commonFuc
+from air_case.cmdc_login.多采商城登录.多采商城登录 import CmdcMaiiLogin
+from air_case.cmdc_login.后台管理系统登录.后台管理系统登录 import CmdcDoLogin
+import requests
+import json
+
+module = "cmdc_commodity_activity"
+
+# 第一步登录后台运营平台获取cmdc_access_token
+# 获取登录所需账号密码
+username = commonFuc().get_business_data(module, "username4")
+password = commonFuc().get_business_data(module, "password4")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcDoLogin(username, password).get_token()
+headers = commonFuc().get_business_data(module, "json_headers", cmdc_access_token)
+
+# 第二步进行促销活动列表获取
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url1")
+request_body = commonFuc().get_business_data(module, "payload18")
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+
+# 获取活动对应的activityBasicId和activityType
+activity_basic_id = result["data"]["list"][0]["activityBasicId"]
+activity_type = result["data"]["list"][0]["activityType"]
+
+# 第三步获取雅培选赠活动对应的活动客户
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url19")
+# print(url)
+request_body = commonFuc().get_business_data(module, "payload19", activity_basic_id, activity_type)
+# print(request_body)
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+# print(result)
+# 获取活动用户companyCode、userId
+company_code = result["data"][0]["companyCode"]
+user_id = result["data"][0]["userId"]
+
+# 获取登录所需账号密码
+username = commonFuc().get_business_data(module, "username3")
+password = commonFuc().get_business_data(module, "password3")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcMaiiLogin(username, password).get_token()
+headers = commonFuc().get_business_data(module, "json_headers1", cmdc_access_token)
+
+# 第四步验证活动用户对应的活动
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url20")
+request_body = commonFuc().get_business_data(module, "payload20", company_code, user_id)
+
+"""
+ 场景:登录活动用户账户、查看活动商品信息是否包含雅培选赠信息
+ 用例名称:特定用户特定商品雅培选赠活动验证
+ 输出:{"activityBasicId": "%s"}
+"""
+
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+# 获取活动客户对应的活动规则id
+result = {"activityBasicId": result["data"][0]["activityBasicId"]}
+# 获取预期结果
+check_dict = commonFuc().get_business_data(module, "checkDict20", activity_basic_id)
+print(check_dict)
+# 断言实际结果中是否包含预期结果的内容
+commonFuc().check_result(check_dict, result)
diff --git "a/air_case/cmdc_commodity_list/\346\237\245\350\257\242\345\244\261\346\225\210\345\225\206\345\223\201.air/\346\237\245\350\257\242\345\244\261\346\225\210\345\225\206\345\223\201.py" "b/air_case/cmdc_commodity_list/\346\237\245\350\257\242\345\244\261\346\225\210\345\225\206\345\223\201.air/\346\237\245\350\257\242\345\244\261\346\225\210\345\225\206\345\223\201.py"
new file mode 100644
index 0000000000000000000000000000000000000000..184c9283e4a1803db2f679e39d6e529355126c78
--- /dev/null
+++ "b/air_case/cmdc_commodity_list/\346\237\245\350\257\242\345\244\261\346\225\210\345\225\206\345\223\201.air/\346\237\245\350\257\242\345\244\261\346\225\210\345\225\206\345\223\201.py"
@@ -0,0 +1,40 @@
+# -*- encoding=utf8 -*-
+__author__ = "liguangyu"
+
+"""
+case_tag:cmdc_api,cmdc查询已失效商品,2252,2252-18,sit,bs
+主数据平台:运营后台管理系统查询已失效商品接口
+"""
+
+from common.common_func import commonFuc
+from air_case.cmdc_login.后台管理系统登录.后台管理系统登录 import CmdcDoLogin
+import requests
+import json
+
+
+module = "cmdc_commodity_list"
+
+
+# 第一步登录后台运营平台获取cmdc_access_token
+# 获取登录所需账号密码
+username = commonFuc().get_business_data(module, "username")
+password = commonFuc().get_business_data(module, "password")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcDoLogin(username, password).get_token()
+headers = commonFuc().get_business_data(module, "json_headers", cmdc_access_token)
+# 第二步查询商品信息管理中已失效商品
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url1")
+request_body = commonFuc().get_business_data(module, "payload1")
+"""
+ 场景:查询已失效商品信息
+ 用例名称:查询已失效商品信息
+ 输出:{"success":true,"code":"200","message":"OK"}
+"""
+
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+# 获取预期结果
+check_dict = commonFuc().get_business_data(module, "checkDict1")
+# 断言实际结果中是否包含预期结果的内容
+commonFuc().check_result(check_dict, result)
diff --git "a/air_case/cmdc_commodity_list/\346\237\245\350\257\242\345\267\262\344\270\212\346\236\266\345\225\206\345\223\201.air/\346\237\245\350\257\242\345\267\262\344\270\212\346\236\266\345\225\206\345\223\201.py" "b/air_case/cmdc_commodity_list/\346\237\245\350\257\242\345\267\262\344\270\212\346\236\266\345\225\206\345\223\201.air/\346\237\245\350\257\242\345\267\262\344\270\212\346\236\266\345\225\206\345\223\201.py"
new file mode 100644
index 0000000000000000000000000000000000000000..1aeb63317fe3fab7a62cc73fd7deb5cfe9aee655
--- /dev/null
+++ "b/air_case/cmdc_commodity_list/\346\237\245\350\257\242\345\267\262\344\270\212\346\236\266\345\225\206\345\223\201.air/\346\237\245\350\257\242\345\267\262\344\270\212\346\236\266\345\225\206\345\223\201.py"
@@ -0,0 +1,40 @@
+# -*- encoding=utf8 -*-
+__author__ = "liguangyu"
+
+"""
+case_tag:cmdc_api,cmdc查询已上架商品,2252,2252-19,sit,bs
+主数据平台:运营后台管理系统查询已上架商品接口
+"""
+
+from common.common_func import commonFuc
+from air_case.cmdc_login.后台管理系统登录.后台管理系统登录 import CmdcDoLogin
+import requests
+import json
+
+
+module = "cmdc_commodity_list"
+
+
+# 第一步登录后台运营平台获取cmdc_access_token
+# 获取登录所需账号密码
+username = commonFuc().get_business_data(module, "username")
+password = commonFuc().get_business_data(module, "password")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcDoLogin(username, password).get_token()
+headers = commonFuc().get_business_data(module, "json_headers", cmdc_access_token)
+# 第二步查询商品信息管理中已上架商品
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url2")
+request_body = commonFuc().get_business_data(module, "payload2")
+"""
+ 场景:查询已上架商品信息
+ 用例名称:查询已上架商品信息
+ 输出:{"success":true,"code":"200","message":"OK"}
+"""
+
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+# 获取预期结果
+check_dict = commonFuc().get_business_data(module, "checkDict2")
+# 断言实际结果中是否包含预期结果的内容
+commonFuc().check_result(check_dict, result)
diff --git "a/air_case/cmdc_commodity_list/\346\237\245\350\257\242\346\216\247\351\224\200\345\225\206\345\223\201.air/\346\237\245\350\257\242\346\216\247\351\224\200\345\225\206\345\223\201.py" "b/air_case/cmdc_commodity_list/\346\237\245\350\257\242\346\216\247\351\224\200\345\225\206\345\223\201.air/\346\237\245\350\257\242\346\216\247\351\224\200\345\225\206\345\223\201.py"
new file mode 100644
index 0000000000000000000000000000000000000000..58254ca372403b72f05d5d7cc56ba5640b070b2f
--- /dev/null
+++ "b/air_case/cmdc_commodity_list/\346\237\245\350\257\242\346\216\247\351\224\200\345\225\206\345\223\201.air/\346\237\245\350\257\242\346\216\247\351\224\200\345\225\206\345\223\201.py"
@@ -0,0 +1,40 @@
+# -*- encoding=utf8 -*-
+__author__ = "liguangyu"
+
+"""
+case_tag:cmdc_api,cmdc查询控销商品,2252,2252-20,sit,bs
+主数据平台:运营后台管理系统查询控销商品接口
+"""
+
+from common.common_func import commonFuc
+from air_case.cmdc_login.后台管理系统登录.后台管理系统登录 import CmdcDoLogin
+import requests
+import json
+
+module = "cmdc_commodity_list"
+
+# 第一步登录后台运营平台获取cmdc_access_token
+# 获取登录所需账号密码
+username = commonFuc().get_business_data(module, "username")
+password = commonFuc().get_business_data(module, "password")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcDoLogin(username, password).get_token()
+headers = commonFuc().get_business_data(module, "json_headers", cmdc_access_token)
+# 第二步查询商品信息管理中控销商品
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url3")
+request_body = commonFuc().get_business_data(module, "payload3")
+
+"""
+ 场景:查询控销商品信息
+ 用例名称:查询控销商品信息
+ 输出:{"success":true,"code":"200","message":"OK"}
+"""
+
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+# 获取预期结果
+check_dict = commonFuc().get_business_data(module, "checkDict3")
+print(check_dict)
+# 断言实际结果中是否包含预期结果的内容
+commonFuc().check_result(check_dict, result)
diff --git "a/air_case/cmdc_commodity_list/\346\237\245\350\257\242\350\265\240\345\223\201.air/\346\237\245\350\257\242\350\265\240\345\223\201.py" "b/air_case/cmdc_commodity_list/\346\237\245\350\257\242\350\265\240\345\223\201.air/\346\237\245\350\257\242\350\265\240\345\223\201.py"
new file mode 100644
index 0000000000000000000000000000000000000000..168233ecaa5249fa8427c15f2533a9ec1fc46afd
--- /dev/null
+++ "b/air_case/cmdc_commodity_list/\346\237\245\350\257\242\350\265\240\345\223\201.air/\346\237\245\350\257\242\350\265\240\345\223\201.py"
@@ -0,0 +1,41 @@
+# -*- encoding=utf8 -*-
+__author__ = "liguangyu"
+
+"""
+case_tag:cmdc_api,cmdc查询赠品,2252,2252-21,sit,bs
+主数据平台:运营后台管理系统查询赠品接口
+"""
+
+from common.common_func import commonFuc
+from air_case.cmdc_login.后台管理系统登录.后台管理系统登录 import CmdcDoLogin
+import requests
+import json
+
+
+module = "cmdc_commodity_list"
+
+
+# 第一步登录后台运营平台获取cmdc_access_token
+# 获取登录所需账号密码
+username = commonFuc().get_business_data(module, "username")
+password = commonFuc().get_business_data(module, "password")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcDoLogin(username, password).get_token()
+headers = commonFuc().get_business_data(module, "json_headers", cmdc_access_token)
+# 第二步查询商品信息管理中赠品
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url4")
+request_body = commonFuc().get_business_data(module, "payload4")
+"""
+ 场景:查询赠品信息
+ 用例名称:查询赠品信息
+ 输出:{"success":true,"code":"200","message":"OK"}
+"""
+
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+# 获取预期结果
+check_dict = commonFuc().get_business_data(module, "checkDict4")
+print(check_dict)
+# 断言实际结果中是否包含预期结果的内容
+commonFuc().check_result(check_dict, result)
diff --git "a/air_case/cmdc_coupon/\344\274\230\346\203\240\345\210\270_\345\257\274\345\205\245\345\274\217_\347\224\250\346\210\267\345\217\221\346\224\276\351\252\214\350\257\201.air/\344\274\230\346\203\240\345\210\270_\345\257\274\345\205\245\345\274\217_\347\224\250\346\210\267\345\217\221\346\224\276\351\252\214\350\257\201.py" "b/air_case/cmdc_coupon/\344\274\230\346\203\240\345\210\270_\345\257\274\345\205\245\345\274\217_\347\224\250\346\210\267\345\217\221\346\224\276\351\252\214\350\257\201.air/\344\274\230\346\203\240\345\210\270_\345\257\274\345\205\245\345\274\217_\347\224\250\346\210\267\345\217\221\346\224\276\351\252\214\350\257\201.py"
new file mode 100644
index 0000000000000000000000000000000000000000..eb4d28bb3e2dbb79ff891fd4c5b7fc9fa84499a7
--- /dev/null
+++ "b/air_case/cmdc_coupon/\344\274\230\346\203\240\345\210\270_\345\257\274\345\205\245\345\274\217_\347\224\250\346\210\267\345\217\221\346\224\276\351\252\214\350\257\201.air/\344\274\230\346\203\240\345\210\270_\345\257\274\345\205\245\345\274\217_\347\224\250\346\210\267\345\217\221\346\224\276\351\252\214\350\257\201.py"
@@ -0,0 +1,44 @@
+# -*- encoding=utf8 -*-
+__author__ = "liguangyu"
+
+"""
+case_tag:cmdc_api,cmdc导入式优惠券用户发放验证,2262,2262-13,sit,bs
+涉及接口:多采商城登录、myCoupon等接口
+"""
+
+from common.common_func import commonFuc
+from air_case.cmdc_login.多采商城登录.多采商城登录 import CmdcMaiiLogin
+import requests
+import json
+
+module = "cmdc_coupon"
+
+# 第一步登录多采商城获取cmdc_access_token
+# 获取登录所需账号密码
+username = commonFuc().get_business_data(module, "username5")
+password = commonFuc().get_business_data(module, "password5")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcMaiiLogin(username, password).get_token()
+headers = commonFuc().get_business_data(module, "json_headers1", cmdc_access_token)
+
+# 验证我的优惠券列表
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url12")
+
+"""
+ 场景: 导入式优惠券用户发放验证
+ 用例名称:导入式优惠券用户发放验证
+ 输出:{"couponId": 10033}
+"""
+
+# 发送请求
+result = requests.get(url, headers=headers)
+result = json.loads(result.content)
+# print(result)
+result = {"couponId": result["data"][0]["couponId"]}
+# print(result)
+
+# 获取预期结果
+check_dict = commonFuc().get_business_data(module, "checkDict11")
+print(check_dict)
+# 断言实际结果中是否包含预期结果的内容
+commonFuc().check_result(check_dict, result)
diff --git "a/air_case/cmdc_coupon/\344\274\230\346\203\240\345\210\270\345\210\227\350\241\250\346\237\245\350\257\242\346\235\241\344\273\266\351\252\214\350\257\201.air/\344\274\230\346\203\240\345\210\270\345\210\227\350\241\250\346\237\245\350\257\242\346\235\241\344\273\266\351\252\214\350\257\201.py" "b/air_case/cmdc_coupon/\344\274\230\346\203\240\345\210\270\345\210\227\350\241\250\346\237\245\350\257\242\346\235\241\344\273\266\351\252\214\350\257\201.air/\344\274\230\346\203\240\345\210\270\345\210\227\350\241\250\346\237\245\350\257\242\346\235\241\344\273\266\351\252\214\350\257\201.py"
new file mode 100644
index 0000000000000000000000000000000000000000..7449cb07682150e0f22d7eef9b3cacfe389b4d41
--- /dev/null
+++ "b/air_case/cmdc_coupon/\344\274\230\346\203\240\345\210\270\345\210\227\350\241\250\346\237\245\350\257\242\346\235\241\344\273\266\351\252\214\350\257\201.air/\344\274\230\346\203\240\345\210\270\345\210\227\350\241\250\346\237\245\350\257\242\346\235\241\344\273\266\351\252\214\350\257\201.py"
@@ -0,0 +1,57 @@
+# -*- encoding=utf8 -*-
+__author__ = "liguangyu"
+
+"""
+case_tag:cmdc_api,cmdc优惠券列表查询条件验证,2262,2262-12,sit,bs
+主数据平台:运营后台管理系统优惠券列表查询接口
+"""
+
+from common.common_func import commonFuc
+from air_case.cmdc_login.后台管理系统登录.后台管理系统登录 import CmdcDoLogin
+import requests
+import json
+
+module = "cmdc_coupon"
+
+# 第一步登录后台运营平台获取cmdc_access_token
+# 获取登录所需账号密码
+username = commonFuc().get_business_data(module, "username1")
+password = commonFuc().get_business_data(module, "password1")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcDoLogin(username, password).get_token()
+headers = commonFuc().get_business_data(module, "json_headers", cmdc_access_token)
+
+# 第二步进行优惠券列表获取
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url1")
+request_body = commonFuc().get_business_data(module, "payload1")
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+
+# 获取优惠券编码、优惠券名称、优惠券状态、优惠券类型、发放方式、可用活动时间
+coupon_id = result["data"]["list"][0]["couponId"]
+coupon_name = result["data"]["list"][0]["couponName"]
+coupon_status = result["data"]["list"][0]["couponStatus"]
+product_range_type = result["data"]["list"][0]["productRangeType"]
+provide_type = result["data"]["list"][0]["provideType"]
+effective_date = result["data"]["list"][0]["effectiveDate"]
+expiration_date = result["data"]["list"][0]["expirationDate"]
+
+# 第三步查询条件验证
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url1")
+request_body = commonFuc().get_business_data(module, "payload2", coupon_id, coupon_name, coupon_status,
+ product_range_type, provide_type, effective_date, expiration_date)
+"""
+ 场景:优惠券列表查询条件验证
+ 用例名称:优惠券列表查询条件验证
+ 输出:{"couponId":"%s"}
+"""
+
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+result = {"couponId": result["data"]["list"][0]["couponId"]}
+# 获取预期结果
+check_dict = commonFuc().get_business_data(module, "checkDict2", coupon_id)
+# 断言实际结果中是否包含预期结果的内容
+commonFuc().check_result(check_dict, result)
diff --git "a/air_case/cmdc_coupon/\344\274\230\346\203\240\345\210\270\345\225\206\345\223\201\351\252\214\350\257\201.air/\344\274\230\346\203\240\345\210\270\345\225\206\345\223\201\351\252\214\350\257\201.py" "b/air_case/cmdc_coupon/\344\274\230\346\203\240\345\210\270\345\225\206\345\223\201\351\252\214\350\257\201.air/\344\274\230\346\203\240\345\210\270\345\225\206\345\223\201\351\252\214\350\257\201.py"
new file mode 100644
index 0000000000000000000000000000000000000000..fe6f63b06273a30f81823deeb78cc6eccca3e08e
--- /dev/null
+++ "b/air_case/cmdc_coupon/\344\274\230\346\203\240\345\210\270\345\225\206\345\223\201\351\252\214\350\257\201.air/\344\274\230\346\203\240\345\210\270\345\225\206\345\223\201\351\252\214\350\257\201.py"
@@ -0,0 +1,56 @@
+# -*- encoding=utf8 -*-
+__author__ = "liguangyu"
+
+"""
+case_tag:cmdc_api,cmdc优惠券商品验证,2262,2262-11,sit,bs
+涉及接口:多采商城登录、查询查询和折扣查询等接口
+"""
+
+from common.common_func import commonFuc
+from air_case.cmdc_login.多采商城登录.多采商城登录 import CmdcMaiiLogin
+import requests
+import json
+
+module = "cmdc_coupon"
+
+# 第一步登录多采商城获取cmdc_access_token
+# 获取登录所需账号密码
+username = commonFuc().get_business_data(module, "username")
+password = commonFuc().get_business_data(module, "password")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcMaiiLogin(username, password).get_token()
+headers = commonFuc().get_business_data(module, "json_headers1", cmdc_access_token)
+
+# 第二步获取商品列表
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url_goods")
+request_body = commonFuc().get_business_data(module, "payload_goods")
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+# 获取商品的productId、productCode、companyCode
+product_id = result["data"]["list"][0]["productid"]
+product_code = result["data"]["list"][0]["productcode"]
+company_code = result["data"]["list"][0]["filialecode"]
+
+# 第四步验证商品活动列表中是否包含对应的优惠券
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url_discount")
+request_body = [{"productId": product_id, "productCode": product_code, "companyCode": company_code}]
+
+"""
+ 场景: 验证商品对应的优惠券活动是否正确
+ 用例名称:验证商品对应的优惠券活动是否正确
+ 输出:{"couponAmount": 2.0000}
+"""
+
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+# print(result)
+result = {"couponAmount": result["data"][0]["coupon"]["couponAmount"]}
+# print(result)
+
+# 获取预期结果
+check_dict = commonFuc().get_business_data(module, "checkDict3")
+print(check_dict)
+# 断言实际结果中是否包含预期结果的内容
+commonFuc().check_result(check_dict, result)
diff --git "a/air_case/cmdc_coupon/\344\274\230\346\203\240\345\210\270\345\237\272\346\234\254\344\277\241\346\201\257\346\237\245\350\257\242.air/\344\274\230\346\203\240\345\210\270\345\237\272\346\234\254\344\277\241\346\201\257\346\237\245\350\257\242.py" "b/air_case/cmdc_coupon/\344\274\230\346\203\240\345\210\270\345\237\272\346\234\254\344\277\241\346\201\257\346\237\245\350\257\242.air/\344\274\230\346\203\240\345\210\270\345\237\272\346\234\254\344\277\241\346\201\257\346\237\245\350\257\242.py"
new file mode 100644
index 0000000000000000000000000000000000000000..0a4ee4be229f44c9ae2ee1130dd805443e36bd08
--- /dev/null
+++ "b/air_case/cmdc_coupon/\344\274\230\346\203\240\345\210\270\345\237\272\346\234\254\344\277\241\346\201\257\346\237\245\350\257\242.air/\344\274\230\346\203\240\345\210\270\345\237\272\346\234\254\344\277\241\346\201\257\346\237\245\350\257\242.py"
@@ -0,0 +1,40 @@
+# -*- encoding=utf8 -*-
+__author__ = "liguangyu"
+
+"""
+case_tag:cmdc_api,cmdc优惠券基本信息查询,2262,2262-10,sit,bs
+主数据平台:运营后台管理系统优惠券列表查询接口
+"""
+
+from common.common_func import commonFuc
+from air_case.cmdc_login.后台管理系统登录.后台管理系统登录 import CmdcDoLogin
+import requests
+import json
+
+module = "cmdc_coupon"
+
+# 第一步登录后台运营平台获取cmdc_access_token
+# 获取登录所需账号密码
+username = commonFuc().get_business_data(module, "username3")
+password = commonFuc().get_business_data(module, "password3")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcDoLogin(username, password).get_token()
+headers = commonFuc().get_business_data(module, "json_headers", cmdc_access_token)
+
+# 第二步进行优惠券基本信息获取
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url8")
+request_body = commonFuc().get_business_data(module, "payload8")
+"""
+ 场景:优惠券基本信息查询
+ 用例名称:优惠券基本信息查询
+ 输出:{"couponId": 10032}
+"""
+
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+result = {"couponId": result["data"]["couponId"]}
+# 获取预期结果
+check_dict = commonFuc().get_business_data(module, "checkDict8")
+# 断言实际结果中是否包含预期结果的内容
+commonFuc().check_result(check_dict, result)
\ No newline at end of file
diff --git "a/air_case/cmdc_coupon/\344\274\230\346\203\240\345\210\270\345\272\223\345\255\230\344\270\215\350\266\263\346\227\240\346\263\225\351\242\206\345\217\226\351\252\214\350\257\201.air/\344\274\230\346\203\240\345\210\270\345\272\223\345\255\230\344\270\215\350\266\263\346\227\240\346\263\225\351\242\206\345\217\226\351\252\214\350\257\201.py" "b/air_case/cmdc_coupon/\344\274\230\346\203\240\345\210\270\345\272\223\345\255\230\344\270\215\350\266\263\346\227\240\346\263\225\351\242\206\345\217\226\351\252\214\350\257\201.air/\344\274\230\346\203\240\345\210\270\345\272\223\345\255\230\344\270\215\350\266\263\346\227\240\346\263\225\351\242\206\345\217\226\351\252\214\350\257\201.py"
new file mode 100644
index 0000000000000000000000000000000000000000..c7fad5492211e3e568119c6ca7ea3678a0e52f73
--- /dev/null
+++ "b/air_case/cmdc_coupon/\344\274\230\346\203\240\345\210\270\345\272\223\345\255\230\344\270\215\350\266\263\346\227\240\346\263\225\351\242\206\345\217\226\351\252\214\350\257\201.air/\344\274\230\346\203\240\345\210\270\345\272\223\345\255\230\344\270\215\350\266\263\346\227\240\346\263\225\351\242\206\345\217\226\351\252\214\350\257\201.py"
@@ -0,0 +1,53 @@
+# -*- encoding=utf8 -*-
+__author__ = "liguangyu"
+
+"""
+case_tag:cmdc_api,cmdc优惠券库存不足无法领取验证,2262,2262-9,sit,bs
+主数据平台:运营后台管理系统优惠券列表查询和优惠券领取等接口
+"""
+
+from common.common_func import commonFuc
+from air_case.cmdc_login.后台管理系统登录.后台管理系统登录 import CmdcDoLogin
+import requests
+import json
+
+module = "cmdc_coupon"
+
+# 第一步登录后台运营平台获取cmdc_access_token
+# 获取登录所需账号密码
+username = commonFuc().get_business_data(module, "username1")
+password = commonFuc().get_business_data(module, "password1")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcDoLogin(username, password).get_token()
+headers = commonFuc().get_business_data(module, "json_headers", cmdc_access_token)
+
+# 第二步进行指定优惠券活动的获取
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url1")
+request_body = commonFuc().get_business_data(module, "payload5")
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+
+# 获取指定优惠券活动信息couponId、companyCode
+coupon_id = result["data"]["list"][0]["couponId"]
+company_code = result["data"]["list"][0]["companyCode"]
+
+# 第三步进行优惠券领取操作
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url_collect_coupon")
+request_body = commonFuc().get_business_data(module, "payload_collect_coupon", coupon_id, company_code)
+# print(request_body)
+
+"""
+ 场景:优惠券库存不足无法领取验证
+ 用例名称:优惠券库存不足无法领取验证
+ 输出:{"success":false,"code":"500","message":"该券已抢完,请您关注平台后续其他活动","data":null,"freshToken":null}
+"""
+
+# 发送请求
+result = requests.get(url, params=request_body, headers=headers)
+result = json.loads(result.content)
+# print(result)
+# 获取预期结果
+check_dict = commonFuc().get_business_data(module, "checkDict_collect_coupon2")
+# 断言实际结果中是否包含预期结果的内容
+commonFuc().check_result(check_dict, result)
diff --git "a/air_case/cmdc_coupon/\344\274\230\346\203\240\345\210\270\346\264\273\345\212\250\346\234\252\347\224\237\346\225\210\351\252\214\350\257\201.air/\344\274\230\346\203\240\345\210\270\346\264\273\345\212\250\346\234\252\347\224\237\346\225\210\351\252\214\350\257\201.py" "b/air_case/cmdc_coupon/\344\274\230\346\203\240\345\210\270\346\264\273\345\212\250\346\234\252\347\224\237\346\225\210\351\252\214\350\257\201.air/\344\274\230\346\203\240\345\210\270\346\264\273\345\212\250\346\234\252\347\224\237\346\225\210\351\252\214\350\257\201.py"
new file mode 100644
index 0000000000000000000000000000000000000000..9e75c27adb46a313c87ad8e8d14756a4408f4aaa
--- /dev/null
+++ "b/air_case/cmdc_coupon/\344\274\230\346\203\240\345\210\270\346\264\273\345\212\250\346\234\252\347\224\237\346\225\210\351\252\214\350\257\201.air/\344\274\230\346\203\240\345\210\270\346\264\273\345\212\250\346\234\252\347\224\237\346\225\210\351\252\214\350\257\201.py"
@@ -0,0 +1,54 @@
+# -*- encoding=utf8 -*-
+__author__ = "liguangyu"
+
+"""
+case_tag:cmdc_api,cmdc优惠券活动未生效无法领取验证,2262,2262-8,sit,bs
+主数据平台:运营后台管理系统优惠券列表查询和优惠券领取等接口
+"""
+
+from common.common_func import commonFuc
+from air_case.cmdc_login.后台管理系统登录.后台管理系统登录 import CmdcDoLogin
+import requests
+import json
+
+module = "cmdc_coupon"
+
+# 第一步登录后台运营平台获取cmdc_access_token
+# 获取登录所需账号密码
+username = commonFuc().get_business_data(module, "username1")
+password = commonFuc().get_business_data(module, "password1")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcDoLogin(username, password).get_token()
+headers = commonFuc().get_business_data(module, "json_headers", cmdc_access_token)
+
+# 第二步进行指定优惠券活动的获取
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url1")
+request_body = commonFuc().get_business_data(module, "payload7")
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+
+# 获取指定优惠券活动信息couponId、companyCode
+coupon_id = result["data"]["list"][0]["couponId"]
+company_code = result["data"]["list"][0]["companyCode"]
+
+# 第三步进行优惠券领取操作
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url_collect_coupon")
+request_body = commonFuc().get_business_data(module, "payload_collect_coupon", coupon_id, company_code)
+# print(request_body)
+
+"""
+ 场景: 优惠券活动未生效无法领取验证
+ 用例名称:优惠券活动未生效无法领取验证
+ 输出:{"success":false,"code":"500","message":"该券已抢完,请您关注平台后续其他活动","data":null,"freshToken":null}
+"""
+
+# 发送请求
+result = requests.get(url, params=request_body, headers=headers)
+result = json.loads(result.content)
+# print(result)
+# 获取预期结果
+check_dict = commonFuc().get_business_data(module, "checkDict_collect_coupon4")
+# 断言实际结果中是否包含预期结果的内容
+commonFuc().check_result(check_dict, result)
+
diff --git "a/air_case/cmdc_coupon/\344\274\230\346\203\240\345\210\270\346\264\273\345\212\250\350\277\207\346\234\237\346\227\240\346\263\225\351\242\206\345\217\226\351\252\214\350\257\201.air/\344\274\230\346\203\240\345\210\270\346\264\273\345\212\250\350\277\207\346\234\237\346\227\240\346\263\225\351\242\206\345\217\226\351\252\214\350\257\201.py" "b/air_case/cmdc_coupon/\344\274\230\346\203\240\345\210\270\346\264\273\345\212\250\350\277\207\346\234\237\346\227\240\346\263\225\351\242\206\345\217\226\351\252\214\350\257\201.air/\344\274\230\346\203\240\345\210\270\346\264\273\345\212\250\350\277\207\346\234\237\346\227\240\346\263\225\351\242\206\345\217\226\351\252\214\350\257\201.py"
new file mode 100644
index 0000000000000000000000000000000000000000..5ac41a829a3540ab609bd71320145e354bc2e4a5
--- /dev/null
+++ "b/air_case/cmdc_coupon/\344\274\230\346\203\240\345\210\270\346\264\273\345\212\250\350\277\207\346\234\237\346\227\240\346\263\225\351\242\206\345\217\226\351\252\214\350\257\201.air/\344\274\230\346\203\240\345\210\270\346\264\273\345\212\250\350\277\207\346\234\237\346\227\240\346\263\225\351\242\206\345\217\226\351\252\214\350\257\201.py"
@@ -0,0 +1,53 @@
+# -*- encoding=utf8 -*-
+__author__ = "liguangyu"
+
+"""
+case_tag:cmdc_api,cmdc优惠券活动过期无法领取验证,2262,2262-7,sit,bs
+主数据平台:运营后台管理系统优惠券列表查询和优惠券领取等接口
+"""
+
+from common.common_func import commonFuc
+from air_case.cmdc_login.后台管理系统登录.后台管理系统登录 import CmdcDoLogin
+import requests
+import json
+
+module = "cmdc_coupon"
+
+# 第一步登录后台运营平台获取cmdc_access_token
+# 获取登录所需账号密码
+username = commonFuc().get_business_data(module, "username1")
+password = commonFuc().get_business_data(module, "password1")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcDoLogin(username, password).get_token()
+headers = commonFuc().get_business_data(module, "json_headers", cmdc_access_token)
+
+# 第二步进行指定优惠券活动的获取
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url1")
+request_body = commonFuc().get_business_data(module, "payload6")
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+
+# 获取指定优惠券活动信息couponId、companyCode
+coupon_id = result["data"]["list"][0]["couponId"]
+company_code = result["data"]["list"][0]["companyCode"]
+
+# 第三步进行优惠券领取操作
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url_collect_coupon")
+request_body = commonFuc().get_business_data(module, "payload_collect_coupon", coupon_id, company_code)
+# print(request_body)
+
+"""
+ 场景:优惠券活动过期无法领取验证
+ 用例名称:优惠券活动过期无法领取验证
+ 输出:{"success":false,"code":"500","message":"该券已抢完,请您关注平台后续其他活动","data":null,"freshToken":null}
+"""
+
+# 发送请求
+result = requests.get(url, params=request_body, headers=headers)
+result = json.loads(result.content)
+# print(result)
+# 获取预期结果
+check_dict = commonFuc().get_business_data(module, "checkDict_collect_coupon3")
+# 断言实际结果中是否包含预期结果的内容
+commonFuc().check_result(check_dict, result)
diff --git "a/air_case/cmdc_coupon/\344\274\230\346\203\240\345\210\270\351\207\221\351\242\235\351\252\214\350\257\201.air/\344\274\230\346\203\240\345\210\270\351\207\221\351\242\235\351\252\214\350\257\201.py" "b/air_case/cmdc_coupon/\344\274\230\346\203\240\345\210\270\351\207\221\351\242\235\351\252\214\350\257\201.air/\344\274\230\346\203\240\345\210\270\351\207\221\351\242\235\351\252\214\350\257\201.py"
new file mode 100644
index 0000000000000000000000000000000000000000..2dd1d4f549f6fbc83b662d038c042df894bc1cc5
--- /dev/null
+++ "b/air_case/cmdc_coupon/\344\274\230\346\203\240\345\210\270\351\207\221\351\242\235\351\252\214\350\257\201.air/\344\274\230\346\203\240\345\210\270\351\207\221\351\242\235\351\252\214\350\257\201.py"
@@ -0,0 +1,55 @@
+# -*- encoding=utf8 -*-
+__author__ = "liguangyu"
+
+"""
+case_tag:cmdc_api,cmdc优惠券金额验证,2262,2262-6,sit,bs
+主数据平台:运营后台管理系统优惠券列表查询和优惠券领取等接口
+"""
+
+from common.common_func import commonFuc
+from air_case.cmdc_login.后台管理系统登录.后台管理系统登录 import CmdcDoLogin
+import requests
+import json
+import time
+
+
+module = "cmdc_coupon"
+
+# 第一步登录后台运营平台获取cmdc_access_token
+# 获取登录所需账号密码
+username = commonFuc().get_business_data(module, "username1")
+password = commonFuc().get_business_data(module, "password1")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcDoLogin(username, password).get_token()
+headers = commonFuc().get_business_data(module, "json_headers", cmdc_access_token)
+
+# 第二步进行指定优惠券活动的获取
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url1")
+request_body = commonFuc().get_business_data(module, "payload3")
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+
+# 获取指定优惠券活动信息couponId、companyCode
+coupon_id = result["data"]["list"][0]["couponId"]
+company_code = result["data"]["list"][0]["companyCode"]
+
+# 第三步进行优惠券领取操作
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url_collect_coupon")
+request_body = commonFuc().get_business_data(module, "payload_collect_coupon", coupon_id, company_code)
+# print(request_body)
+"""
+ 场景:验证优惠券是否可以正常领取操作
+ 用例名称:优惠券领取验证
+ 输出:{"success":true,"code":"200","message":"OK","data":true,"freshToken":null}
+"""
+
+# 发送请求
+result = requests.get(url, params=request_body, headers=headers)
+result = json.loads(result.content)
+# print(result)
+# 获取预期结果
+check_dict = commonFuc().get_business_data(module, "checkDict_collect_coupon")
+print(check_dict)
+# 断言实际结果中是否包含预期结果的内容
+commonFuc().check_result(check_dict, result)
diff --git "a/air_case/cmdc_coupon/\344\274\230\346\203\240\345\210\270\351\242\206\345\217\226\346\254\241\346\225\260\350\266\205\351\231\220\351\252\214\350\257\201.air/\344\274\230\346\203\240\345\210\270\351\242\206\345\217\226\346\254\241\346\225\260\350\266\205\351\231\220\351\252\214\350\257\201.py" "b/air_case/cmdc_coupon/\344\274\230\346\203\240\345\210\270\351\242\206\345\217\226\346\254\241\346\225\260\350\266\205\351\231\220\351\252\214\350\257\201.air/\344\274\230\346\203\240\345\210\270\351\242\206\345\217\226\346\254\241\346\225\260\350\266\205\351\231\220\351\252\214\350\257\201.py"
new file mode 100644
index 0000000000000000000000000000000000000000..5511cd1ab2062f14c1ff1a96f45b1e028c73435f
--- /dev/null
+++ "b/air_case/cmdc_coupon/\344\274\230\346\203\240\345\210\270\351\242\206\345\217\226\346\254\241\346\225\260\350\266\205\351\231\220\351\252\214\350\257\201.air/\344\274\230\346\203\240\345\210\270\351\242\206\345\217\226\346\254\241\346\225\260\350\266\205\351\231\220\351\252\214\350\257\201.py"
@@ -0,0 +1,53 @@
+# -*- encoding=utf8 -*-
+__author__ = "liguangyu"
+
+"""
+case_tag:cmdc_api,cmdc优惠券领取次数超限制验证,2262,2262-5,sit,bs
+主数据平台:运营后台管理系统优惠券列表查询和优惠券领取等接口
+"""
+
+from common.common_func import commonFuc
+from air_case.cmdc_login.后台管理系统登录.后台管理系统登录 import CmdcDoLogin
+import requests
+import json
+
+module = "cmdc_coupon"
+
+# 第一步登录后台运营平台获取cmdc_access_token
+# 获取登录所需账号密码
+username = commonFuc().get_business_data(module, "username1")
+password = commonFuc().get_business_data(module, "password1")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcDoLogin(username, password).get_token()
+headers = commonFuc().get_business_data(module, "json_headers", cmdc_access_token)
+
+# 第二步进行指定优惠券活动的获取
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url1")
+request_body = commonFuc().get_business_data(module, "payload4")
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+
+# 获取指定优惠券活动信息couponId、companyCode
+coupon_id = result["data"]["list"][0]["couponId"]
+company_code = result["data"]["list"][0]["companyCode"]
+
+# 第三步进行优惠券领取操作
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url_collect_coupon")
+request_body = commonFuc().get_business_data(module, "payload_collect_coupon", coupon_id, company_code)
+
+
+"""
+ 场景:优惠券领取次数超限制验证
+ 用例名称:优惠券领取次数超限制验证
+ 输出:{"success":false,"code":"500","message":"该券已超过用户最大领取限制,请您关注平台后续其他活动","data":null,"freshToken":null}
+"""
+
+# 发送请求
+result = requests.get(url, params=request_body, headers=headers)
+result = json.loads(result.content)
+# print(result)
+# 获取预期结果
+check_dict = commonFuc().get_business_data(module, "checkDict_collect_coupon1")
+# 断言实际结果中是否包含预期结果的内容
+commonFuc().check_result(check_dict, result)
diff --git "a/air_case/cmdc_coupon/\344\274\230\346\203\240\345\210\270\351\242\206\345\217\226\351\252\214\350\257\201.air/\344\274\230\346\203\240\345\210\270\351\242\206\345\217\226\351\252\214\350\257\201.py" "b/air_case/cmdc_coupon/\344\274\230\346\203\240\345\210\270\351\242\206\345\217\226\351\252\214\350\257\201.air/\344\274\230\346\203\240\345\210\270\351\242\206\345\217\226\351\252\214\350\257\201.py"
new file mode 100644
index 0000000000000000000000000000000000000000..ee429dcd1003588428a02a8e1c5a8744101d7406
--- /dev/null
+++ "b/air_case/cmdc_coupon/\344\274\230\346\203\240\345\210\270\351\242\206\345\217\226\351\252\214\350\257\201.air/\344\274\230\346\203\240\345\210\270\351\242\206\345\217\226\351\252\214\350\257\201.py"
@@ -0,0 +1,57 @@
+# -*- encoding=utf8 -*-
+__author__ = "liguangyu"
+
+"""
+case_tag:cmdc_api,cmdc优惠券领取验证,2262,2262-4,sit,bs
+主数据平台:运营后台管理系统优惠券列表查询和优惠券领取等接口
+"""
+
+from common.common_func import commonFuc
+from air_case.cmdc_login.后台管理系统登录.后台管理系统登录 import CmdcDoLogin
+import requests
+import json
+
+module = "cmdc_coupon"
+
+# 第一步登录后台运营平台获取cmdc_access_token
+# 获取登录所需账号密码
+username = commonFuc().get_business_data(module, "username1")
+password = commonFuc().get_business_data(module, "password1")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcDoLogin(username, password).get_token()
+headers = commonFuc().get_business_data(module, "json_headers", cmdc_access_token)
+
+# 第二步进行指定优惠券活动的获取
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url1")
+request_body = commonFuc().get_business_data(module, "payload3")
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+
+# 获取指定优惠券活动信息couponId、companyCode
+coupon_id = result["data"]["list"][0]["couponId"]
+company_code = result["data"]["list"][0]["companyCode"]
+
+# 第三步进行优惠券领取操作
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url_collect_coupon")
+request_body = commonFuc().get_business_data(module, "payload_collect_coupon", coupon_id, company_code)
+
+"""
+ 场景:验证优惠券是否可以正常领取操作
+ 用例名称:优惠券领取验证
+ 输出:{"success":true,"code":"200","message":"OK","data":true,"freshToken":null}
+"""
+
+# 发送请求
+result = requests.get(url, params=request_body, headers=headers)
+result = json.loads(result.content)
+if result["code"] == "200":
+ # 获取预期结果
+ check_dict = commonFuc().get_business_data(module, "checkDict_collect_coupon")
+ # 断言实际结果中是否包含预期结果的内容
+ commonFuc().check_result(check_dict, result)
+else:
+ # 获取预期结果
+ check_dict = commonFuc().get_business_data(module, "checkDict_collect_coupon_false")
+ # 断言实际结果中是否包含预期结果的内容
+ commonFuc().check_result(check_dict, result)
diff --git "a/air_case/cmdc_coupon/\346\237\245\350\257\242\344\274\230\346\203\240\345\210\270\346\264\273\345\212\250\346\214\207\345\256\232\345\225\206\345\223\201\344\277\241\346\201\257.air/\346\237\245\350\257\242\344\274\230\346\203\240\345\210\270\346\264\273\345\212\250\346\214\207\345\256\232\345\225\206\345\223\201\344\277\241\346\201\257.py" "b/air_case/cmdc_coupon/\346\237\245\350\257\242\344\274\230\346\203\240\345\210\270\346\264\273\345\212\250\346\214\207\345\256\232\345\225\206\345\223\201\344\277\241\346\201\257.air/\346\237\245\350\257\242\344\274\230\346\203\240\345\210\270\346\264\273\345\212\250\346\214\207\345\256\232\345\225\206\345\223\201\344\277\241\346\201\257.py"
new file mode 100644
index 0000000000000000000000000000000000000000..1c2eb5d4be23880aa7ab95415ed1e1c713ed6ecd
--- /dev/null
+++ "b/air_case/cmdc_coupon/\346\237\245\350\257\242\344\274\230\346\203\240\345\210\270\346\264\273\345\212\250\346\214\207\345\256\232\345\225\206\345\223\201\344\277\241\346\201\257.air/\346\237\245\350\257\242\344\274\230\346\203\240\345\210\270\346\264\273\345\212\250\346\214\207\345\256\232\345\225\206\345\223\201\344\277\241\346\201\257.py"
@@ -0,0 +1,52 @@
+# -*- encoding=utf8 -*-
+__author__ = "liguangyu"
+
+"""
+case_tag:cmdc_api,cmdc查询优惠券指定商品信息,2262,2262-3,sit,bs
+主数据平台:运营后台管理系统优惠券列表查询接口
+"""
+
+from common.common_func import commonFuc
+from air_case.cmdc_login.后台管理系统登录.后台管理系统登录 import CmdcDoLogin
+import requests
+import json
+
+module = "cmdc_coupon"
+
+# 第一步登录后台运营平台获取cmdc_access_token
+# 获取登录所需账号密码
+username = commonFuc().get_business_data(module, "username3")
+password = commonFuc().get_business_data(module, "password3")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcDoLogin(username, password).get_token()
+headers = commonFuc().get_business_data(module, "json_headers", cmdc_access_token)
+
+# 第二步查询优惠券活动
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url1")
+request_body = commonFuc().get_business_data(module, "payload9")
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+# print(result)
+# 查询优惠券活动id
+coupon_id = result["data"]["list"][0]["couponId"]
+
+# 第三步查询优惠券活动包含的指定商品信息
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url9")
+request_body = commonFuc().get_business_data(module, "payload10", coupon_id)
+
+"""
+ 场景:查询优惠券指定商品信息
+ 用例名称:查询优惠券指定商品信息
+ 输出:{"couponId":"%s"}
+"""
+
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+result = {"couponId": result["data"][0]["couponId"]}
+
+# 获取预期结果
+check_dict = commonFuc().get_business_data(module, "checkDict10", coupon_id)
+# 断言实际结果中是否包含预期结果的内容
+commonFuc().check_result(check_dict, result)
diff --git "a/air_case/cmdc_coupon/\350\216\267\345\217\226\344\274\230\346\203\240\345\210\270\345\210\227\350\241\250.air/\350\216\267\345\217\226\344\274\230\346\203\240\345\210\270\345\210\227\350\241\250.py" "b/air_case/cmdc_coupon/\350\216\267\345\217\226\344\274\230\346\203\240\345\210\270\345\210\227\350\241\250.air/\350\216\267\345\217\226\344\274\230\346\203\240\345\210\270\345\210\227\350\241\250.py"
new file mode 100644
index 0000000000000000000000000000000000000000..24890a7b23f699b6ca1c439b59d65293a75e67e3
--- /dev/null
+++ "b/air_case/cmdc_coupon/\350\216\267\345\217\226\344\274\230\346\203\240\345\210\270\345\210\227\350\241\250.air/\350\216\267\345\217\226\344\274\230\346\203\240\345\210\270\345\210\227\350\241\250.py"
@@ -0,0 +1,40 @@
+# -*- encoding=utf8 -*-
+__author__ = "liguangyu"
+
+"""
+case_tag:cmdc_api,cmdc优惠券列表获取,2262,2262-2,sit,bs
+主数据平台:运营后台管理系统优惠券列表查询接口
+"""
+
+from common.common_func import commonFuc
+from air_case.cmdc_login.后台管理系统登录.后台管理系统登录 import CmdcDoLogin
+import requests
+import json
+
+module = "cmdc_coupon"
+
+# 第一步登录后台运营平台获取cmdc_access_token
+# 获取登录所需账号密码
+username = commonFuc().get_business_data(module, "username1")
+password = commonFuc().get_business_data(module, "password1")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcDoLogin(username, password).get_token()
+headers = commonFuc().get_business_data(module, "json_headers", cmdc_access_token)
+
+# 第二步进行优惠券列表获取
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url1")
+request_body = commonFuc().get_business_data(module, "payload1")
+"""
+ 场景:查询优惠券列表
+ 用例名称:查询优惠券列表
+ 输出:{"success":true,"code":"200","message":"OK"}
+"""
+
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+# 获取预期结果
+check_dict = commonFuc().get_business_data(module, "checkDict1")
+# 断言实际结果中是否包含预期结果的内容
+commonFuc().check_result(check_dict, result)
+
diff --git "a/air_case/cmdc_coupon/\351\252\214\350\257\201\345\225\206\345\223\201\346\230\257\345\220\246\344\270\216\344\274\230\346\203\240\345\210\270\346\264\273\345\212\250\345\214\271\351\205\215\346\210\220\345\212\237.air/\351\252\214\350\257\201\345\225\206\345\223\201\346\230\257\345\220\246\344\270\216\344\274\230\346\203\240\345\210\270\346\264\273\345\212\250\345\214\271\351\205\215\346\210\220\345\212\237.py" "b/air_case/cmdc_coupon/\351\252\214\350\257\201\345\225\206\345\223\201\346\230\257\345\220\246\344\270\216\344\274\230\346\203\240\345\210\270\346\264\273\345\212\250\345\214\271\351\205\215\346\210\220\345\212\237.air/\351\252\214\350\257\201\345\225\206\345\223\201\346\230\257\345\220\246\344\270\216\344\274\230\346\203\240\345\210\270\346\264\273\345\212\250\345\214\271\351\205\215\346\210\220\345\212\237.py"
new file mode 100644
index 0000000000000000000000000000000000000000..e63c80de031f0315382d6f47dc50c0d5dfe3c112
--- /dev/null
+++ "b/air_case/cmdc_coupon/\351\252\214\350\257\201\345\225\206\345\223\201\346\230\257\345\220\246\344\270\216\344\274\230\346\203\240\345\210\270\346\264\273\345\212\250\345\214\271\351\205\215\346\210\220\345\212\237.air/\351\252\214\350\257\201\345\225\206\345\223\201\346\230\257\345\220\246\344\270\216\344\274\230\346\203\240\345\210\270\346\264\273\345\212\250\345\214\271\351\205\215\346\210\220\345\212\237.py"
@@ -0,0 +1,65 @@
+# -*- encoding=utf8 -*-
+__author__ = "liguangyu"
+
+"""
+case_tag:cmdc_api,cmdc验证商品是否与优惠券活动匹配成功,2262,2262-1,sit,bs
+主数据平台:运营后台管理系统优惠券列表查询接口
+"""
+
+from common.common_func import commonFuc
+from air_case.cmdc_login.后台管理系统登录.后台管理系统登录 import CmdcDoLogin
+import requests
+import json
+
+module = "cmdc_coupon"
+
+# 第一步登录后台运营平台获取cmdc_access_token
+# 获取登录所需账号密码
+username = commonFuc().get_business_data(module, "username3")
+password = commonFuc().get_business_data(module, "password3")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcDoLogin(username, password).get_token()
+headers = commonFuc().get_business_data(module, "json_headers", cmdc_access_token)
+
+# 第二步查询优惠券活动
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url1")
+request_body = commonFuc().get_business_data(module, "payload9")
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+# print(result)
+# 查询优惠券活动id
+coupon_id = result["data"]["list"][0]["couponId"]
+
+# 第三步查询优惠券活动包含的指定商品信息
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url9")
+request_body = commonFuc().get_business_data(module, "payload10", coupon_id)
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+
+# 获取商品信息productId、companyCode、productCode
+product_id = result["data"][0]["productId"]
+company_code = result["data"][0]["companyCode"]
+product_code = result["data"][0]["productCode"]
+
+# 第四步验证商品对应的优惠券活动信息是否与配置优惠券活动相同
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url10")
+request_body = commonFuc().get_business_data(module, "payload11", product_id, company_code, product_code)
+
+"""
+
+ 场景:验证商品是否与优惠券活动匹配成功
+ 用例名称:验证商品是否与优惠券活动匹配成功
+ 输出:{"couponId":"%s"}
+"""
+
+# 发送请求
+result = requests.get(url, params=request_body, headers=headers)
+result = json.loads(result.content)
+result = {"couponId": result["data"]["couponList"][0]["couponId"]}
+
+# 获取预期结果
+check_dict = commonFuc().get_business_data(module, "checkDict10", coupon_id)
+# 断言实际结果中是否包含预期结果的内容
+commonFuc().check_result(check_dict, result)
diff --git "a/air_case/cmdc_demand/\345\225\206\345\237\216\350\215\211\347\250\277\350\256\242\345\215\225\345\210\233\345\273\272-\346\237\245\350\257\242-\345\210\240\351\231\244.air/\345\225\206\345\237\216\350\215\211\347\250\277\350\256\242\345\215\225\345\210\233\345\273\272-\346\237\245\350\257\242-\345\210\240\351\231\244.py" "b/air_case/cmdc_demand/\345\225\206\345\237\216\350\215\211\347\250\277\350\256\242\345\215\225\345\210\233\345\273\272-\346\237\245\350\257\242-\345\210\240\351\231\244.air/\345\225\206\345\237\216\350\215\211\347\250\277\350\256\242\345\215\225\345\210\233\345\273\272-\346\237\245\350\257\242-\345\210\240\351\231\244.py"
new file mode 100644
index 0000000000000000000000000000000000000000..db6934b5b033971a28596db3fd770c75e0124957
--- /dev/null
+++ "b/air_case/cmdc_demand/\345\225\206\345\237\216\350\215\211\347\250\277\350\256\242\345\215\225\345\210\233\345\273\272-\346\237\245\350\257\242-\345\210\240\351\231\244.air/\345\225\206\345\237\216\350\215\211\347\250\277\350\256\242\345\215\225\345\210\233\345\273\272-\346\237\245\350\257\242-\345\210\240\351\231\244.py"
@@ -0,0 +1,65 @@
+# -*- encoding=utf8 -*-
+__author__ = "liguangyu"
+
+"""
+case_tag:cmdc_api,cmdc商城草稿订单创建-查询-删除,2252,2252-22,sit,bs
+涉及到接口:草稿订单创建、需求单列表草稿列表、删除等接口
+"""
+
+from common.common_func import commonFuc
+from air_case.cmdc_login.多采商城登录.多采商城登录 import CmdcMaiiLogin
+from air_case.cmdc_login.后台管理系统登录.后台管理系统登录 import CmdcDoLogin
+import requests
+import json
+
+module = "cmdc_demand"
+
+# 第二步登录多采商城获取token信息
+# 获取登录多采商城所需账号密码
+username = commonFuc().get_business_data(module, "username")
+password = commonFuc().get_business_data(module, "password")
+# 获取登录后Cmdc_access_token并进行参数化赋值
+cmdc_access_token1 = CmdcMaiiLogin(username, password).get_token()
+headers1 = commonFuc().get_business_data(module, "json_headers1", cmdc_access_token1)
+
+# 第二步进行草稿订单创建
+url1 = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url1")
+request_body1 = commonFuc().get_business_data(module, "payload1")
+# 发送请求
+result1 = requests.post(url1, json=request_body1, headers=headers1)
+result1 = json.loads(result1.content)
+# 获取预期结果
+check_dict1 = commonFuc().get_business_data(module, "checkDict1")
+# 断言实际结果中是否包含预期结果的内容
+commonFuc().check_result(check_dict1, result1)
+
+# 第三步查询需求单列表中草稿订单列表
+url2 = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url2")
+request_body2 = commonFuc().get_business_data(module, "payload2")
+# 发送请求
+result2 = requests.post(url2, json=request_body2, headers=headers1)
+result2 = json.loads(result2.content)
+# 获取预期结果
+check_dict2 = commonFuc().get_business_data(module, "checkDict2")
+# 断言实际结果中是否包含预期结果的内容
+commonFuc().check_result(check_dict2, result2)
+
+# 第四步获取到新增草稿订单对应的id并进行参数化赋值处理
+demand_parent_id = result2["data"]["list"][0]["demandParentId"]
+# print(demand_parent_id)
+# 步骤五对新创建的草稿订单进行删除操作
+url3 = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url3")
+request_body3 = commonFuc().get_business_data(module, "payload3", demand_parent_id)
+# 发送请求
+result3 = requests.get(url3, params=request_body3, headers=headers1)
+result3 = json.loads(result3.content)
+# 获取预期结果
+check_dict3 = commonFuc().get_business_data(module, "checkDict3")
+# 断言实际结果中是否包含预期结果的内容
+commonFuc().check_result(check_dict3, result3)
+
+"""
+ 场景:流程验证-商城草稿订单创建-查询-删除
+ 用例名称:商城草稿订单创建-查询-删除
+ 备注说明:此处删除操作为物理删除
+"""
diff --git "a/air_case/cmdc_demand/\345\277\253\351\200\237\344\270\213\345\215\225-\344\272\214\345\256\241\345\256\241\346\240\270\346\213\222\347\273\235.air/\345\277\253\351\200\237\344\270\213\345\215\225-\344\272\214\345\256\241\345\256\241\346\240\270\346\213\222\347\273\235.py" "b/air_case/cmdc_demand/\345\277\253\351\200\237\344\270\213\345\215\225-\344\272\214\345\256\241\345\256\241\346\240\270\346\213\222\347\273\235.air/\345\277\253\351\200\237\344\270\213\345\215\225-\344\272\214\345\256\241\345\256\241\346\240\270\346\213\222\347\273\235.py"
new file mode 100644
index 0000000000000000000000000000000000000000..5babec269baad43c1311d94b42894176a8f80c0d
--- /dev/null
+++ "b/air_case/cmdc_demand/\345\277\253\351\200\237\344\270\213\345\215\225-\344\272\214\345\256\241\345\256\241\346\240\270\346\213\222\347\273\235.air/\345\277\253\351\200\237\344\270\213\345\215\225-\344\272\214\345\256\241\345\256\241\346\240\270\346\213\222\347\273\235.py"
@@ -0,0 +1,80 @@
+# -*- encoding=utf8 -*-
+__author__ = "liguangyu"
+
+"""
+case_tag:cmdc_api,cmdc快速下单-二审拒绝,2252,2252-24,sit,bs
+涉及到接口:需求单创建、需求单审核通过、二审通过等接口
+"""
+
+from common.common_func import commonFuc
+from air_case.cmdc_login.多采商城登录.多采商城登录 import CmdcMaiiLogin
+from air_case.cmdc_login.后台管理系统登录.后台管理系统登录 import CmdcDoLogin
+import requests
+import json
+
+module = "cmdc_demand"
+
+# 第一步登录多采商城获取token信息
+# 获取登录多采商城所需账号密码
+username = commonFuc().get_business_data(module, "username")
+password = commonFuc().get_business_data(module, "password")
+# 获取登录后Cmdc_access_token并进行参数化赋值
+cmdc_access_token1 = CmdcMaiiLogin(username, password).get_token()
+headers1 = commonFuc().get_business_data(module, "json_headers1", cmdc_access_token1)
+print(headers1)
+# 第二步进行需求单创建
+url1 = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url4")
+request_body1 = commonFuc().get_business_data(module, "payload4")
+# 发送请求
+result1 = requests.post(url1, json=request_body1, headers=headers1)
+result1 = json.loads(result1.content)
+# 获取预期结果
+check_dict1 = commonFuc().get_business_data(module, "checkDict4")
+# 断言实际结果中是否包含预期结果的内容
+commonFuc().check_result(check_dict1, result1)
+# 获取新创建需求单对应的订单编号
+order_num = result1["data"]["国药集团北京医疗器械有限公司"]["demandItems"][0]["demandCode"]
+# print(order_num)
+
+# 登录后台管理系统获取token信息
+# 获取登录后台管理系统所需账号密码
+username1 = commonFuc().get_business_data(module, "username1")
+password1 = commonFuc().get_business_data(module, "password1")
+# 获取登录后Cmdc_access_token并进行参数化赋值
+cmdc_access_token = CmdcDoLogin(username1, password1).get_token()
+headers = commonFuc().get_business_data(module, "json_headers", cmdc_access_token)
+
+# 第三步在需求单列表根据订单编号查询出新创建的需求单
+url2 = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url80")
+request_body2 = commonFuc().get_business_data(module, "payload80")
+# 发送请求
+result2 = requests.post(url2, json=request_body2, headers=headers)
+result2 = json.loads(result2.content)
+# 获取预期结果
+check_dict2 = commonFuc().get_business_data(module, "checkDict80")
+# 断言实际结果中是否包含预期结果的内容
+commonFuc().check_result(check_dict2, result2)
+
+# 第四步获取到新增需求单对应的id并进行参数化赋值处理
+demand_id = result2["data"]["list"][0]["demandId"]
+demand_code = result2["data"]["list"][0]["demandCode"]
+# print(demand_id, demand_code)
+
+# 步骤五对新创建的需求单订单进行审核操作
+url3 = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url82")
+request_body3 = commonFuc().get_business_data(module, "payload82", demand_id, demand_code)
+# 发送请求
+result3 = requests.post(url3, json=request_body3, headers=headers)
+result3 = json.loads(result3.content)
+# print(result3)
+# 获取预期结果
+check_dict3 = commonFuc().get_business_data(module, "checkDict82")
+# 断言实际结果中是否包含预期结果的内容
+commonFuc().check_result(check_dict3, result3)
+
+"""
+ 场景:流程验证-快速下单创建-一审通过-二审拒绝
+ 用例名称:快速下单-二审拒绝
+"""
+
+
diff --git "a/air_case/cmdc_demand/\345\277\253\351\200\237\344\270\213\345\215\225-\344\272\214\345\256\241\351\200\232\350\277\207.air/\345\277\253\351\200\237\344\270\213\345\215\225-\344\272\214\345\256\241\351\200\232\350\277\207.py" "b/air_case/cmdc_demand/\345\277\253\351\200\237\344\270\213\345\215\225-\344\272\214\345\256\241\351\200\232\350\277\207.air/\345\277\253\351\200\237\344\270\213\345\215\225-\344\272\214\345\256\241\351\200\232\350\277\207.py"
new file mode 100644
index 0000000000000000000000000000000000000000..b5dc476f2984fb3880771514110be3fc2a68f7bc
--- /dev/null
+++ "b/air_case/cmdc_demand/\345\277\253\351\200\237\344\270\213\345\215\225-\344\272\214\345\256\241\351\200\232\350\277\207.air/\345\277\253\351\200\237\344\270\213\345\215\225-\344\272\214\345\256\241\351\200\232\350\277\207.py"
@@ -0,0 +1,81 @@
+# -*- encoding=utf8 -*-
+__author__ = "liguangyu"
+
+"""
+case_tag:cmdc_api,cmdc快速下单-二审通过,2252,2252-25,sit,bs
+涉及到接口:需求单创建、需求单审核通过、二审通过等接口
+"""
+
+from common.common_func import commonFuc
+from air_case.cmdc_login.多采商城登录.多采商城登录 import CmdcMaiiLogin
+from air_case.cmdc_login.后台管理系统登录.后台管理系统登录 import CmdcDoLogin
+import requests
+import json
+
+module = "cmdc_demand"
+
+# 第一步登录多采商城获取token信息
+# 获取登录多采商城所需账号密码
+username = commonFuc().get_business_data(module, "username")
+password = commonFuc().get_business_data(module, "password")
+# 获取登录后Cmdc_access_token并进行参数化赋值
+cmdc_access_token1 = CmdcMaiiLogin(username, password).get_token()
+headers1 = commonFuc().get_business_data(module, "json_headers1", cmdc_access_token1)
+# print(headers1)
+# 第二步进行需求单创建
+url1 = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url4")
+request_body1 = commonFuc().get_business_data(module, "payload4")
+# 发送请求
+result1 = requests.post(url1, json=request_body1, headers=headers1)
+result1 = json.loads(result1.content)
+# 获取预期结果
+check_dict1 = commonFuc().get_business_data(module, "checkDict4")
+# 断言实际结果中是否包含预期结果的内容
+commonFuc().check_result(check_dict1, result1)
+# 获取新创建需求单对应的订单编号
+order_num = result1["data"]["国药集团北京医疗器械有限公司"]["demandItems"][0]["demandCode"]
+# print(order_num)
+
+# 登录后台管理系统获取token信息
+# 获取登录后台管理系统所需账号密码
+username1 = commonFuc().get_business_data(module, "username1")
+password1 = commonFuc().get_business_data(module, "password1")
+# 获取登录后Cmdc_access_token并进行参数化赋值
+cmdc_access_token = CmdcDoLogin(username1, password1).get_token()
+headers = commonFuc().get_business_data(module, "json_headers", cmdc_access_token)
+
+# 第三步在需求单列表根据订单编号查询出新创建的需求单
+url2 = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url80")
+request_body2 = commonFuc().get_business_data(module, "payload80")
+# 发送请求
+result2 = requests.post(url2, json=request_body2, headers=headers)
+result2 = json.loads(result2.content)
+# 获取预期结果
+check_dict2 = commonFuc().get_business_data(module, "checkDict80")
+# 断言实际结果中是否包含预期结果的内容
+commonFuc().check_result(check_dict2, result2)
+
+# 第四步获取到新增需求单对应的id并进行参数化赋值处理
+demand_id = result2["data"]["list"][0]["demandId"]
+demand_code = result2["data"]["list"][0]["demandCode"]
+# print(demand_id)
+
+# 步骤五对新创建的需求单订单进行审核操作
+url3 = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url81")
+request_body3 = commonFuc().get_business_data(module, "payload81", demand_id, demand_code)
+# 发送请求
+result3 = requests.post(url3, json=request_body3, headers=headers)
+result3 = json.loads(result3.content)
+# print(result3)
+# 获取预期结果
+check_dict3 = commonFuc().get_business_data(module, "checkDict81")
+# 断言实际结果中是否包含预期结果的内容
+commonFuc().check_result(check_dict3, result3)
+
+"""
+ 场景:流程验证-快速下单创建-一审通过-二审通过
+ 用例名称:快速下单-二审通过
+"""
+
+
+
diff --git "a/air_case/cmdc_demand/\345\277\253\351\200\237\344\270\213\345\215\225-\345\256\241\346\240\270\346\213\222\347\273\235.air/\345\277\253\351\200\237\344\270\213\345\215\225-\345\256\241\346\240\270\346\213\222\347\273\235.py" "b/air_case/cmdc_demand/\345\277\253\351\200\237\344\270\213\345\215\225-\345\256\241\346\240\270\346\213\222\347\273\235.air/\345\277\253\351\200\237\344\270\213\345\215\225-\345\256\241\346\240\270\346\213\222\347\273\235.py"
new file mode 100644
index 0000000000000000000000000000000000000000..c6ffdee81ebee8f7472834ed032003f35e53c309
--- /dev/null
+++ "b/air_case/cmdc_demand/\345\277\253\351\200\237\344\270\213\345\215\225-\345\256\241\346\240\270\346\213\222\347\273\235.air/\345\277\253\351\200\237\344\270\213\345\215\225-\345\256\241\346\240\270\346\213\222\347\273\235.py"
@@ -0,0 +1,80 @@
+# -*- encoding=utf8 -*-
+__author__ = "liguangyu"
+
+"""
+case_tag:cmdc_api,cmdc快速下单-审核拒绝,2252,2252-26,sit,bs
+涉及到接口:需求单创建、需求单审核拒绝等接口
+"""
+
+from common.common_func import commonFuc
+from air_case.cmdc_login.多采商城登录.多采商城登录 import CmdcMaiiLogin
+from air_case.cmdc_login.后台管理系统登录.后台管理系统登录 import CmdcDoLogin
+import requests
+import json
+
+module = "cmdc_demand"
+
+# 第一步登录多采商城获取token信息
+# 获取登录多采商城所需账号密码
+username = commonFuc().get_business_data(module, "username")
+password = commonFuc().get_business_data(module, "password")
+# 获取登录后Cmdc_access_token并进行参数化赋值
+cmdc_access_token1 = CmdcMaiiLogin(username, password).get_token()
+headers1 = commonFuc().get_business_data(module, "json_headers1", cmdc_access_token1)
+print(headers1)
+# 第二步进行需求单创建
+url1 = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url4")
+request_body1 = commonFuc().get_business_data(module, "payload4")
+# 发送请求
+result1 = requests.post(url1, json=request_body1, headers=headers1)
+result1 = json.loads(result1.content)
+# 获取预期结果
+check_dict1 = commonFuc().get_business_data(module, "checkDict4")
+# 断言实际结果中是否包含预期结果的内容
+commonFuc().check_result(check_dict1, result1)
+# 获取新创建需求单对应的订单编号
+order_num = result1["data"]["国药集团北京医疗器械有限公司"]["demandItems"][0]["demandCode"]
+# print(order_num)
+
+# 登录后台管理系统获取token信息
+# 获取登录后台管理系统所需账号密码
+username1 = commonFuc().get_business_data(module, "username2")
+password1 = commonFuc().get_business_data(module, "password2")
+# 获取登录后Cmdc_access_token并进行参数化赋值
+cmdc_access_token = CmdcDoLogin(username1, password1).get_token()
+headers = commonFuc().get_business_data(module, "json_headers", cmdc_access_token)
+
+# 第三步在需求单列表根据订单编号查询出新创建的需求单
+url2 = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url5")
+request_body2 = commonFuc().get_business_data(module, "payload5", order_num)
+# 发送请求
+result2 = requests.post(url2, json=request_body2, headers=headers)
+result2 = json.loads(result2.content)
+# 获取预期结果
+check_dict2 = commonFuc().get_business_data(module, "checkDict5")
+# 断言实际结果中是否包含预期结果的内容
+commonFuc().check_result(check_dict2, result2)
+
+# 第四步获取到新增需求单对应的id并进行参数化赋值处理
+demand_id = result2["data"]["list"][0]["demandId"]
+# print(demand_id)
+
+# 步骤五对新创建的需求单订单进行删除操作
+url3 = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url6")
+request_body3 = commonFuc().get_business_data(module, "payload6", demand_id)
+# 发送请求
+result3 = requests.post(url3, json=request_body3, headers=headers)
+result3 = json.loads(result3.content)
+# print(result3)
+# 获取预期结果
+check_dict3 = commonFuc().get_business_data(module, "checkDict6")
+# 断言实际结果中是否包含预期结果的内容
+commonFuc().check_result(check_dict3, result3)
+
+"""
+ 场景:流程验证-快速下单创建-审核拒绝
+ 用例名称:快速下单创建-审核拒绝
+ 备注说明:总站审核处理
+"""
+
+
diff --git "a/air_case/cmdc_demand/\345\277\253\351\200\237\344\270\213\345\215\225-\347\224\263\350\257\267\345\217\226\346\266\210-\345\256\241\346\240\270.air/\345\277\253\351\200\237\344\270\213\345\215\225-\347\224\263\350\257\267\345\217\226\346\266\210-\345\256\241\346\240\270.py" "b/air_case/cmdc_demand/\345\277\253\351\200\237\344\270\213\345\215\225-\347\224\263\350\257\267\345\217\226\346\266\210-\345\256\241\346\240\270.air/\345\277\253\351\200\237\344\270\213\345\215\225-\347\224\263\350\257\267\345\217\226\346\266\210-\345\256\241\346\240\270.py"
new file mode 100644
index 0000000000000000000000000000000000000000..5327f97c0574b0cdcb540086a9ae3a5f487eb290
--- /dev/null
+++ "b/air_case/cmdc_demand/\345\277\253\351\200\237\344\270\213\345\215\225-\347\224\263\350\257\267\345\217\226\346\266\210-\345\256\241\346\240\270.air/\345\277\253\351\200\237\344\270\213\345\215\225-\347\224\263\350\257\267\345\217\226\346\266\210-\345\256\241\346\240\270.py"
@@ -0,0 +1,103 @@
+# -*- encoding=utf8 -*-
+__author__ = "liguangyu"
+
+"""
+case_tag:cmdc_api,cmdc快速下单-申请取消-审核,2252,2252-27,sit,bs
+涉及到接口:需求单创建、需求单取消、审核等接口
+"""
+
+from common.common_func import commonFuc
+from air_case.cmdc_login.多采商城登录.多采商城登录 import CmdcMaiiLogin
+from air_case.cmdc_login.后台管理系统登录.后台管理系统登录 import CmdcDoLogin
+import requests
+import json
+
+module = "cmdc_demand"
+
+# 第一步登录多采商城获取token信息
+# 获取登录多采商城所需账号密码
+username = commonFuc().get_business_data(module, "username")
+password = commonFuc().get_business_data(module, "password")
+# 获取登录后Cmdc_access_token并进行参数化赋值
+cmdc_access_token1 = CmdcMaiiLogin(username, password).get_token()
+headers1 = commonFuc().get_business_data(module, "json_headers1", cmdc_access_token1)
+
+# 第二步进行需求单创建
+url1 = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url10")
+request_body1 = commonFuc().get_business_data(module, "payload10")
+# 发送请求
+result1 = requests.post(url1, json=request_body1, headers=headers1)
+result1 = json.loads(result1.content)
+# print(result1)
+# 获取预期结果
+check_dict1 = commonFuc().get_business_data(module, "checkDict10")
+# 断言实际结果中是否包含预期结果的内容
+commonFuc().check_result(check_dict1, result1)
+# 获取新创建需求单对应的订单编号
+order_num = result1["data"]["国药集团北京医疗器械有限公司"]["demandItems"][0]["demandCode"]
+# print(order_num)
+# 第三步在需求单列表根据订单编号查询出新创建的需求单
+url2 = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url20")
+request_body2 = commonFuc().get_business_data(module, "payload20", order_num)
+# 发送请求
+result2 = requests.post(url2, json=request_body2, headers=headers1)
+result2 = json.loads(result2.content)
+# 获取预期结果
+check_dict2 = commonFuc().get_business_data(module, "checkDict2")
+# 断言实际结果中是否包含预期结果的内容
+commonFuc().check_result(check_dict2, result2)
+
+# 第四步获取到新增需求单对应的id并进行参数化赋值处理
+demand_code = result2["data"]["list"][0]["demandCode"]
+
+# 步骤五对新创建的需求单进行取消申请操作
+url3 = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url30")
+request_body3 = commonFuc().get_business_data(module, "payload30", demand_code)
+# 发送请求
+result3 = requests.post(url3, json=request_body3, headers=headers1)
+result3 = json.loads(result3.content)
+# print(result3)
+# 获取预期结果
+check_dict3 = commonFuc().get_business_data(module, "checkDict30")
+# 断言实际结果中是否包含预期结果的内容
+commonFuc().check_result(check_dict3, result3)
+
+"""
+ 场景:流程验证-快速下单创建-申请取消-审核
+ 用例名称:快速下单创建-申请取消-审核
+"""
+# 步骤六在后台运营系统查询出用户提交取消申请
+# 登录后台运营系统获取token信息
+# 获取登录多采商城所需账号密码
+username = commonFuc().get_business_data(module, "username1")
+password = commonFuc().get_business_data(module, "password1")
+# 获取登录后Cmdc_access_token并进行参数化赋值
+cmdc_access_token = CmdcDoLogin(username, password).get_token()
+headers = commonFuc().get_business_data(module, "json_headers", cmdc_access_token)
+# 查询用户提交的取消的需求单
+url4 = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url83")
+request_body4 = commonFuc().get_business_data(module, "payload83", demand_code)
+# 发送请求
+result4 = requests.post(url4, json=request_body4, headers=headers)
+result4 = json.loads(result4.content)
+# print(result4)
+# 获取预期结果
+check_dict4 = commonFuc().get_business_data(module, "checkDict83")
+# 断言实际结果中是否包含预期结果的内容
+commonFuc().check_result(check_dict4, result4)
+# 获取demandid
+demand_id = result2["data"]["list"][0]["demandId"]
+
+# 对需求单进行审核操作
+url5 = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url84")
+# print(url5)
+request_body5 = commonFuc().get_business_data(module, "payload84", demand_id)
+# print(request_body5)
+# 发送请求
+result5 = requests.post(url5, json=request_body5, headers=headers)
+result5 = json.loads(result5.content)
+# print(result5)
+# 获取预期结果
+check_dict5 = commonFuc().get_business_data(module, "checkDict84")
+# 断言实际结果中是否包含预期结果的内容
+commonFuc().check_result(check_dict5, result5)
diff --git "a/air_case/cmdc_demand_audit/\351\234\200\346\261\202\345\215\225\345\256\241\346\240\270\351\200\232\350\277\207_\344\273\243\345\256\242\344\270\213\345\215\225.air/\351\234\200\346\261\202\345\215\225\345\256\241\346\240\270\351\200\232\350\277\207_\344\273\243\345\256\242\344\270\213\345\215\225.py" "b/air_case/cmdc_demand_audit/\351\234\200\346\261\202\345\215\225\345\256\241\346\240\270\351\200\232\350\277\207_\344\273\243\345\256\242\344\270\213\345\215\225.air/\351\234\200\346\261\202\345\215\225\345\256\241\346\240\270\351\200\232\350\277\207_\344\273\243\345\256\242\344\270\213\345\215\225.py"
new file mode 100644
index 0000000000000000000000000000000000000000..3b3dab50657f2d55aea02fe2da2801f35b8e7a46
--- /dev/null
+++ "b/air_case/cmdc_demand_audit/\351\234\200\346\261\202\345\215\225\345\256\241\346\240\270\351\200\232\350\277\207_\344\273\243\345\256\242\344\270\213\345\215\225.air/\351\234\200\346\261\202\345\215\225\345\256\241\346\240\270\351\200\232\350\277\207_\344\273\243\345\256\242\344\270\213\345\215\225.py"
@@ -0,0 +1,61 @@
+# -*- encoding=utf8 -*-
+__author__ = "liguangyu"
+
+"""
+case_tag:cmdc_api,cmdc需求单审核通过-代客下单,2250,2250-3,sit,bs
+主数据平台:运营后台管理系统需求单审核接口
+"""
+
+from common.common_func import commonFuc
+from air_case.cmdc_login.后台管理系统登录.后台管理系统登录 import CmdcDoLogin
+import requests
+import json
+
+
+module = "cmdc_demand_audit"
+# 第一步登录后台管理系统
+# 获取登录所需账号密码
+username = commonFuc().get_business_data(module, "username")
+password = commonFuc().get_business_data(module, "password")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcDoLogin(username, password).get_token()
+# print(cmdc_access_token)
+headers = commonFuc().get_business_data(module, "json_headers", cmdc_access_token)
+# print(headers)
+# 第二步提交创建需求单(代客下单)
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url1")
+# print(url)
+request_body = commonFuc().get_business_data(module, "payload1")
+# print(request_body)
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+# print(result)
+# 第三步在需求单列表查询到已创建的需求单
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url2")
+# print(url)
+request_body = commonFuc().get_business_data(module, "payload2")
+# print(request_body)
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+# print(result)
+# 第四步审核刚刚创建的需求单
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url3")
+# print(url)
+request_body = commonFuc().get_business_data(module, "payload3")
+# print(request_body)
+"""
+ 场景:通过代客下单提交创建需求单,并完成审核
+ 用例名称:需求单审核通过
+ 输出:{"success":true,"code":"200","message":null,"data":[],"freshToken":null}
+"""
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+# print(result)
+# 获取预期结果
+check_dict = commonFuc().get_business_data(module, "checkDict2")
+print(check_dict)
+# 断言实际结果中是否包含预期结果的内容
+commonFuc().check_result(check_dict, result)
diff --git "a/air_case/cmdc_demand_audit/\351\234\200\346\261\202\345\215\225\345\256\241\346\240\270\351\200\232\350\277\207_\345\277\253\351\200\237\344\270\213\345\215\225.air/\351\234\200\346\261\202\345\215\225\345\256\241\346\240\270\351\200\232\350\277\207_\345\277\253\351\200\237\344\270\213\345\215\225.py" "b/air_case/cmdc_demand_audit/\351\234\200\346\261\202\345\215\225\345\256\241\346\240\270\351\200\232\350\277\207_\345\277\253\351\200\237\344\270\213\345\215\225.air/\351\234\200\346\261\202\345\215\225\345\256\241\346\240\270\351\200\232\350\277\207_\345\277\253\351\200\237\344\270\213\345\215\225.py"
new file mode 100644
index 0000000000000000000000000000000000000000..0f3a8e94ae025744253dc4411de0b6af55891e23
--- /dev/null
+++ "b/air_case/cmdc_demand_audit/\351\234\200\346\261\202\345\215\225\345\256\241\346\240\270\351\200\232\350\277\207_\345\277\253\351\200\237\344\270\213\345\215\225.air/\351\234\200\346\261\202\345\215\225\345\256\241\346\240\270\351\200\232\350\277\207_\345\277\253\351\200\237\344\270\213\345\215\225.py"
@@ -0,0 +1,74 @@
+# -*- encoding=utf8 -*-
+__author__ = "liguangyu"
+
+"""
+case_tag:cmdc_api,cmdc需求单审核通过,2252,2252-7,sit,bs
+主数据平台:多采商城获取需求单审核接口
+"""
+
+from common.common_func import commonFuc
+from air_case.cmdc_login.多采商城登录.多采商城登录 import CmdcMaiiLogin
+from air_case.cmdc_login.后台管理系统登录.后台管理系统登录 import CmdcDoLogin
+import requests
+import json
+
+module = "cmdc_demand_audit"
+
+# 第一步登录多采商城
+# 获取登录所需账号密码
+username = commonFuc().get_business_data(module, "username1")
+password = commonFuc().get_business_data(module, "password1")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcMaiiLogin(username, password).get_token()
+# print(cmdc_access_token)
+headers1 = commonFuc().get_business_data(module, "json_headers1", cmdc_access_token)
+# print(headers1)
+
+# 第二步创建并提交需求单
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url4")
+# print(url)
+request_body = commonFuc().get_business_data(module, "payload4")
+# print(request_body)
+result = requests.post(url, json=request_body, headers=headers1)
+result = json.loads(result.content)
+# print(result)
+
+# 第三步登录后台管理系统
+# 获取登录所需账号密码
+username = commonFuc().get_business_data(module, "username")
+password = commonFuc().get_business_data(module, "password")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcDoLogin(username, password).get_token()
+# print(cmdc_access_token)
+headers = commonFuc().get_business_data(module, "json_headers", cmdc_access_token)
+# print(headers)
+
+# 第四步在需求单列表查询刚刚创建的需求单
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url2")
+# print(url)
+request_body = commonFuc().get_business_data(module, "payload2")
+print(request_body)
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+# print(result)
+
+# 第五步进行需求单审核处理
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url3")
+# print(url)
+request_body = commonFuc().get_business_data(module, "payload3")
+# print(request_body)
+"""
+ 场景:通过快速下单入口提交创建需求单,并进行审核通过操作
+ 用例名称:通过快速下单入口提交创建并审核需求单
+ 输出:{"success":true,"code":"200","message":"ok","data":null,"freshToken":null}
+"""
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+# print(result)
+# 获取预期结果
+check_dict = commonFuc().get_business_data(module, "checkDict2")
+print(check_dict)
+# 断言实际结果中是否包含预期结果的内容
+commonFuc().check_result(check_dict, result)
diff --git "a/air_case/cmdc_demand_create_pc/\345\244\232\351\207\207\345\225\206\345\237\216\351\234\200\346\261\202\345\215\225\345\210\233\345\273\272.air/\345\244\232\351\207\207\345\225\206\345\237\216\351\234\200\346\261\202\345\215\225\345\210\233\345\273\272.py" "b/air_case/cmdc_demand_create_pc/\345\244\232\351\207\207\345\225\206\345\237\216\351\234\200\346\261\202\345\215\225\345\210\233\345\273\272.air/\345\244\232\351\207\207\345\225\206\345\237\216\351\234\200\346\261\202\345\215\225\345\210\233\345\273\272.py"
new file mode 100644
index 0000000000000000000000000000000000000000..3686a1375cc5d76b1661a3163b28f96efc176b32
--- /dev/null
+++ "b/air_case/cmdc_demand_create_pc/\345\244\232\351\207\207\345\225\206\345\237\216\351\234\200\346\261\202\345\215\225\345\210\233\345\273\272.air/\345\244\232\351\207\207\345\225\206\345\237\216\351\234\200\346\261\202\345\215\225\345\210\233\345\273\272.py"
@@ -0,0 +1,38 @@
+# -*- encoding=utf8 -*-
+__author__ = "liguangyu"
+
+"""
+case_tag:cmdc_api,cmdc需求单创建(快速下单),2252,2252-36,sit,bs
+主数据平台:多采商城需求单创建接口
+"""
+
+from common.common_func import commonFuc
+from air_case.cmdc_login.多采商城登录.多采商城登录 import CmdcMaiiLogin
+import requests
+import json
+
+module = "cmdc_demand_create_pc"
+
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url")
+# print(url)
+# 获取登录所需账号密码
+username = commonFuc().get_business_data(module, "username")
+password = commonFuc().get_business_data(module, "password")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcMaiiLogin(username, password).get_token()
+headers = commonFuc().get_business_data(module, "json_headers", cmdc_access_token)
+request_body = commonFuc().get_business_data(module, "payload")
+"""
+ 场景:通过快速下单入口提交创建需求单
+ 用例名称:通过快速下单入口提交创建需求单
+ 输出:{"success":true,"code":"200","message":null}
+"""
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+# print(result)
+# 获取预期结果
+check_dict = commonFuc().get_business_data(module, "checkDict")
+print(check_dict)
+# 断言实际结果中是否包含预期结果的内容
+commonFuc().check_result(check_dict, result)
diff --git "a/air_case/cmdc_demand_create_pc/\345\244\232\351\207\207\345\225\206\345\237\216\351\234\200\346\261\202\345\215\225\350\215\211\347\250\277\345\210\233\345\273\272.air/\345\244\232\351\207\207\345\225\206\345\237\216\351\234\200\346\261\202\345\215\225\350\215\211\347\250\277\345\210\233\345\273\272.py" "b/air_case/cmdc_demand_create_pc/\345\244\232\351\207\207\345\225\206\345\237\216\351\234\200\346\261\202\345\215\225\350\215\211\347\250\277\345\210\233\345\273\272.air/\345\244\232\351\207\207\345\225\206\345\237\216\351\234\200\346\261\202\345\215\225\350\215\211\347\250\277\345\210\233\345\273\272.py"
new file mode 100644
index 0000000000000000000000000000000000000000..27d20790140912effaaedc092a8adfbcb7b54f1d
--- /dev/null
+++ "b/air_case/cmdc_demand_create_pc/\345\244\232\351\207\207\345\225\206\345\237\216\351\234\200\346\261\202\345\215\225\350\215\211\347\250\277\345\210\233\345\273\272.air/\345\244\232\351\207\207\345\225\206\345\237\216\351\234\200\346\261\202\345\215\225\350\215\211\347\250\277\345\210\233\345\273\272.py"
@@ -0,0 +1,38 @@
+# -*- encoding=utf8 -*-
+__author__ = "liguangyu"
+
+"""
+case_tag:cmdc_api,cmdc多采商城需求单草稿创建,2252,2252-35,sit,bs
+主数据平台:多采商城需求单草稿订单创建(快速下单)接口
+"""
+
+from common.common_func import commonFuc
+from air_case.cmdc_login.多采商城登录.多采商城登录 import CmdcMaiiLogin
+import requests
+import json
+
+module = "cmdc_demand_create_pc"
+
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url2")
+
+# 获取登录所需账号密码
+username = commonFuc().get_business_data(module, "username")
+password = commonFuc().get_business_data(module, "password")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcMaiiLogin(username, password).get_token()
+headers = commonFuc().get_business_data(module, "json_headers", cmdc_access_token)
+request_body = commonFuc().get_business_data(module, "payload2")
+"""
+ 场景:通过快速下单入口提交创建需求单草稿
+ 用例名称:通过快速下单入口提交创建需求单草稿
+ 输出:{"success":true,"code":"200","message":"OK"}
+"""
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+# print(result)
+# 获取预期结果
+check_dict = commonFuc().get_business_data(module, "checkDict2")
+print(check_dict)
+# 断言实际结果中是否包含预期结果的内容
+commonFuc().check_result(check_dict, result)
diff --git "a/air_case/cmdc_demand_creation/\351\234\200\346\261\202\345\215\225\345\210\233\345\273\272.air/\351\234\200\346\261\202\345\215\225\345\210\233\345\273\272.py" "b/air_case/cmdc_demand_creation/\351\234\200\346\261\202\345\215\225\345\210\233\345\273\272.air/\351\234\200\346\261\202\345\215\225\345\210\233\345\273\272.py"
new file mode 100644
index 0000000000000000000000000000000000000000..039787fec4613ca2606a7784ffa25f37c4da6e74
--- /dev/null
+++ "b/air_case/cmdc_demand_creation/\351\234\200\346\261\202\345\215\225\345\210\233\345\273\272.air/\351\234\200\346\261\202\345\215\225\345\210\233\345\273\272.py"
@@ -0,0 +1,39 @@
+# -*- encoding=utf8 -*-
+__author__ = "liguangyu"
+
+"""
+case_tag:cmdc_api,cmdc需求单创建(代客下单),2250,2250-4,sit,bs
+主数据平台:运营后台管理系统需求单删除接口
+"""
+
+from common.common_func import commonFuc
+from air_case.cmdc_login.后台管理系统登录.后台管理系统登录 import CmdcDoLogin
+import requests
+import json
+
+
+module = "cmdc_demand_creation"
+
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url")
+# print(url)
+# 获取登录所需账号密码
+username = commonFuc().get_business_data(module, "username")
+password = commonFuc().get_business_data(module, "password")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcDoLogin(username, password).get_token()
+headers = commonFuc().get_business_data(module, "json_headers1", cmdc_access_token)
+request_body = commonFuc().get_business_data(module, "payload1")
+"""
+ 场景:需求创建
+ 用例名称:需求单创建
+ 输出:{"success":true,"code":"200","message":"ok","data":null,"freshToken":null}
+"""
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+# print(result)
+# 获取预期结果
+check_dict = commonFuc().get_business_data(module, "checkDict1")
+print(check_dict)
+# 断言实际结果中是否包含预期结果的内容
+commonFuc().check_result(check_dict, result)
\ No newline at end of file
diff --git "a/air_case/cmdc_demand_creation/\351\234\200\346\261\202\350\215\211\347\250\277\350\256\242\345\215\225\345\210\233\345\273\272.air/\351\234\200\346\261\202\350\215\211\347\250\277\350\256\242\345\215\225\345\210\233\345\273\272.py" "b/air_case/cmdc_demand_creation/\351\234\200\346\261\202\350\215\211\347\250\277\350\256\242\345\215\225\345\210\233\345\273\272.air/\351\234\200\346\261\202\350\215\211\347\250\277\350\256\242\345\215\225\345\210\233\345\273\272.py"
new file mode 100644
index 0000000000000000000000000000000000000000..1af57695a815b38a4deb332f0bcced4a8bfc0004
--- /dev/null
+++ "b/air_case/cmdc_demand_creation/\351\234\200\346\261\202\350\215\211\347\250\277\350\256\242\345\215\225\345\210\233\345\273\272.air/\351\234\200\346\261\202\350\215\211\347\250\277\350\256\242\345\215\225\345\210\233\345\273\272.py"
@@ -0,0 +1,38 @@
+# -*- encoding=utf8 -*-
+__author__ = "liguangyu"
+
+"""
+case_tag:cmdc_api,cmdc需求草稿订单创建-代客下单,2250,2250-5,sit,bs
+主数据平台:运营后台管理系统需求单删除接口
+"""
+
+from common.common_func import commonFuc
+from air_case.cmdc_login.后台管理系统登录.后台管理系统登录 import CmdcDoLogin
+import requests
+import json
+
+module = "cmdc_demand_creation"
+
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url2")
+# 获取登录所需账号密码
+username = commonFuc().get_business_data(module, "username")
+password = commonFuc().get_business_data(module, "password")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcDoLogin(username, password).get_token()
+headers = commonFuc().get_business_data(module, "json_headers1", cmdc_access_token)
+request_body = commonFuc().get_business_data(module, "payload2")
+"""
+ 场景:需求草稿订单的创建
+ 用例名称:需求草稿订单的创建
+ 输出:{"success":true,"code":"200","message":"OK"}
+"""
+
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+# print(result)
+# 获取预期结果
+check_dict = commonFuc().get_business_data(module, "checkDict2")
+print(check_dict)
+# 断言实际结果中是否包含预期结果的内容
+commonFuc().check_result(check_dict, result)
diff --git "a/air_case/cmdc_demand_delete/\345\210\240\351\231\244\344\270\215\345\255\230\345\234\250\347\232\204\351\234\200\346\261\202\345\215\225.air/\345\210\240\351\231\244\344\270\215\345\255\230\345\234\250\347\232\204\351\234\200\346\261\202\345\215\225.py" "b/air_case/cmdc_demand_delete/\345\210\240\351\231\244\344\270\215\345\255\230\345\234\250\347\232\204\351\234\200\346\261\202\345\215\225.air/\345\210\240\351\231\244\344\270\215\345\255\230\345\234\250\347\232\204\351\234\200\346\261\202\345\215\225.py"
new file mode 100644
index 0000000000000000000000000000000000000000..d166f0405bacfebc210e4f1bb1463e124509ff17
--- /dev/null
+++ "b/air_case/cmdc_demand_delete/\345\210\240\351\231\244\344\270\215\345\255\230\345\234\250\347\232\204\351\234\200\346\261\202\345\215\225.air/\345\210\240\351\231\244\344\270\215\345\255\230\345\234\250\347\232\204\351\234\200\346\261\202\345\215\225.py"
@@ -0,0 +1,43 @@
+# -*- encoding=utf8 -*-
+__author__ = "liguangyu"
+
+"""
+case_tag:cmdc_api,cmdc删除不存在的需求单,2250,2250-6,sit,bs
+主数据平台:运营后台管理系统需求单删除接口
+"""
+
+from common.common_func import commonFuc
+from air_case.cmdc_login.后台管理系统登录.后台管理系统登录 import CmdcDoLogin
+import requests
+import json
+import random
+
+
+module = "cmdc_demand_delete"
+
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url")
+# 获取登录所需账号密码
+username = commonFuc().get_business_data(module, "username")
+password = commonFuc().get_business_data(module, "password")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcDoLogin(username, password).get_token()
+headers = commonFuc().get_business_data(module, "json_headers1", cmdc_access_token)
+# 随机生成不存在的需求单id
+demand_id = random.randint(10000000000000, 1000000000000000)
+request_body = commonFuc().get_business_data(module, "payload2", demand_id)
+
+"""
+ 场景:删除不存在的需求单
+ 用例名称:删除不存在的需求单
+ 输出:{"success":false,"code":"demand","message":"审核拒绝没有找到子需求单","data":null,"freshToken":null}
+"""
+
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+# print(result)
+# 获取预期结果
+check_dict = commonFuc().get_business_data(module, "checkDict3")
+print(check_dict)
+# 断言实际结果中是否包含预期结果的内容
+commonFuc().check_result(check_dict, result)
diff --git "a/air_case/cmdc_demand_delete/\345\210\240\351\231\244\345\205\266\344\273\226\347\212\266\346\200\201\344\270\213\351\234\200\346\261\202\345\215\225.air/\345\210\240\351\231\244\345\205\266\344\273\226\347\212\266\346\200\201\344\270\213\351\234\200\346\261\202\345\215\225.py" "b/air_case/cmdc_demand_delete/\345\210\240\351\231\244\345\205\266\344\273\226\347\212\266\346\200\201\344\270\213\351\234\200\346\261\202\345\215\225.air/\345\210\240\351\231\244\345\205\266\344\273\226\347\212\266\346\200\201\344\270\213\351\234\200\346\261\202\345\215\225.py"
new file mode 100644
index 0000000000000000000000000000000000000000..1c26148645c196d9b701815cffcb7de0197c8359
--- /dev/null
+++ "b/air_case/cmdc_demand_delete/\345\210\240\351\231\244\345\205\266\344\273\226\347\212\266\346\200\201\344\270\213\351\234\200\346\261\202\345\215\225.air/\345\210\240\351\231\244\345\205\266\344\273\226\347\212\266\346\200\201\344\270\213\351\234\200\346\261\202\345\215\225.py"
@@ -0,0 +1,53 @@
+# -*- encoding=utf8 -*-
+__author__ = "liguangyu"
+
+"""
+case_tag:cmdc_api,cmdc删除其他状态下的需求单,2250,2250-7,sit,bs
+主数据平台:运营后台管理系统需求单删除接口
+"""
+
+from common.common_func import commonFuc
+from air_case.cmdc_login.后台管理系统登录.后台管理系统登录 import CmdcDoLogin
+import requests
+import json
+
+
+module = "cmdc_demand_delete"
+
+
+# 第一步登录后台运营平台获取cmdc_access_token
+# 获取登录所需账号密码
+username = commonFuc().get_business_data(module, "username")
+password = commonFuc().get_business_data(module, "password")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcDoLogin(username, password).get_token()
+headers = commonFuc().get_business_data(module, "json_headers1", cmdc_access_token)
+
+# 第二步查询需求单列表中待审核的需求单
+url1 = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url1")
+request_body = commonFuc().get_business_data(module, "payload40")
+# 发送请求
+result = requests.post(url1, json=request_body, headers=headers)
+result = json.loads(result.content)
+# 获取demandId
+demand_id = result["data"]["list"][0]["demandId"]
+
+# 第三步删除操作
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url")
+request_body = commonFuc().get_business_data(module, "payload4", demand_id)
+
+"""
+ 场景:删除其他状态下的需求单
+ 用例名称:删除其他状态下的需求单
+ 输出:{"success":true,"code":"200","message":"OK","data":1,"freshToken":null}
+"""
+
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+# print(result)
+# 获取预期结果
+check_dict = commonFuc().get_business_data(module, "checkDict5")
+print(check_dict)
+# 断言实际结果中是否包含预期结果的内容
+commonFuc().check_result(check_dict, result)
diff --git "a/air_case/cmdc_demand_delete/\351\207\215\345\244\215\345\210\240\351\231\244\351\234\200\346\261\202\345\215\225.air/\351\207\215\345\244\215\345\210\240\351\231\244\351\234\200\346\261\202\345\215\225.py" "b/air_case/cmdc_demand_delete/\351\207\215\345\244\215\345\210\240\351\231\244\351\234\200\346\261\202\345\215\225.air/\351\207\215\345\244\215\345\210\240\351\231\244\351\234\200\346\261\202\345\215\225.py"
new file mode 100644
index 0000000000000000000000000000000000000000..98f5e251ab0c5e89355b8fc2cdeb082ccf20a9fa
--- /dev/null
+++ "b/air_case/cmdc_demand_delete/\351\207\215\345\244\215\345\210\240\351\231\244\351\234\200\346\261\202\345\215\225.air/\351\207\215\345\244\215\345\210\240\351\231\244\351\234\200\346\261\202\345\215\225.py"
@@ -0,0 +1,82 @@
+# -*- encoding=utf8 -*-
+__author__ = "liguangyu"
+
+"""
+case_tag:cmdc_api,cmdc重复删除需求单,2250,2250-8,sit,bs
+主数据平台:运营后台管理系统需求单删除接口
+"""
+
+from common.common_func import commonFuc
+from air_case.cmdc_login.后台管理系统登录.后台管理系统登录 import CmdcDoLogin
+from common.db.db import mySql
+import requests
+import json
+
+
+module = "cmdc_demand_delete"
+
+
+# 第一步登录后台运营平台获取cmdc_access_token
+# 获取登录所需账号密码
+username = commonFuc().get_business_data(module, "username")
+password = commonFuc().get_business_data(module, "password")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcDoLogin(username, password).get_token()
+headers = commonFuc().get_business_data(module, "json_headers1", cmdc_access_token)
+
+# 进行需求单创建
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url_demand")
+request_body = commonFuc().get_business_data(module, "payload_demand")
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+
+# 数据库操作
+mysql_handle = mySql()
+# 获取conf.ini文件中配置的数据库信息
+host, port, user, pwd = mysql_handle.getConf(db="cmdc_db")
+
+# 进行需求单查询
+sql = "SELECT t.demandCode FROM `cmdc-order`.tc_demand t ORDER BY createTime DESC LIMIT 101"
+demand_code = mysql_handle.selectSql(host, port, user, pwd, "cmdc-order", sql)[0][0]
+sql = "UPDATE `cmdc-order`.tc_demand t SET t.orderStatus = 99 WHERE t.demandCode = '{}'".format(demand_code)
+mysql_handle.executeUpdate(host, port, user, pwd, "cmdc-order", sql)
+
+
+# 第二步查询需求单列表中待首营的需求单
+url1 = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url1")
+request_body = commonFuc().get_business_data(module, "payload10")
+# 发送请求
+result = requests.post(url1, json=request_body, headers=headers)
+result = json.loads(result.content)
+# print(result)
+# 获取demandId
+demand_id = result["data"]["list"][0]["demandId"]
+# print(demand_id)
+# 第三步删除操作
+url2 = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url")
+request_body2 = commonFuc().get_business_data(module, "payload1", demand_id)
+# 发送请求
+result2 = requests.post(url2, json=request_body2, headers=headers)
+
+# 第四步重复进行删除操作
+url3 = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url")
+# print(url3)
+request_body3 = commonFuc().get_business_data(module, "payload3", demand_id)
+# print(request_body3)
+
+"""
+ 场景:重复删除需求单
+ 用例名称:重复删除需求单
+ 输出:{"success":false,"code":"demand","data":null,"freshToken":null}
+"""
+
+# 发送请求
+result3 = requests.post(url3, json=request_body3, headers=headers)
+result3 = json.loads(result3.content)
+# print(result)
+# 获取预期结果
+check_dict = commonFuc().get_business_data(module, "checkDict4")
+print(check_dict)
+# 断言实际结果中是否包含预期结果的内容
+commonFuc().check_result(check_dict, result3)
diff --git "a/air_case/cmdc_demand_delete/\351\234\200\346\261\202\345\215\225\345\210\240\351\231\244.air/\351\234\200\346\261\202\345\215\225\345\210\240\351\231\244.py" "b/air_case/cmdc_demand_delete/\351\234\200\346\261\202\345\215\225\345\210\240\351\231\244.air/\351\234\200\346\261\202\345\215\225\345\210\240\351\231\244.py"
new file mode 100644
index 0000000000000000000000000000000000000000..1da247103105a5d39cfb12bfc983c7e8b59d8c80
--- /dev/null
+++ "b/air_case/cmdc_demand_delete/\351\234\200\346\261\202\345\215\225\345\210\240\351\231\244.air/\351\234\200\346\261\202\345\215\225\345\210\240\351\231\244.py"
@@ -0,0 +1,79 @@
+# -*- encoding=utf8 -*-
+__author__ = "liguangyu"
+
+"""
+case_tag:cmdc_api,cmdc需求单删除,2250,2250-9,sit,bs
+主数据平台:运营后台管理系统需求单删除接口
+"""
+
+from common.common_func import commonFuc
+from air_case.cmdc_login.后台管理系统登录.后台管理系统登录 import CmdcDoLogin
+from common.db.db import mySql
+import requests
+import json
+
+module = "cmdc_demand_delete"
+
+# 第一步登录后台运营平台获取cmdc_access_token
+# 获取登录所需账号密码
+username = commonFuc().get_business_data(module, "username")
+password = commonFuc().get_business_data(module, "password")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcDoLogin(username, password).get_token()
+headers = commonFuc().get_business_data(module, "json_headers1", cmdc_access_token)
+
+# 进行需求单创建
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url_demand")
+request_body = commonFuc().get_business_data(module, "payload_demand")
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+
+# 频繁创建需求单会创建失败,因此添加了判断
+if result["code"] == "200":
+ # 数据库操作
+ mysql_handle = mySql()
+ # 获取conf.ini文件中配置的数据库信息
+ host, port, user, pwd = mysql_handle.getConf(db="cmdc_db")
+
+ # 进行需求单查询
+ sql = "SELECT t.demandCode FROM `cmdc-order`.tc_demand t ORDER BY demandId DESC LIMIT 1"
+ demand_code = mysql_handle.selectSql(host, port, user, pwd, "cmdc-order", sql)[0][0]
+ sql = "UPDATE `cmdc-order`.tc_demand t SET t.orderStatus = 99 WHERE t.demandCode = '{}'".format(demand_code)
+ mysql_handle.executeUpdate(host, port, user, pwd, "cmdc-order", sql)
+
+ # 第二步查询需求单列表中待首营的需求单
+ url1 = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url1")
+ request_body1 = commonFuc().get_business_data(module, "payload10")
+ # 发送请求
+ result1 = requests.post(url1, json=request_body1, headers=headers)
+ result1 = json.loads(result1.content)
+ # print(result1)
+ # 获取demandId
+ demand_id = result1["data"]["list"][0]["demandId"]
+ print(demand_id)
+
+ # 第三步删除操作
+ url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url")
+ request_body = commonFuc().get_business_data(module, "payload1", demand_id)
+
+ """
+ 场景:需求删除
+ 用例名称:需求单删除
+ 输出:{"success":true,"code":"200","message":"OK","data":1,"freshToken":null}
+ 备注:此模块删除为待首营状态下需求单对应的删除图标,非删除按钮
+ """
+
+ # 发送请求
+ result = requests.post(url, json=request_body, headers=headers)
+ result = json.loads(result.content)
+ print(result)
+ # 获取预期结果
+ check_dict = commonFuc().get_business_data(module, "checkDict2")
+ # 断言实际结果中是否包含预期结果的内容
+ commonFuc().check_result(check_dict, result)
+else:
+ # 获取预期结果
+ check_dict = commonFuc().get_business_data(module, "checkDict12")
+ # 断言实际结果中是否包含预期结果的内容
+ commonFuc().check_result(check_dict, result)
diff --git "a/air_case/cmdc_demand_fail/\345\256\241\346\240\270\344\270\215\345\255\230\345\234\250\347\232\204\351\234\200\346\261\202\345\215\225.air/\345\256\241\346\240\270\344\270\215\345\255\230\345\234\250\347\232\204\351\234\200\346\261\202\345\215\225.py" "b/air_case/cmdc_demand_fail/\345\256\241\346\240\270\344\270\215\345\255\230\345\234\250\347\232\204\351\234\200\346\261\202\345\215\225.air/\345\256\241\346\240\270\344\270\215\345\255\230\345\234\250\347\232\204\351\234\200\346\261\202\345\215\225.py"
new file mode 100644
index 0000000000000000000000000000000000000000..9ce994a2f144045b90c508c32d9cf986888fee5d
--- /dev/null
+++ "b/air_case/cmdc_demand_fail/\345\256\241\346\240\270\344\270\215\345\255\230\345\234\250\347\232\204\351\234\200\346\261\202\345\215\225.air/\345\256\241\346\240\270\344\270\215\345\255\230\345\234\250\347\232\204\351\234\200\346\261\202\345\215\225.py"
@@ -0,0 +1,43 @@
+# -*- encoding=utf8 -*-
+__author__ = "liguangyu"
+
+"""
+case_tag:cmdc_api,cmdc审核不存在的需求单,2250,2250-10,sit,bs
+主数据平台:运营后台管理系统需求单审核拒绝接口
+"""
+
+from common.common_func import commonFuc
+from air_case.cmdc_login.后台管理系统登录.后台管理系统登录 import CmdcDoLogin
+import requests
+import json
+import random
+
+
+module = "cmdc_demand_fail"
+
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url")
+# 获取登录所需账号密码
+username = commonFuc().get_business_data(module, "username")
+password = commonFuc().get_business_data(module, "password")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcDoLogin(username, password).get_token()
+headers = commonFuc().get_business_data(module, "json_headers1", cmdc_access_token)
+# 随机生成不存在的需求单id
+demand_id = random.randint(100000000000, 100000000000000)
+request_body = commonFuc().get_business_data(module, "payload3", demand_id)
+
+"""
+ 场景:审核不存在的需求单
+ 用例名称:审核不存在的需求单
+ 输出:{"success":false,"code":"demand","message":"审核拒绝没有找到子需求单","data":null,"freshToken":null}
+"""
+
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+# print(result)
+# 获取预期结果
+check_dict = commonFuc().get_business_data(module, "checkDict3")
+print(check_dict)
+# 断言实际结果中是否包含预期结果的内容
+commonFuc().check_result(check_dict, result)
diff --git "a/air_case/cmdc_demand_fail/\345\256\241\346\240\270\345\205\266\344\273\226\347\212\266\346\200\201\347\232\204\351\234\200\346\261\202\345\215\225.air/\345\256\241\346\240\270\345\205\266\344\273\226\347\212\266\346\200\201\347\232\204\351\234\200\346\261\202\345\215\225.py" "b/air_case/cmdc_demand_fail/\345\256\241\346\240\270\345\205\266\344\273\226\347\212\266\346\200\201\347\232\204\351\234\200\346\261\202\345\215\225.air/\345\256\241\346\240\270\345\205\266\344\273\226\347\212\266\346\200\201\347\232\204\351\234\200\346\261\202\345\215\225.py"
new file mode 100644
index 0000000000000000000000000000000000000000..bf749ff7e9bb0b631a4988c144d75d1ccf9961b5
--- /dev/null
+++ "b/air_case/cmdc_demand_fail/\345\256\241\346\240\270\345\205\266\344\273\226\347\212\266\346\200\201\347\232\204\351\234\200\346\261\202\345\215\225.air/\345\256\241\346\240\270\345\205\266\344\273\226\347\212\266\346\200\201\347\232\204\351\234\200\346\261\202\345\215\225.py"
@@ -0,0 +1,52 @@
+# -*- encoding=utf8 -*-
+__author__ = "liguangyu"
+
+"""
+case_tag:cmdc_api,cmdc审核其他状态的需求单,2250,2250-11,sit,bs
+主数据平台:运营后台管理系统需求单审核拒绝接口
+"""
+
+from common.common_func import commonFuc
+from air_case.cmdc_login.后台管理系统登录.后台管理系统登录 import CmdcDoLogin
+import requests
+import json
+
+
+module = "cmdc_demand_fail"
+
+
+# 第一步登录后台运营平台获取cmdc_access_token
+# 获取登录所需账号密码
+username = commonFuc().get_business_data(module, "username")
+password = commonFuc().get_business_data(module, "password")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcDoLogin(username, password).get_token()
+headers = commonFuc().get_business_data(module, "json_headers1", cmdc_access_token)
+
+# 第二步查询需求单列表中审核通过的需求单
+url1 = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url1")
+request_body = commonFuc().get_business_data(module, "payload40")
+# 发送请求
+result = requests.post(url1, json=request_body, headers=headers)
+result = json.loads(result.content)
+# 获取demandId
+demand_id = result["data"]["list"][0]["demandId"]
+# 第三步进行审核操作
+url1 = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url")
+request_body1 = commonFuc().get_business_data(module, "payload4", demand_id)
+
+"""
+ 场景:审核其他状态下的需求单
+ 用例名称:审核其他状态下的需求单
+ 输出:{"success":true,"code":"200","message":"OK","data":1}
+"""
+
+# 发送请求
+result1 = requests.post(url1, json=request_body1, headers=headers)
+result1 = json.loads(result1.content)
+# print(result1)
+# 获取预期结果
+check_dict = commonFuc().get_business_data(module, "checkDict4")
+print(check_dict)
+# 断言实际结果中是否包含预期结果的内容
+commonFuc().check_result(check_dict, result1)
diff --git "a/air_case/cmdc_demand_fail/\351\207\215\345\244\215\345\256\241\346\240\270.air/\351\207\215\345\244\215\345\256\241\346\240\270.py" "b/air_case/cmdc_demand_fail/\351\207\215\345\244\215\345\256\241\346\240\270.air/\351\207\215\345\244\215\345\256\241\346\240\270.py"
new file mode 100644
index 0000000000000000000000000000000000000000..e98cc517b954ef59395b6c01b6307d1d522c5d3a
--- /dev/null
+++ "b/air_case/cmdc_demand_fail/\351\207\215\345\244\215\345\256\241\346\240\270.air/\351\207\215\345\244\215\345\256\241\346\240\270.py"
@@ -0,0 +1,58 @@
+# -*- encoding=utf8 -*-
+__author__ = "liguangyu"
+
+"""
+case_tag:cmdc_api,cmdc重复审核,2250,2250-12,sit,bs
+主数据平台:运营后台管理系统需求单审核拒绝接口
+"""
+
+from common.common_func import commonFuc
+from air_case.cmdc_login.后台管理系统登录.后台管理系统登录 import CmdcDoLogin
+import requests
+import json
+import time
+
+module = "cmdc_demand_fail"
+
+# 第一步登录后台运营平台获取cmdc_access_token
+# 获取登录所需账号密码
+username = commonFuc().get_business_data(module, "username")
+password = commonFuc().get_business_data(module, "password")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcDoLogin(username, password).get_token()
+headers = commonFuc().get_business_data(module, "json_headers1", cmdc_access_token)
+
+# 第二步查询需求单列表中待审核的需求单
+url1 = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url1")
+request_body = commonFuc().get_business_data(module, "payload10")
+# 发送请求
+result = requests.post(url1, json=request_body, headers=headers)
+result = json.loads(result.content)
+# 获取demandId
+demand_id = result["data"]["list"][0]["demandId"]
+
+# 第三步进行需求单审核拒绝操作
+url2 = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url")
+request_body2 = commonFuc().get_business_data(module, "payload1", demand_id)
+# 发送请求
+result = requests.post(url2, json=request_body2, headers=headers)
+# 增加两次审核间隔时间
+time.sleep(5)
+# 第四步进行需求单重复审核拒绝操作
+url3 = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url")
+request_body3 = commonFuc().get_business_data(module, "payload2", demand_id)
+
+"""
+ 场景:重复审核同一个需求单
+ 用例名称:重复审核同一个需求单
+ 输出:{"success":false,"code":"demand","message":"该订单已提交过,请稍后操作","data":null,"freshToken":null}
+"""
+# 发送请求
+result3 = requests.post(url3, json=request_body3, headers=headers)
+result3 = json.loads(result3.content)
+# print(result3)
+# 获取预期结果
+check_dict = commonFuc().get_business_data(module, "checkDict2")
+print(check_dict)
+# 断言实际结果中是否包含预期结果的内容
+commonFuc().check_result(check_dict, result3)
diff --git "a/air_case/cmdc_demand_fail/\351\234\200\346\261\202\345\215\225\345\256\241\346\240\270\344\270\215\351\200\232\350\277\207.air/\351\234\200\346\261\202\345\215\225\345\256\241\346\240\270\344\270\215\351\200\232\350\277\207.py" "b/air_case/cmdc_demand_fail/\351\234\200\346\261\202\345\215\225\345\256\241\346\240\270\344\270\215\351\200\232\350\277\207.air/\351\234\200\346\261\202\345\215\225\345\256\241\346\240\270\344\270\215\351\200\232\350\277\207.py"
new file mode 100644
index 0000000000000000000000000000000000000000..6257077d00bd1179b0afb5f25fdfcddcee233d00
--- /dev/null
+++ "b/air_case/cmdc_demand_fail/\351\234\200\346\261\202\345\215\225\345\256\241\346\240\270\344\270\215\351\200\232\350\277\207.air/\351\234\200\346\261\202\345\215\225\345\256\241\346\240\270\344\270\215\351\200\232\350\277\207.py"
@@ -0,0 +1,51 @@
+# -*- encoding=utf8 -*-
+__author__ = "liguangyu"
+
+"""
+case_tag:cmdc_api,cmdc需求单审核不通过,2250,2250-13,sit,bs
+主数据平台:运营后台管理系统需求单审核拒绝接口
+"""
+
+from common.common_func import commonFuc
+from air_case.cmdc_login.后台管理系统登录.后台管理系统登录 import CmdcDoLogin
+import requests
+import json
+
+module = "cmdc_demand_fail"
+
+# 第一步登录后台运营平台获取cmdc_access_token
+# 获取登录所需账号密码
+username = commonFuc().get_business_data(module, "username")
+password = commonFuc().get_business_data(module, "password")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcDoLogin(username, password).get_token()
+headers = commonFuc().get_business_data(module, "json_headers1", cmdc_access_token)
+
+# 第二步查询需求单列表中待审核的需求单
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url1")
+request_body = commonFuc().get_business_data(module, "payload10")
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+# 获取demandId
+demand_id = result["data"]["list"][0]["demandId"]
+
+# 第三步进行需求单审核拒绝操作
+url1 = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url")
+request_body1 = commonFuc().get_business_data(module, "payload1", demand_id)
+
+"""
+ 场景:需求单审核不通过
+ 用例名称:需求单审核不通过
+ 输出:{"success":true,"code":"200","message":"OK","data":1}
+"""
+# 发送请求
+
+result1 = requests.post(url1, json=request_body1, headers=headers)
+result1 = json.loads(result1.content)
+# print(result1)
+# 获取预期结果
+check_dict = commonFuc().get_business_data(module, "checkDict1")
+print(check_dict)
+# 断言实际结果中是否包含预期结果的内容
+commonFuc().check_result(check_dict, result1)
diff --git "a/air_case/cmdc_demand_list/\350\216\267\345\217\226\351\234\200\346\261\202\345\215\225\345\210\227\350\241\250.air/\350\216\267\345\217\226\351\234\200\346\261\202\345\215\225\345\210\227\350\241\250.py" "b/air_case/cmdc_demand_list/\350\216\267\345\217\226\351\234\200\346\261\202\345\215\225\345\210\227\350\241\250.air/\350\216\267\345\217\226\351\234\200\346\261\202\345\215\225\345\210\227\350\241\250.py"
new file mode 100644
index 0000000000000000000000000000000000000000..81235ad07d585e643e0259e8e41a64331872fe6c
--- /dev/null
+++ "b/air_case/cmdc_demand_list/\350\216\267\345\217\226\351\234\200\346\261\202\345\215\225\345\210\227\350\241\250.air/\350\216\267\345\217\226\351\234\200\346\261\202\345\215\225\345\210\227\350\241\250.py"
@@ -0,0 +1,41 @@
+# -*- encoding=utf8 -*-
+__author__ = "liguangyu"
+
+"""
+case_tag:cmdc_api,cmdc获取需求单列表,2250,2250-24,sit,bs
+主数据平台:运营后台管理系统需求单列表接口
+"""
+
+from common.common_func import commonFuc
+from air_case.cmdc_login.后台管理系统登录.后台管理系统登录 import CmdcDoLogin
+import requests
+import json
+
+
+module = "cmdc_demand_list"
+
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url1")
+# 获取登录所需账号密码
+username = commonFuc().get_business_data(module, "username")
+password = commonFuc().get_business_data(module, "password")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcDoLogin(username, password).get_token()
+headers = commonFuc().get_business_data(module, "json_headers1", cmdc_access_token)
+request_body = commonFuc().get_business_data(module, "payload1")
+
+"""
+ 场景:传入正确参数,获取到需求列表
+ 用例名称:获取需求列表
+ 输出:{"success":true,"code":"200","message":"OK"}
+"""
+
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+# print(result)
+# 获取预期结果
+check_dict = commonFuc().get_business_data(module, "checkDict2")
+print(check_dict)
+# 断言实际结果中是否包含预期结果的内容
+commonFuc().check_result(check_dict, result)
+
diff --git "a/air_case/cmdc_demand_list/\351\234\200\346\261\202\345\215\225-\350\215\211\347\250\277\350\256\242\345\215\225\345\210\240\351\231\244-\351\200\206\345\220\221.air/\351\234\200\346\261\202\345\215\225-\350\215\211\347\250\277\350\256\242\345\215\225\345\210\240\351\231\244-\351\200\206\345\220\221.py" "b/air_case/cmdc_demand_list/\351\234\200\346\261\202\345\215\225-\350\215\211\347\250\277\350\256\242\345\215\225\345\210\240\351\231\244-\351\200\206\345\220\221.air/\351\234\200\346\261\202\345\215\225-\350\215\211\347\250\277\350\256\242\345\215\225\345\210\240\351\231\244-\351\200\206\345\220\221.py"
new file mode 100644
index 0000000000000000000000000000000000000000..bc7eeda038ff9fb24bc226cdb18656ef0b6e99a4
--- /dev/null
+++ "b/air_case/cmdc_demand_list/\351\234\200\346\261\202\345\215\225-\350\215\211\347\250\277\350\256\242\345\215\225\345\210\240\351\231\244-\351\200\206\345\220\221.air/\351\234\200\346\261\202\345\215\225-\350\215\211\347\250\277\350\256\242\345\215\225\345\210\240\351\231\244-\351\200\206\345\220\221.py"
@@ -0,0 +1,64 @@
+# -*- encoding=utf8 -*-
+__author__ = "liguangyu"
+
+"""
+case_tag:cmdc_api,cmdc需求单-草稿订单删除逆向用例功能验证,2250,2250-23,sit,bs
+主数据平台:运营后台管理系统需求单-草稿订单删除接口
+"""
+
+from common.common_func import commonFuc
+from air_case.cmdc_login.后台管理系统登录.后台管理系统登录 import CmdcDoLogin
+import requests
+import json
+
+module = "cmdc_demand_list"
+
+# 第一步:登录后台运营系统
+# 获取登录所需账号密码
+username = commonFuc().get_business_data(module, "username")
+password = commonFuc().get_business_data(module, "password")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcDoLogin(username, password).get_token()
+headers = commonFuc().get_business_data(module, "json_headers2", cmdc_access_token)
+
+# 第二步进行需求单草稿订单的创建
+url2 = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url2")
+request_body2 = commonFuc().get_business_data(module, "payload200")
+# 发送请求
+result2 = requests.post(url2, json=request_body2, headers=headers)
+
+# 第三步,获取需求单列表
+url1 = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url1")
+request_body = commonFuc().get_business_data(module, "payload20")
+# 发送请求
+result = requests.post(url1, json=request_body, headers=headers)
+result = json.loads(result.content)
+# 获取demandId
+demand_id = result["data"]["list"][0]["demandId"]
+
+# 第四步,获取到demandId进行需求单删除操作
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url")
+request_body = commonFuc().get_business_data(module, "payload2", demand_id)
+# 发送请求
+result = requests.get(url, params=request_body, headers=headers)
+
+# 第五步,获取到demandId进行需求单重复删除操作
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url")
+request_body = commonFuc().get_business_data(module, "payload3", demand_id)
+
+"""
+ 场景:不可重复删除已保存订单状态下需求单,以及其他状态的需求单
+ 用例名称:需求草稿订单删除逆向功能验证
+ 输出:{"success":true,"code":"200","message":"OK","data":null}
+ 备注:目前接口层未进行校验重复删除
+"""
+
+# 发送请求
+result = requests.get(url, params=request_body, headers=headers)
+result = json.loads(result.content)
+# print(result)
+# 获取预期结果
+check_dict = commonFuc().get_business_data(module, "checkDict4")
+print(check_dict)
+# 断言实际结果中是否包含预期结果的内容
+commonFuc().check_result(check_dict, result)
diff --git "a/air_case/cmdc_demand_list/\351\234\200\346\261\202\345\215\225-\350\215\211\347\250\277\350\256\242\345\215\225\345\210\240\351\231\244.air/\351\234\200\346\261\202\345\215\225-\350\215\211\347\250\277\350\256\242\345\215\225\345\210\240\351\231\244.py" "b/air_case/cmdc_demand_list/\351\234\200\346\261\202\345\215\225-\350\215\211\347\250\277\350\256\242\345\215\225\345\210\240\351\231\244.air/\351\234\200\346\261\202\345\215\225-\350\215\211\347\250\277\350\256\242\345\215\225\345\210\240\351\231\244.py"
new file mode 100644
index 0000000000000000000000000000000000000000..70336b1b76f03e4b3c333f7b2ceaae8e5943ef36
--- /dev/null
+++ "b/air_case/cmdc_demand_list/\351\234\200\346\261\202\345\215\225-\350\215\211\347\250\277\350\256\242\345\215\225\345\210\240\351\231\244.air/\351\234\200\346\261\202\345\215\225-\350\215\211\347\250\277\350\256\242\345\215\225\345\210\240\351\231\244.py"
@@ -0,0 +1,58 @@
+# -*- encoding=utf8 -*-
+__author__ = "liguangyu"
+
+"""
+case_tag:cmdc_api,cmdc需求单-草稿订单删除功能验证,2250,2250-22,sit,bs
+主数据平台:运营后台管理系统需求单-草稿订单删除接口
+"""
+
+from common.common_func import commonFuc
+from air_case.cmdc_login.后台管理系统登录.后台管理系统登录 import CmdcDoLogin
+import requests
+import json
+
+
+module = "cmdc_demand_list"
+
+# 第一步:登录后台运营系统
+# 获取登录所需账号密码
+username = commonFuc().get_business_data(module, "username")
+password = commonFuc().get_business_data(module, "password")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcDoLogin(username, password).get_token()
+headers = commonFuc().get_business_data(module, "json_headers2", cmdc_access_token)
+
+# 第二步进行需求单草稿订单的创建
+url2 = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url2")
+request_body2 = commonFuc().get_business_data(module, "payload200")
+# 发送请求
+result2 = requests.post(url2, json=request_body2, headers=headers)
+# 第三步,获取需求单列表
+url1 = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url1")
+request_body = commonFuc().get_business_data(module, "payload20")
+# 发送请求
+result = requests.post(url1, json=request_body, headers=headers)
+result = json.loads(result.content)
+# 获取demandId
+demand_id = result["data"]["list"][0]["demandId"]
+# print(demand_id)
+
+# 第四步,获取到demandId进行需求单删除操作
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url")
+request_body = commonFuc().get_business_data(module, "payload2", demand_id)
+
+"""
+ 场景:需求草稿订单可正常删除,删除后不再显示在需求列表中
+ 用例名称:需求草稿订单删除功能验证
+ 输出:{"success":true,"code":"200","message":"OK","data":null}
+ 备注:草稿订单一经删除,数据库也是直接物理删除
+"""
+# 发送请求
+result = requests.get(url, params=request_body, headers=headers)
+result = json.loads(result.content)
+# print(result)
+# 获取预期结果
+check_dict = commonFuc().get_business_data(module, "checkDict3")
+print(check_dict)
+# 断言实际结果中是否包含预期结果的内容
+commonFuc().check_result(check_dict, result)
diff --git "a/air_case/cmdc_demand_list/\351\234\200\346\261\202\345\215\225_\350\216\267\345\217\226\347\224\250\346\210\267\344\277\241\346\201\257\345\244\261\350\264\245.air/\351\234\200\346\261\202\345\215\225_\350\216\267\345\217\226\347\224\250\346\210\267\344\277\241\346\201\257\345\244\261\350\264\245.py" "b/air_case/cmdc_demand_list/\351\234\200\346\261\202\345\215\225_\350\216\267\345\217\226\347\224\250\346\210\267\344\277\241\346\201\257\345\244\261\350\264\245.air/\351\234\200\346\261\202\345\215\225_\350\216\267\345\217\226\347\224\250\346\210\267\344\277\241\346\201\257\345\244\261\350\264\245.py"
new file mode 100644
index 0000000000000000000000000000000000000000..739c86eea6661616cdcb10522616c21be548c807
--- /dev/null
+++ "b/air_case/cmdc_demand_list/\351\234\200\346\261\202\345\215\225_\350\216\267\345\217\226\347\224\250\346\210\267\344\277\241\346\201\257\345\244\261\350\264\245.air/\351\234\200\346\261\202\345\215\225_\350\216\267\345\217\226\347\224\250\346\210\267\344\277\241\346\201\257\345\244\261\350\264\245.py"
@@ -0,0 +1,34 @@
+# -*- encoding=utf8 -*-
+__author__ = "liguangyu"
+
+"""
+case_tag:cmdc_api,cmdc需求单获取失败,2250,2250-21,sit,bs
+主数据平台:运营后台管理系统需求单列表接口
+"""
+
+from common.common_func import commonFuc
+import requests
+import json
+
+
+module = "cmdc_demand_list"
+
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url1")
+headers = commonFuc().get_business_data(module, "json_headers")
+request_body = commonFuc().get_business_data(module, "payload")
+
+"""
+ 场景:用户信息过期或获取失败,无法访问需求列表
+ 用例名称:需求单-获取用户信息失败
+ 输出:{"code":"401","message":"Unauthorized","success":false}
+"""
+
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+# print(result)
+# 获取预期结果
+check_dict = commonFuc().get_business_data(module, "checkDict1")
+print(check_dict)
+# 断言实际结果中是否包含预期结果的内容
+commonFuc().check_result(check_dict, result)
\ No newline at end of file
diff --git "a/air_case/cmdc_demand_list_pc/\350\216\267\345\217\226\351\234\200\346\261\202\345\215\225\345\210\227\350\241\250-\345\244\232\351\207\207\345\225\206\345\237\216.air/\350\216\267\345\217\226\351\234\200\346\261\202\345\215\225\345\210\227\350\241\250-\345\244\232\351\207\207\345\225\206\345\237\216.py" "b/air_case/cmdc_demand_list_pc/\350\216\267\345\217\226\351\234\200\346\261\202\345\215\225\345\210\227\350\241\250-\345\244\232\351\207\207\345\225\206\345\237\216.air/\350\216\267\345\217\226\351\234\200\346\261\202\345\215\225\345\210\227\350\241\250-\345\244\232\351\207\207\345\225\206\345\237\216.py"
new file mode 100644
index 0000000000000000000000000000000000000000..c28e827897dc3e73626e187f53e953f8b48fd3cb
--- /dev/null
+++ "b/air_case/cmdc_demand_list_pc/\350\216\267\345\217\226\351\234\200\346\261\202\345\215\225\345\210\227\350\241\250-\345\244\232\351\207\207\345\225\206\345\237\216.air/\350\216\267\345\217\226\351\234\200\346\261\202\345\215\225\345\210\227\350\241\250-\345\244\232\351\207\207\345\225\206\345\237\216.py"
@@ -0,0 +1,41 @@
+# -*- encoding=utf8 -*-
+__author__ = "liguangyu"
+
+"""
+case_tag:cmdc_api,cmdc获取需求单列表-多采商城,2252,2252-28,sit,bs
+主数据平台:多采商城获取需求单列表接口
+"""
+
+from common.common_func import commonFuc
+from air_case.cmdc_login.多采商城登录.多采商城登录 import CmdcMaiiLogin
+import requests
+import json
+
+
+module = "cmdc_demand_list_pc"
+
+
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url1")
+# 获取登录所需账号密码
+username = commonFuc().get_business_data(module, "username")
+password = commonFuc().get_business_data(module, "password")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcMaiiLogin(username, password).get_token()
+headers = commonFuc().get_business_data(module, "json_headers1", cmdc_access_token)
+request_body = commonFuc().get_business_data(module, "payload1")
+
+"""
+ 场景:获取到登录用户对应的需求单列表
+ 用例名称:获取需求单列表
+ 输出:{"success":true,"code":"200","message":"OK"}
+"""
+
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+# print(result)
+# 获取预期结果
+check_dict = commonFuc().get_business_data(module, "checkDict1")
+print(check_dict)
+# 断言实际结果中是否包含预期结果的内容
+commonFuc().check_result(check_dict, result)
diff --git "a/air_case/cmdc_demand_list_pc/\351\234\200\346\261\202\345\215\225-\345\256\242\346\210\267\347\241\256\350\256\244-\344\270\215\346\216\245\345\217\227.air/\351\234\200\346\261\202\345\215\225-\345\256\242\346\210\267\347\241\256\350\256\244-\344\270\215\346\216\245\345\217\227.py" "b/air_case/cmdc_demand_list_pc/\351\234\200\346\261\202\345\215\225-\345\256\242\346\210\267\347\241\256\350\256\244-\344\270\215\346\216\245\345\217\227.air/\351\234\200\346\261\202\345\215\225-\345\256\242\346\210\267\347\241\256\350\256\244-\344\270\215\346\216\245\345\217\227.py"
new file mode 100644
index 0000000000000000000000000000000000000000..ded415139f9cda490005d261f676c60aa89b4afc
--- /dev/null
+++ "b/air_case/cmdc_demand_list_pc/\351\234\200\346\261\202\345\215\225-\345\256\242\346\210\267\347\241\256\350\256\244-\344\270\215\346\216\245\345\217\227.air/\351\234\200\346\261\202\345\215\225-\345\256\242\346\210\267\347\241\256\350\256\244-\344\270\215\346\216\245\345\217\227.py"
@@ -0,0 +1,49 @@
+# -*- encoding=utf8 -*-
+__author__ = "liguangyu"
+
+"""
+case_tag:cmdc_api,cmdc需求单-客户确认-不接受,2252,2252-29,sit,bs
+主数据平台:多采商城需求单客户确认接口
+"""
+
+from common.common_func import commonFuc
+from air_case.cmdc_login.多采商城登录.多采商城登录 import CmdcMaiiLogin
+import requests
+import json
+
+
+module = "cmdc_demand_list_pc"
+
+# 获取登录所需账号密码
+username = commonFuc().get_business_data(module, "username")
+password = commonFuc().get_business_data(module, "password")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcMaiiLogin(username, password).get_token()
+headers = commonFuc().get_business_data(module, "json_headers", cmdc_access_token)
+# 获取需求单列表查询待客户确认需求单
+url1 = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url1")
+request_body = commonFuc().get_business_data(module, "payload50")
+# 发送请求
+result = requests.post(url1, json=request_body, headers=headers)
+result = json.loads(result.content)
+demand_parent_id = result["data"]["list"][0]["demandParentId"]
+demand_id = result["data"]["list"][0]["demandId"]
+
+# 获取需求单进行客户确认操作
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url5")
+request_body = commonFuc().get_business_data(module, "payload5", demand_parent_id, demand_id)
+
+"""
+ 场景:需求单列表进行客户确认操作
+ 用例名称:需求单客户确认操作
+ 输出:{"success":true,"code":"200","message":"ok","data":null,"freshToken":null}
+"""
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+# print(result)
+# 获取预期结果
+check_dict = commonFuc().get_business_data(module, "checkDict5")
+print(check_dict)
+# 断言实际结果中是否包含预期结果的内容
+commonFuc().check_result(check_dict, result)
diff --git "a/air_case/cmdc_demand_list_pc/\351\234\200\346\261\202\345\215\225-\345\256\242\346\210\267\347\241\256\350\256\244.air/\351\234\200\346\261\202\345\215\225-\345\256\242\346\210\267\347\241\256\350\256\244.py" "b/air_case/cmdc_demand_list_pc/\351\234\200\346\261\202\345\215\225-\345\256\242\346\210\267\347\241\256\350\256\244.air/\351\234\200\346\261\202\345\215\225-\345\256\242\346\210\267\347\241\256\350\256\244.py"
new file mode 100644
index 0000000000000000000000000000000000000000..be3f918f92b242126e4e143bb15ec40bc45f0268
--- /dev/null
+++ "b/air_case/cmdc_demand_list_pc/\351\234\200\346\261\202\345\215\225-\345\256\242\346\210\267\347\241\256\350\256\244.air/\351\234\200\346\261\202\345\215\225-\345\256\242\346\210\267\347\241\256\350\256\244.py"
@@ -0,0 +1,49 @@
+# -*- encoding=utf8 -*-
+__author__ = "liguangyu"
+
+"""
+case_tag:cmdc_api,cmdc需求单-客户确认,2252,2252-30,sit,bs
+主数据平台:多采商城需求单取消接口
+"""
+
+from common.common_func import commonFuc
+from air_case.cmdc_login.多采商城登录.多采商城登录 import CmdcMaiiLogin
+import requests
+import json
+
+
+module = "cmdc_demand_list_pc"
+
+# 获取登录所需账号密码
+username = commonFuc().get_business_data(module, "username")
+password = commonFuc().get_business_data(module, "password")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcMaiiLogin(username, password).get_token()
+headers = commonFuc().get_business_data(module, "json_headers", cmdc_access_token)
+# 获取需求单列表查询待客户确认需求单
+url1 = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url1")
+request_body = commonFuc().get_business_data(module, "payload40")
+# 发送请求
+result = requests.post(url1, json=request_body, headers=headers)
+result = json.loads(result.content)
+demand_parent_id = result["data"]["list"][0]["demandParentId"]
+demand_id = result["data"]["list"][0]["demandId"]
+
+# 获取需求单进行客户确认操作
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url4")
+request_body = commonFuc().get_business_data(module, "payload4", demand_parent_id, demand_id)
+
+"""
+ 场景:需求单列表进行客户确认操作
+ 用例名称:需求单客户确认操作
+ 输出:{"success":true,"code":"200","message":"ok","data":null,"freshToken":null}
+"""
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+# print(result)
+# 获取预期结果
+check_dict = commonFuc().get_business_data(module, "checkDict4")
+print(check_dict)
+# 断言实际结果中是否包含预期结果的内容
+commonFuc().check_result(check_dict, result)
diff --git "a/air_case/cmdc_demand_list_pc/\351\234\200\346\261\202\345\215\225\345\210\240\351\231\244\346\223\215\344\275\234.air/\351\234\200\346\261\202\345\215\225\345\210\240\351\231\244\346\223\215\344\275\234.py" "b/air_case/cmdc_demand_list_pc/\351\234\200\346\261\202\345\215\225\345\210\240\351\231\244\346\223\215\344\275\234.air/\351\234\200\346\261\202\345\215\225\345\210\240\351\231\244\346\223\215\344\275\234.py"
new file mode 100644
index 0000000000000000000000000000000000000000..c4b470f0460a719540406e49a6340454290bdc2f
--- /dev/null
+++ "b/air_case/cmdc_demand_list_pc/\351\234\200\346\261\202\345\215\225\345\210\240\351\231\244\346\223\215\344\275\234.air/\351\234\200\346\261\202\345\215\225\345\210\240\351\231\244\346\223\215\344\275\234.py"
@@ -0,0 +1,55 @@
+# -*- encoding=utf8 -*-
+__author__ = "liguangyu"
+
+"""
+case_tag:cmdc_api,cmdc需求单删除操作验证,2252,2252-31,sit,bs
+主数据平台:多采商城需求单删除接口
+"""
+
+from common.common_func import commonFuc
+from air_case.cmdc_login.多采商城登录.多采商城登录 import CmdcMaiiLogin
+import requests
+import json
+
+
+module = "cmdc_demand_list_pc"
+
+# 获取登录所需账号密码
+username = commonFuc().get_business_data(module, "username")
+password = commonFuc().get_business_data(module, "password")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcMaiiLogin(username, password).get_token()
+headers = commonFuc().get_business_data(module, "json_headers", cmdc_access_token)
+
+# 创建需求草稿订单
+url_demand_create = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url_demand_create")
+request_body = commonFuc().get_business_data(module, "payload_demand_create")
+# 发送请求
+result = requests.post(url_demand_create, json=request_body, headers=headers)
+
+# 获取需求单列表
+url1 = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url1")
+request_body = commonFuc().get_business_data(module, "payload30")
+# 发送请求
+result = requests.post(url1, json=request_body, headers=headers)
+result = json.loads(result.content)
+demand_parent_id = result["data"]["list"][0]["demandParentId"]
+
+# 对获取到的需求单进行删除操作
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url3")
+request_body = commonFuc().get_business_data(module, "payload3", demand_parent_id)
+
+"""
+ 场景:需求草稿订单可正常删除,删除后不再显示在需求列表中
+ 用例名称:需求草稿订单删除功能验证
+ 输出:{"success":true,"code":"200","message":"OK","data":null,"freshToken":null}
+"""
+# 发送请求
+result = requests.get(url, params=request_body, headers=headers)
+result = json.loads(result.content)
+# print(result)
+# 获取预期结果
+check_dict = commonFuc().get_business_data(module, "checkDict3")
+print(check_dict)
+# 断言实际结果中是否包含预期结果的内容
+commonFuc().check_result(check_dict, result)
diff --git "a/air_case/cmdc_demand_list_pc/\351\234\200\346\261\202\345\215\225\345\217\226\346\266\210\346\223\215\344\275\234.air/\351\234\200\346\261\202\345\215\225\345\217\226\346\266\210\346\223\215\344\275\234.py" "b/air_case/cmdc_demand_list_pc/\351\234\200\346\261\202\345\215\225\345\217\226\346\266\210\346\223\215\344\275\234.air/\351\234\200\346\261\202\345\215\225\345\217\226\346\266\210\346\223\215\344\275\234.py"
new file mode 100644
index 0000000000000000000000000000000000000000..76295e8cf6c07e9508f56097512c896680781a53
--- /dev/null
+++ "b/air_case/cmdc_demand_list_pc/\351\234\200\346\261\202\345\215\225\345\217\226\346\266\210\346\223\215\344\275\234.air/\351\234\200\346\261\202\345\215\225\345\217\226\346\266\210\346\223\215\344\275\234.py"
@@ -0,0 +1,48 @@
+# -*- encoding=utf8 -*-
+__author__ = "liguangyu"
+
+"""
+case_tag:cmdc_api,cmdc需求单列表商品取消操作,2252,2252-32,sit,bs
+主数据平台:多采商城需求单列表取消商品接口
+"""
+
+from common.common_func import commonFuc
+from air_case.cmdc_login.多采商城登录.多采商城登录 import CmdcMaiiLogin
+import requests
+import json
+
+
+module = "cmdc_demand_list_pc"
+
+# 获取登录所需账号密码
+username = commonFuc().get_business_data(module, "username")
+password = commonFuc().get_business_data(module, "password")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcMaiiLogin(username, password).get_token()
+headers = commonFuc().get_business_data(module, "json_headers", cmdc_access_token)
+# 获取需求单列表
+url1 = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url1")
+request_body = commonFuc().get_business_data(module, "payload20")
+# 发送请求
+result = requests.post(url1, json=request_body, headers=headers)
+result = json.loads(result.content)
+demand_code = result["data"]["list"][0]["demandCode"]
+
+# 获取需求单进行取消操作
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url2")
+request_body = commonFuc().get_business_data(module, "payload2", demand_code)
+
+"""
+ 场景:在用户对应的多采商城中的需求单列表进行需求单取消操作验证
+ 用例名称:需求单取消操作
+ 输出:{"success":true,"code":"200","message":"OK","data":1,"freshToken":null}
+"""
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+# print(result)
+# 获取预期结果
+check_dict = commonFuc().get_business_data(module, "checkDict2")
+print(check_dict)
+# 断言实际结果中是否包含预期结果的内容
+commonFuc().check_result(check_dict, result)
diff --git "a/air_case/cmdc_frequent_purchase/\345\270\270\350\264\255\346\270\205\345\215\225\345\210\227\350\241\250\345\225\206\345\223\201\347\247\273\351\231\244.air/\345\270\270\350\264\255\346\270\205\345\215\225\345\210\227\350\241\250\345\225\206\345\223\201\347\247\273\351\231\244.py" "b/air_case/cmdc_frequent_purchase/\345\270\270\350\264\255\346\270\205\345\215\225\345\210\227\350\241\250\345\225\206\345\223\201\347\247\273\351\231\244.air/\345\270\270\350\264\255\346\270\205\345\215\225\345\210\227\350\241\250\345\225\206\345\223\201\347\247\273\351\231\244.py"
new file mode 100644
index 0000000000000000000000000000000000000000..15fa8b138d70f758488d24bd392891f83ab72a6e
--- /dev/null
+++ "b/air_case/cmdc_frequent_purchase/\345\270\270\350\264\255\346\270\205\345\215\225\345\210\227\350\241\250\345\225\206\345\223\201\347\247\273\351\231\244.air/\345\270\270\350\264\255\346\270\205\345\215\225\345\210\227\350\241\250\345\225\206\345\223\201\347\247\273\351\231\244.py"
@@ -0,0 +1,81 @@
+# -*- encoding=utf8 -*-
+__author__ = "liguangyu"
+
+"""
+case_tag:cmdc_api,cmdc常购清单列表商品移除,2252,2252-33,sit,bs
+主数据平台:多采商城常购清单列表商品删除接口
+"""
+
+from common.common_func import commonFuc
+from air_case.cmdc_login.多采商城登录.多采商城登录 import CmdcMaiiLogin
+from air_case.cmdc_login.后台管理系统登录.后台管理系统登录 import CmdcDoLogin
+import requests
+import json
+
+module = "cmdc_frequent_purchase"
+
+# 步骤一登录后台管理系统查询商品列表获取已上架商品信息
+# 获取登录后台管理系统所需账号密码
+username1 = commonFuc().get_business_data(module, "username1")
+password1 = commonFuc().get_business_data(module, "password1")
+# 获取登录后Cmdc_access_token
+cmdc_access_token1 = CmdcDoLogin(username1, password1).get_token()
+headers1 = commonFuc().get_business_data(module, "json_headers", cmdc_access_token1)
+
+# 步骤二查询已已上架商品信息
+url1 = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url10")
+request_body1 = commonFuc().get_business_data(module, "payload10")
+
+# 发送请求
+result1 = requests.post(url1, json=request_body1, headers=headers1)
+result1 = json.loads(result1.content)
+
+# 获取已上架商品product_id和price
+product_id = result1["data"]["list"][0]["productId"]
+price = result1["data"]["list"][0]["referencePrice"]
+
+# 步骤三登录多采商城
+# 获取登录所需账号密码
+username = commonFuc().get_business_data(module, "username")
+password = commonFuc().get_business_data(module, "password")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcMaiiLogin(username, password).get_token()
+headers = commonFuc().get_business_data(module, "json_headers1", cmdc_access_token)
+
+# 步骤四添加已上架商品至常购清单列表
+url2 = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url1")
+request_body2 = commonFuc().get_business_data(module, "payload1", product_id, price)
+
+# 发送请求
+result2 = requests.post(url2, json=request_body2, headers=headers)
+result2 = json.loads(result2.content)
+
+# 第三步查询购物车中新增的商品信息
+url3 = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url2")
+request_body3 = commonFuc().get_business_data(module, "payload2")
+result3 = requests.post(url3, json=request_body3, headers=headers)
+result3 = json.loads(result3.content)
+# 获取购物车列表中商品对应的productId
+result_product_id = result3["data"]["list"][0]["list"][0]["productId"]
+# 判断查询出的商品是否为新增商品
+if result_product_id == product_id:
+ frequent_purchase_id = result3["data"]["list"][0]["list"][0]["frequentPurchaseId"]
+ request_body = commonFuc().get_business_data(module, "payload3", frequent_purchase_id)
+ # 第三步删除新增加至购物车列表的商品
+ url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url3")
+
+ """
+ 场景:从用户购物车列表移除商品
+ 用例名称:从用户购物车列表移除商品
+ 输出:{"success":true,"code":"200","message":"OK","data":"ok"}
+ """
+
+ # 发送请求
+ result = requests.post(url, json=request_body, headers=headers)
+ result = json.loads(result.content)
+ # print(result)
+ # 获取预期结果
+ check_dict = commonFuc().get_business_data(module, "checkDict3")
+ print(check_dict)
+ # 断言实际结果中是否包含预期结果的内容
+ commonFuc().check_result(check_dict, result)
diff --git "a/air_case/cmdc_frequent_purchase/\346\226\260\345\242\236JDE\345\267\262\345\201\234\347\224\250\347\232\204\345\225\206\345\223\201\350\207\263\345\270\270\350\264\255\346\270\205\345\215\225\345\210\227\350\241\250.air/\346\226\260\345\242\236JDE\345\267\262\345\201\234\347\224\250\347\232\204\345\225\206\345\223\201\350\207\263\345\270\270\350\264\255\346\270\205\345\215\225\345\210\227\350\241\250.py" "b/air_case/cmdc_frequent_purchase/\346\226\260\345\242\236JDE\345\267\262\345\201\234\347\224\250\347\232\204\345\225\206\345\223\201\350\207\263\345\270\270\350\264\255\346\270\205\345\215\225\345\210\227\350\241\250.air/\346\226\260\345\242\236JDE\345\267\262\345\201\234\347\224\250\347\232\204\345\225\206\345\223\201\350\207\263\345\270\270\350\264\255\346\270\205\345\215\225\345\210\227\350\241\250.py"
new file mode 100644
index 0000000000000000000000000000000000000000..69dbf25ab423ca5dd45250f98961d850ae88cc84
--- /dev/null
+++ "b/air_case/cmdc_frequent_purchase/\346\226\260\345\242\236JDE\345\267\262\345\201\234\347\224\250\347\232\204\345\225\206\345\223\201\350\207\263\345\270\270\350\264\255\346\270\205\345\215\225\345\210\227\350\241\250.air/\346\226\260\345\242\236JDE\345\267\262\345\201\234\347\224\250\347\232\204\345\225\206\345\223\201\350\207\263\345\270\270\350\264\255\346\270\205\345\215\225\345\210\227\350\241\250.py"
@@ -0,0 +1,61 @@
+# -*- encoding=utf8 -*-
+__author__ = "liguangyu"
+
+"""
+case_tag:cmdc_api,cmdc新增JDE已停用的商品至常购清单列表,2252,2252-34,sit,bs
+主数据平台:多采商城常购清单列表新增商品接口
+"""
+
+from common.common_func import commonFuc
+from air_case.cmdc_login.多采商城登录.多采商城登录 import CmdcMaiiLogin
+from air_case.cmdc_login.后台管理系统登录.后台管理系统登录 import CmdcDoLogin
+import requests
+import json
+
+
+module = "cmdc_frequent_purchase"
+
+# 步骤一登录后台管理系统查询商品列表获取JDE已停用的商品信息
+# 获取登录后台管理系统所需账号密码
+username = commonFuc().get_business_data(module, "username1")
+password = commonFuc().get_business_data(module, "password1")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcDoLogin(username, password).get_token()
+headers = commonFuc().get_business_data(module, "json_headers", cmdc_access_token)
+# 查询商品列表获取JDE已停用的商品信息
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url80")
+request_body = commonFuc().get_business_data(module, "payload80")
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+
+# 获取商品对应的productId和referencePrice
+product_id = result["data"]["list"][0]["productId"]
+price = result["data"]["list"][0]["referencePrice"]
+
+# 第二步登录多采商城添加JDE已停用的商品至常购清单列表
+# 获取登录所需账号密码
+username = commonFuc().get_business_data(module, "username")
+password = commonFuc().get_business_data(module, "password")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcMaiiLogin(username, password).get_token()
+headers = commonFuc().get_business_data(module, "json_headers1", cmdc_access_token)
+# 添加JDE已停用的商品至常购清单列表
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url1")
+request_body = commonFuc().get_business_data(module, "payload8", product_id, price)
+
+"""
+ 场景:新增JDE已停用的商品至常购清单列表
+ 用例名称:新增JDE已停用的商品至常购清单列表
+ 输出:{'success': False, 'code': 'addFrequentPurchaseFail', 'message': '商品为失效状态,不可加入常购清单', 'data': None, 'freshToken': None}
+"""
+
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+# print(result)
+# 获取预期结果
+check_dict = commonFuc().get_business_data(module, "checkDict8")
+print(check_dict)
+# 断言实际结果中是否包含预期结果的内容
+commonFuc().check_result(check_dict, result)
diff --git "a/air_case/cmdc_frequent_purchase/\346\226\260\345\242\236\344\270\215\345\255\230\345\234\250\347\232\204\345\225\206\345\223\201\350\207\263\345\270\270\350\264\255\346\270\205\345\215\225\345\210\227\350\241\250.air/\346\226\260\345\242\236\344\270\215\345\255\230\345\234\250\347\232\204\345\225\206\345\223\201\350\207\263\345\270\270\350\264\255\346\270\205\345\215\225\345\210\227\350\241\250.py" "b/air_case/cmdc_frequent_purchase/\346\226\260\345\242\236\344\270\215\345\255\230\345\234\250\347\232\204\345\225\206\345\223\201\350\207\263\345\270\270\350\264\255\346\270\205\345\215\225\345\210\227\350\241\250.air/\346\226\260\345\242\236\344\270\215\345\255\230\345\234\250\347\232\204\345\225\206\345\223\201\350\207\263\345\270\270\350\264\255\346\270\205\345\215\225\345\210\227\350\241\250.py"
new file mode 100644
index 0000000000000000000000000000000000000000..ccacebbae52a6ebff1251252c87891fdacb1f45e
--- /dev/null
+++ "b/air_case/cmdc_frequent_purchase/\346\226\260\345\242\236\344\270\215\345\255\230\345\234\250\347\232\204\345\225\206\345\223\201\350\207\263\345\270\270\350\264\255\346\270\205\345\215\225\345\210\227\350\241\250.air/\346\226\260\345\242\236\344\270\215\345\255\230\345\234\250\347\232\204\345\225\206\345\223\201\350\207\263\345\270\270\350\264\255\346\270\205\345\215\225\345\210\227\350\241\250.py"
@@ -0,0 +1,45 @@
+# -*- encoding=utf8 -*-
+__author__ = "liguangyu"
+
+"""
+case_tag:cmdc_api,cmdc新增不存在的商品至常购清单列表,2252,2252-35,sit,bs
+主数据平台:多采商城常购清单列表新增商品接口
+"""
+
+from common.common_func import commonFuc
+from air_case.cmdc_login.多采商城登录.多采商城登录 import CmdcMaiiLogin
+import requests
+import json
+import random
+
+
+module = "cmdc_frequent_purchase"
+
+
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url1")
+print(url)
+# 获取登录所需账号密码
+username = commonFuc().get_business_data(module, "username")
+password = commonFuc().get_business_data(module, "password")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcMaiiLogin(username, password).get_token()
+headers = commonFuc().get_business_data(module, "json_headers4", cmdc_access_token)
+# 随机生成productId
+product_id = random.randint(1000000000000, 100000000000000)
+request_body = commonFuc().get_business_data(module, "payload400", product_id)
+
+"""
+ 场景:新增不存在的商品至常购清单列表
+ 用例名称:新增不存在的商品至常购清单列表
+ 输出:{"success":false,"code":"1078","message":"该商品不存在,加入购物车失败","data":null,"freshToken":null}
+"""
+
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+print(result)
+# 获取预期结果
+check_dict = commonFuc().get_business_data(module, "checkDict400")
+print(check_dict)
+# 断言实际结果中是否包含预期结果的内容
+commonFuc().check_result(check_dict, result)
diff --git "a/air_case/cmdc_frequent_purchase/\346\226\260\345\242\236\345\225\206\345\223\201\350\207\263\345\270\270\350\264\255\346\270\205\345\215\225\345\210\227\350\241\250.air/\346\226\260\345\242\236\345\225\206\345\223\201\350\207\263\345\270\270\350\264\255\346\270\205\345\215\225\345\210\227\350\241\250.py" "b/air_case/cmdc_frequent_purchase/\346\226\260\345\242\236\345\225\206\345\223\201\350\207\263\345\270\270\350\264\255\346\270\205\345\215\225\345\210\227\350\241\250.air/\346\226\260\345\242\236\345\225\206\345\223\201\350\207\263\345\270\270\350\264\255\346\270\205\345\215\225\345\210\227\350\241\250.py"
new file mode 100644
index 0000000000000000000000000000000000000000..a0dd331d18973f48f78e383a8987003ad8a8c959
--- /dev/null
+++ "b/air_case/cmdc_frequent_purchase/\346\226\260\345\242\236\345\225\206\345\223\201\350\207\263\345\270\270\350\264\255\346\270\205\345\215\225\345\210\227\350\241\250.air/\346\226\260\345\242\236\345\225\206\345\223\201\350\207\263\345\270\270\350\264\255\346\270\205\345\215\225\345\210\227\350\241\250.py"
@@ -0,0 +1,48 @@
+# -*- encoding=utf8 -*-
+__author__ = "liguangyu"
+
+"""
+case_tag:cmdc_api,cmdc新增商品至常购清单列表,2252,2252-36,sit,bs
+主数据平台:多采商城常购清单列表新增商品接口
+"""
+
+from common.common_func import commonFuc
+from air_case.cmdc_login.多采商城登录.多采商城登录 import CmdcMaiiLogin
+import requests
+import json
+
+
+module = "cmdc_frequent_purchase"
+
+# 第一步登录多采商城获取token
+# 获取登录所需账号密码
+username = commonFuc().get_business_data(module, "username")
+password = commonFuc().get_business_data(module, "password")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcMaiiLogin(username, password).get_token()
+headers = commonFuc().get_business_data(module, "json_headers1", cmdc_access_token)
+
+# 第二步切换至子站点
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url2000")
+request_body = commonFuc().get_business_data(module, "payload2000")
+result = requests.post(url, json=request_body, headers=headers)
+
+# 添加商品至常购清单列表
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url1")
+request_body = commonFuc().get_business_data(module, "payload3001")
+# print(request_body)
+"""
+ 场景:新增商品至常购清单列表
+ 用例名称:新增商品至常购清单列表
+ 输出:{"success":true,"code":"200","message":"OK","data":"ok"}
+"""
+
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+
+# 获取预期结果
+check_dict = commonFuc().get_business_data(module, "checkDict1")
+print(check_dict)
+# 断言实际结果中是否包含预期结果的内容
+commonFuc().check_result(check_dict, result)
diff --git "a/air_case/cmdc_frequent_purchase/\346\226\260\345\242\236\345\267\262\345\244\261\346\225\210\345\225\206\345\223\201\350\207\263\345\270\270\350\264\255\346\270\205\345\215\225\345\210\227\350\241\250.air/\346\226\260\345\242\236\345\267\262\345\244\261\346\225\210\345\225\206\345\223\201\350\207\263\345\270\270\350\264\255\346\270\205\345\215\225\345\210\227\350\241\250.py" "b/air_case/cmdc_frequent_purchase/\346\226\260\345\242\236\345\267\262\345\244\261\346\225\210\345\225\206\345\223\201\350\207\263\345\270\270\350\264\255\346\270\205\345\215\225\345\210\227\350\241\250.air/\346\226\260\345\242\236\345\267\262\345\244\261\346\225\210\345\225\206\345\223\201\350\207\263\345\270\270\350\264\255\346\270\205\345\215\225\345\210\227\350\241\250.py"
new file mode 100644
index 0000000000000000000000000000000000000000..b36c971948446dfb87d935ab5e4a82d56677a1f6
--- /dev/null
+++ "b/air_case/cmdc_frequent_purchase/\346\226\260\345\242\236\345\267\262\345\244\261\346\225\210\345\225\206\345\223\201\350\207\263\345\270\270\350\264\255\346\270\205\345\215\225\345\210\227\350\241\250.air/\346\226\260\345\242\236\345\267\262\345\244\261\346\225\210\345\225\206\345\223\201\350\207\263\345\270\270\350\264\255\346\270\205\345\215\225\345\210\227\350\241\250.py"
@@ -0,0 +1,68 @@
+# -*- encoding=utf8 -*-
+__author__ = "liguangyu"
+
+"""
+case_tag:cmdc_api,cmdc新增已失效商品至常购清单列表,2252,2252-37,sit,bs
+主数据平台:多采商城常购清单列表新增商品接口
+"""
+
+from common.common_func import commonFuc
+from air_case.cmdc_login.多采商城登录.多采商城登录 import CmdcMaiiLogin
+from air_case.cmdc_login.后台管理系统登录.后台管理系统登录 import CmdcDoLogin
+import requests
+import json
+
+
+module = "cmdc_frequent_purchase"
+
+# 步骤一登录后台管理系统查询商品列表获取已失效商品信息
+# 获取登录后台管理系统所需账号密码
+username = commonFuc().get_business_data(module, "username1")
+password = commonFuc().get_business_data(module, "password1")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcDoLogin(username, password).get_token()
+headers = commonFuc().get_business_data(module, "json_headers", cmdc_access_token)
+# 查询商品列表获取已失效商品信息
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url40")
+request_body = commonFuc().get_business_data(module, "payload40")
+
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+# print(result)
+# 获取商品信息并进行参数化处理
+product_id = result["data"]["list"][0]["productId"]
+price = result["data"]["list"][0]["referencePrice"]
+
+# 第二步登录多采商城添加已失效商品至常购清单列表
+# 获取登录所需账号密码
+username = commonFuc().get_business_data(module, "username")
+password = commonFuc().get_business_data(module, "password")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcMaiiLogin(username, password).get_token()
+headers = commonFuc().get_business_data(module, "json_headers1", cmdc_access_token)
+
+# 第三步切换至子站点
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url2000")
+request_body = commonFuc().get_business_data(module, "payload2001")
+result = requests.post(url, json=request_body, headers=headers)
+
+# 第四步添加已失效商品至常购清单列表
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url1")
+request_body = commonFuc().get_business_data(module, "payload4", product_id, price)
+
+"""
+ 场景:新增已失效商品至常购清单列表
+ 用例名称:新增已失效商品至常购清单列表
+ 输出:{'success': False, 'code': 'addFrequentPurchaseFail', 'message': '商品为失效状态,不可加入常购清单', 'data': None, 'freshToken': None}
+"""
+
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+# print(result)
+# 获取预期结果
+check_dict = commonFuc().get_business_data(module, "checkDict4")
+print(check_dict)
+# 断言实际结果中是否包含预期结果的内容
+commonFuc().check_result(check_dict, result)
diff --git "a/air_case/cmdc_frequent_purchase/\346\226\260\345\242\236\346\216\247\351\224\200\345\225\206\345\223\201\350\207\263\345\270\270\350\264\255\346\270\205\345\215\225\345\210\227\350\241\250.air/\346\226\260\345\242\236\346\216\247\351\224\200\345\225\206\345\223\201\350\207\263\345\270\270\350\264\255\346\270\205\345\215\225\345\210\227\350\241\250.py" "b/air_case/cmdc_frequent_purchase/\346\226\260\345\242\236\346\216\247\351\224\200\345\225\206\345\223\201\350\207\263\345\270\270\350\264\255\346\270\205\345\215\225\345\210\227\350\241\250.air/\346\226\260\345\242\236\346\216\247\351\224\200\345\225\206\345\223\201\350\207\263\345\270\270\350\264\255\346\270\205\345\215\225\345\210\227\350\241\250.py"
new file mode 100644
index 0000000000000000000000000000000000000000..cbdea6f24f27b01f91632db9854ca3b08952a7a6
--- /dev/null
+++ "b/air_case/cmdc_frequent_purchase/\346\226\260\345\242\236\346\216\247\351\224\200\345\225\206\345\223\201\350\207\263\345\270\270\350\264\255\346\270\205\345\215\225\345\210\227\350\241\250.air/\346\226\260\345\242\236\346\216\247\351\224\200\345\225\206\345\223\201\350\207\263\345\270\270\350\264\255\346\270\205\345\215\225\345\210\227\350\241\250.py"
@@ -0,0 +1,67 @@
+# -*- encoding=utf8 -*-
+__author__ = "liguangyu"
+
+"""
+case_tag:cmdc_api,cmdc新增控销商品至常购清单列表,2252,2252-38,sit,bs
+主数据平台:多采商城常购清单列表新增商品接口
+"""
+
+from common.common_func import commonFuc
+from air_case.cmdc_login.多采商城登录.多采商城登录 import CmdcMaiiLogin
+from air_case.cmdc_login.后台管理系统登录.后台管理系统登录 import CmdcDoLogin
+import requests
+import json
+
+
+module = "cmdc_frequent_purchase"
+
+# 步骤一登录后台管理系统查询商品列表获取控销商品信息
+# 获取登录后台管理系统所需账号密码
+username = commonFuc().get_business_data(module, "username1")
+password = commonFuc().get_business_data(module, "password1")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcDoLogin(username, password).get_token()
+headers = commonFuc().get_business_data(module, "json_headers", cmdc_access_token)
+# 查询商品列表获取控销商品信息
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url50")
+request_body = commonFuc().get_business_data(module, "payload50")
+
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+# 获取商品信息并进行参数化处理
+product_id = result["data"]["list"][0]["productId"]
+price = result["data"]["list"][0]["referencePrice"]
+
+# 第二步登录多采商城添加控销商品至常购清单列表
+# 获取登录所需账号密码
+username = commonFuc().get_business_data(module, "username")
+password = commonFuc().get_business_data(module, "password")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcMaiiLogin(username, password).get_token()
+headers = commonFuc().get_business_data(module, "json_headers1", cmdc_access_token)
+
+# 第三步切换至子站点
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url2000")
+request_body = commonFuc().get_business_data(module, "payload2001")
+result = requests.post(url, json=request_body, headers=headers)
+
+# 第四步添加控销商品至常购清单列表
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url1")
+request_body = commonFuc().get_business_data(module, "payload5", product_id, price)
+
+"""
+ 场景:新增控销商品至常购清单列表
+ 用例名称:新增控销商品至常购清单列表
+ 输出:{'success': False, 'code': 'addFrequentPurchaseFail', 'message': '商品为控销状态,不可加入常购清单', 'data': None, 'freshToken': None}
+"""
+
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+# print(result)
+# 获取预期结果
+check_dict = commonFuc().get_business_data(module, "checkDict5")
+print(check_dict)
+# 断言实际结果中是否包含预期结果的内容
+commonFuc().check_result(check_dict, result)
diff --git "a/air_case/cmdc_frequent_purchase/\346\226\260\345\242\236\350\265\240\345\223\201_\346\216\247\351\224\200_\345\225\206\345\223\201\350\207\263\345\270\270\350\264\255\346\270\205\345\215\225\345\210\227\350\241\250.air/\346\226\260\345\242\236\350\265\240\345\223\201_\346\216\247\351\224\200_\345\225\206\345\223\201\350\207\263\345\270\270\350\264\255\346\270\205\345\215\225\345\210\227\350\241\250.py" "b/air_case/cmdc_frequent_purchase/\346\226\260\345\242\236\350\265\240\345\223\201_\346\216\247\351\224\200_\345\225\206\345\223\201\350\207\263\345\270\270\350\264\255\346\270\205\345\215\225\345\210\227\350\241\250.air/\346\226\260\345\242\236\350\265\240\345\223\201_\346\216\247\351\224\200_\345\225\206\345\223\201\350\207\263\345\270\270\350\264\255\346\270\205\345\215\225\345\210\227\350\241\250.py"
new file mode 100644
index 0000000000000000000000000000000000000000..67794a243ed992395807f85c84a7425ef66d8927
--- /dev/null
+++ "b/air_case/cmdc_frequent_purchase/\346\226\260\345\242\236\350\265\240\345\223\201_\346\216\247\351\224\200_\345\225\206\345\223\201\350\207\263\345\270\270\350\264\255\346\270\205\345\215\225\345\210\227\350\241\250.air/\346\226\260\345\242\236\350\265\240\345\223\201_\346\216\247\351\224\200_\345\225\206\345\223\201\350\207\263\345\270\270\350\264\255\346\270\205\345\215\225\345\210\227\350\241\250.py"
@@ -0,0 +1,61 @@
+# -*- encoding=utf8 -*-
+__author__ = "liguangyu"
+
+"""
+case_tag:cmdc_api,cmdc新增赠品_控销_商品至常购清单列表,2252,2252-39,sit,bs
+主数据平台:多采商城常购清单列表新增商品接口
+"""
+
+from common.common_func import commonFuc
+from air_case.cmdc_login.多采商城登录.多采商城登录 import CmdcMaiiLogin
+from air_case.cmdc_login.后台管理系统登录.后台管理系统登录 import CmdcDoLogin
+import requests
+import json
+
+
+module = "cmdc_frequent_purchase"
+
+# 步骤一登录后台管理系统查询商品列表获取赠品_控销_商品信息
+# 获取登录后台管理系统所需账号密码
+username = commonFuc().get_business_data(module, "username1")
+password = commonFuc().get_business_data(module, "password1")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcDoLogin(username, password).get_token()
+headers = commonFuc().get_business_data(module, "json_headers", cmdc_access_token)
+# 查询商品列表获取赠品_控销_商品信息
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url60")
+request_body = commonFuc().get_business_data(module, "payload60")
+
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+# 获取商品信息并进行参数化处理
+product_id = result["data"]["list"][0]["productId"]
+price = result["data"]["list"][0]["referencePrice"]
+
+# 第二步登录多采商城添加赠品_控销_商品至常购清单列表
+# 获取登录所需账号密码
+username = commonFuc().get_business_data(module, "username")
+password = commonFuc().get_business_data(module, "password")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcMaiiLogin(username, password).get_token()
+headers = commonFuc().get_business_data(module, "json_headers1", cmdc_access_token)
+# 添加赠品_控销_商品至常购清单列表
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url1")
+request_body = commonFuc().get_business_data(module, "payload6", product_id, price)
+
+"""
+ 场景:新增赠品_控销_商品至常购清单列表
+ 用例名称:新增赠品_控销_商品至常购清单列表
+ 输出:{'success': False, 'code': 'addFrequentPurchaseFail', 'message': '商品为控销状态,不可加入常购清单', 'data': None, 'freshToken': None}
+"""
+
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+# print(result)
+# 获取预期结果
+check_dict = commonFuc().get_business_data(module, "checkDict6")
+print(check_dict)
+# 断言实际结果中是否包含预期结果的内容
+commonFuc().check_result(check_dict, result)
diff --git "a/air_case/cmdc_frequent_purchase/\346\226\260\345\242\236\350\265\240\345\223\201\350\207\263\345\270\270\350\264\255\346\270\205\345\215\225\345\210\227\350\241\250.air/\346\226\260\345\242\236\350\265\240\345\223\201\350\207\263\345\270\270\350\264\255\346\270\205\345\215\225\345\210\227\350\241\250.py" "b/air_case/cmdc_frequent_purchase/\346\226\260\345\242\236\350\265\240\345\223\201\350\207\263\345\270\270\350\264\255\346\270\205\345\215\225\345\210\227\350\241\250.air/\346\226\260\345\242\236\350\265\240\345\223\201\350\207\263\345\270\270\350\264\255\346\270\205\345\215\225\345\210\227\350\241\250.py"
new file mode 100644
index 0000000000000000000000000000000000000000..f9b63677dfdaa1509cca181642d46364dec8d8ca
--- /dev/null
+++ "b/air_case/cmdc_frequent_purchase/\346\226\260\345\242\236\350\265\240\345\223\201\350\207\263\345\270\270\350\264\255\346\270\205\345\215\225\345\210\227\350\241\250.air/\346\226\260\345\242\236\350\265\240\345\223\201\350\207\263\345\270\270\350\264\255\346\270\205\345\215\225\345\210\227\350\241\250.py"
@@ -0,0 +1,67 @@
+# -*- encoding=utf8 -*-
+__author__ = "liguangyu"
+
+"""
+case_tag:cmdc_api,cmdc新增赠品至常购清单列表,2252,2252-40,sit,bs
+主数据平台:多采商城常购清单列表新增商品接口
+"""
+
+from common.common_func import commonFuc
+from air_case.cmdc_login.多采商城登录.多采商城登录 import CmdcMaiiLogin
+from air_case.cmdc_login.后台管理系统登录.后台管理系统登录 import CmdcDoLogin
+import requests
+import json
+
+
+module = "cmdc_frequent_purchase"
+
+# 步骤一登录后台管理系统查询商品列表获取赠品信息
+# 获取登录后台管理系统所需账号密码
+username = commonFuc().get_business_data(module, "username1")
+password = commonFuc().get_business_data(module, "password1")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcDoLogin(username, password).get_token()
+headers = commonFuc().get_business_data(module, "json_headers", cmdc_access_token)
+# 查询商品列表获取赠品信息
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url70")
+request_body = commonFuc().get_business_data(module, "payload70")
+
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+# 获取商品信息并进行参数化处理
+product_id = result["data"]["list"][0]["productId"]
+price = result["data"]["list"][0]["referencePrice"]
+
+# 第二步登录多采商城添加赠品至常购清单列表
+# 获取登录所需账号密码
+username = commonFuc().get_business_data(module, "username")
+password = commonFuc().get_business_data(module, "password")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcMaiiLogin(username, password).get_token()
+headers = commonFuc().get_business_data(module, "json_headers1", cmdc_access_token)
+
+# 第三步切换至子站点
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url2000")
+request_body = commonFuc().get_business_data(module, "payload2001")
+result = requests.post(url, json=request_body, headers=headers)
+
+# 第四步添加赠品至常购清单列表
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url1")
+request_body = commonFuc().get_business_data(module, "payload7", product_id, price)
+
+"""
+ 场景:新增赠品至常购清单列表
+ 用例名称:新增赠品至常购清单列表
+ 输出:{"success":true,"code":"200","message":"OK","data":"ok"}
+"""
+
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+# print(result)
+# 获取预期结果
+check_dict = commonFuc().get_business_data(module, "checkDict7")
+print(check_dict)
+# 断言实际结果中是否包含预期结果的内容
+commonFuc().check_result(check_dict, result)
diff --git "a/air_case/cmdc_frequent_purchase/\346\267\273\345\212\240\350\267\250\347\253\231\347\202\271\345\225\206\345\223\201\350\207\263\345\270\270\350\264\255\346\270\205\345\215\225\345\210\227\350\241\250.air/\346\267\273\345\212\240\350\267\250\347\253\231\347\202\271\345\225\206\345\223\201\350\207\263\345\270\270\350\264\255\346\270\205\345\215\225\345\210\227\350\241\250.py" "b/air_case/cmdc_frequent_purchase/\346\267\273\345\212\240\350\267\250\347\253\231\347\202\271\345\225\206\345\223\201\350\207\263\345\270\270\350\264\255\346\270\205\345\215\225\345\210\227\350\241\250.air/\346\267\273\345\212\240\350\267\250\347\253\231\347\202\271\345\225\206\345\223\201\350\207\263\345\270\270\350\264\255\346\270\205\345\215\225\345\210\227\350\241\250.py"
new file mode 100644
index 0000000000000000000000000000000000000000..7b0f11fe9a6f49430f848a6f635077de26e5f5df
--- /dev/null
+++ "b/air_case/cmdc_frequent_purchase/\346\267\273\345\212\240\350\267\250\347\253\231\347\202\271\345\225\206\345\223\201\350\207\263\345\270\270\350\264\255\346\270\205\345\215\225\345\210\227\350\241\250.air/\346\267\273\345\212\240\350\267\250\347\253\231\347\202\271\345\225\206\345\223\201\350\207\263\345\270\270\350\264\255\346\270\205\345\215\225\345\210\227\350\241\250.py"
@@ -0,0 +1,98 @@
+# -*- encoding=utf8 -*-
+__author__ = "liguangyu"
+
+"""
+case_tag:cmdc_api,cmdc新增跨站商品至常购清单列表,2252,2252-41,sit,bs
+主数据平台:多采商城常购清单列表新增商品接口
+备注:常购清单添加商品,需先切换至相应的子站点,否则无法直接添加跨站商品
+"""
+
+from common.common_func import commonFuc
+from air_case.cmdc_login.多采商城登录.多采商城登录 import CmdcMaiiLogin
+from air_case.cmdc_login.后台管理系统登录.后台管理系统登录 import CmdcDoLogin
+import requests
+import json
+
+
+module = "cmdc_frequent_purchase"
+
+# 步骤一登录后台管理系统查询商品列表获取已失效商品信息
+# 获取登录后台管理系统所需账号密码
+username = commonFuc().get_business_data(module, "username1")
+password = commonFuc().get_business_data(module, "password1")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcDoLogin(username, password).get_token()
+headers = commonFuc().get_business_data(module, "json_headers", cmdc_access_token)
+
+# 步骤二查询不同站点对应的商品信息
+# 查询站点国药集团河南省医疗器械有限公司商品信息
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url10")
+request_body = commonFuc().get_business_data(module, "payload4000")
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+# 获取商品信息并进行参数化处理
+product_id_103 = result["data"]["list"][0]["productId"]
+price_103 = result["data"]["list"][0]["referencePrice"]
+
+# 查询站点国药集团联合医疗器械有限公司商品信息
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url10")
+request_body = commonFuc().get_business_data(module, "payload4001")
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+# 获取商品信息并进行参数化处理
+product_id_102 = result["data"]["list"][0]["productId"]
+price_102 = result["data"]["list"][0]["referencePrice"]
+
+# 步骤三登录多采商城获取token
+# 获取登录所需账号密码
+username = commonFuc().get_business_data(module, "username")
+password = commonFuc().get_business_data(module, "password")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcMaiiLogin(username, password).get_token()
+headers = commonFuc().get_business_data(module, "json_headers1", cmdc_access_token)
+
+# 步骤四切换至子站点国药集团联合医疗器械有限公司并添加商品至常购清单列表
+# 切换至子站点
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url2000")
+request_body = commonFuc().get_business_data(module, "payload2001")
+result = requests.post(url, json=request_body, headers=headers)
+
+# 添加已商品至常购清单列表
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url1")
+request_body = commonFuc().get_business_data(module, "payload4", product_id_102, price_102)
+
+"""
+ 场景:跨站商品至常购清单列表
+ 用例名称:跨站商品至常购清单列表
+ 输出:{"success":true,"code":"200","message":"OK","data":"ok"}
+"""
+
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+# # 获取预期结果
+check_dict = commonFuc().get_business_data(module, "checkDict9")
+# # 断言实际结果中是否包含预期结果的内容
+commonFuc().check_result(check_dict, result)
+
+# 步骤五切换至子站点国药集团河南省医疗器械有限公司并添加商品至常购清单列表
+# 切换至子站点
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url2000")
+request_body = commonFuc().get_business_data(module, "payload2002")
+result = requests.post(url, json=request_body, headers=headers)
+
+# 添加商品至常购清单列表
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url1")
+request_body = commonFuc().get_business_data(module, "payload4", product_id_103, price_103)
+
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+# print(result)
+# 获取预期结果
+check_dict = commonFuc().get_business_data(module, "checkDict9")
+print(check_dict)
+# 断言实际结果中是否包含预期结果的内容
+commonFuc().check_result(check_dict, result)
diff --git "a/air_case/cmdc_frequent_purchase/\350\216\267\345\217\226\347\224\250\346\210\267\345\270\270\350\264\255\346\270\205\345\215\225\345\210\227\350\241\250.air/\350\216\267\345\217\226\347\224\250\346\210\267\345\270\270\350\264\255\346\270\205\345\215\225\345\210\227\350\241\250.py" "b/air_case/cmdc_frequent_purchase/\350\216\267\345\217\226\347\224\250\346\210\267\345\270\270\350\264\255\346\270\205\345\215\225\345\210\227\350\241\250.air/\350\216\267\345\217\226\347\224\250\346\210\267\345\270\270\350\264\255\346\270\205\345\215\225\345\210\227\350\241\250.py"
new file mode 100644
index 0000000000000000000000000000000000000000..025c26d66f447c24a70447e5ecf0ec2dba5fc3a2
--- /dev/null
+++ "b/air_case/cmdc_frequent_purchase/\350\216\267\345\217\226\347\224\250\346\210\267\345\270\270\350\264\255\346\270\205\345\215\225\345\210\227\350\241\250.air/\350\216\267\345\217\226\347\224\250\346\210\267\345\270\270\350\264\255\346\270\205\345\215\225\345\210\227\350\241\250.py"
@@ -0,0 +1,40 @@
+# -*- encoding=utf8 -*-
+__author__ = "liguangyu"
+
+"""
+case_tag:cmdc_api,cmdc获取用户常购清单列表,2252,2252-42,sit,bs
+主数据平台:多采商城常购清单列表接口
+"""
+
+from common.common_func import commonFuc
+from air_case.cmdc_login.多采商城登录.多采商城登录 import CmdcMaiiLogin
+import requests
+import json
+
+module = "cmdc_frequent_purchase"
+
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url2")
+# print(url)
+# 获取登录所需账号密码
+username = commonFuc().get_business_data(module, "username")
+password = commonFuc().get_business_data(module, "password")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcMaiiLogin(username, password).get_token()
+headers = commonFuc().get_business_data(module, "json_headers1",cmdc_access_token)
+request_body = commonFuc().get_business_data(module, "payload2")
+
+"""
+ 场景:获取用户常购清单列表
+ 用例名称:获取用户常购清单列表
+ 输出:{"success":true,"code":"200","message":"OK","data":"ok"}
+"""
+
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+# print(result)
+# 获取预期结果
+check_dict = commonFuc().get_business_data(module, "checkDict2")
+print(check_dict)
+# 断言实际结果中是否包含预期结果的内容
+commonFuc().check_result(check_dict, result)
diff --git "a/air_case/cmdc_fresenius_group/\344\272\247\345\223\201\347\272\277\346\237\245\350\257\242.air/\344\272\247\345\223\201\347\272\277\346\237\245\350\257\242.py" "b/air_case/cmdc_fresenius_group/\344\272\247\345\223\201\347\272\277\346\237\245\350\257\242.air/\344\272\247\345\223\201\347\272\277\346\237\245\350\257\242.py"
new file mode 100644
index 0000000000000000000000000000000000000000..6b61c7e863da9b9ccce1ccde448e13cb7f57eff9
--- /dev/null
+++ "b/air_case/cmdc_fresenius_group/\344\272\247\345\223\201\347\272\277\346\237\245\350\257\242.air/\344\272\247\345\223\201\347\272\277\346\237\245\350\257\242.py"
@@ -0,0 +1,41 @@
+# -*- encoding=utf8 -*-
+__author__ = "liguangyu"
+
+"""
+case_tag:cmdc_api,cmdc产品线查询,2264,2264-1,sit,bs
+主数据平台:运营后台管理系统产品线查询接口
+"""
+
+from common.common_func import commonFuc
+from air_case.cmdc_login.后台管理系统登录.后台管理系统登录 import CmdcDoLogin
+import requests
+import json
+
+module = "cmdc_fresenius_group"
+
+# 第一步登录后台运营平台获取cmdc_access_token
+# 获取登录所需账号密码
+username = commonFuc().get_business_data(module, "username1")
+password = commonFuc().get_business_data(module, "password1")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcDoLogin(username, password).get_token()
+headers = commonFuc().get_business_data(module, "json_headers", cmdc_access_token)
+
+# 第二步进行产品线查询
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url3")
+request_body = commonFuc().get_business_data(module, "payload3")
+"""
+ 场景:产品线查询
+ 用例名称:产品线查询
+ 输出:{"success":true,"code":"200","message":"OK"}
+"""
+
+# 发送请求
+result = requests.get(url, params=request_body, headers=headers)
+result = json.loads(result.content)
+
+# 获取预期结果
+check_dict = commonFuc().get_business_data(module, "checkDict3")
+# 断言实际结果中是否包含预期结果的内容
+commonFuc().check_result(check_dict, result)
+
diff --git "a/air_case/cmdc_fresenius_group/\345\210\233\345\273\272\351\234\200\346\261\202\345\215\225_\346\231\256\351\200\232\345\245\227\345\214\205.air/\345\210\233\345\273\272\351\234\200\346\261\202\345\215\225_\346\231\256\351\200\232\345\245\227\345\214\205.py" "b/air_case/cmdc_fresenius_group/\345\210\233\345\273\272\351\234\200\346\261\202\345\215\225_\346\231\256\351\200\232\345\245\227\345\214\205.air/\345\210\233\345\273\272\351\234\200\346\261\202\345\215\225_\346\231\256\351\200\232\345\245\227\345\214\205.py"
new file mode 100644
index 0000000000000000000000000000000000000000..372202ea3319e12d3febc0ee35961f3ad41d026d
--- /dev/null
+++ "b/air_case/cmdc_fresenius_group/\345\210\233\345\273\272\351\234\200\346\261\202\345\215\225_\346\231\256\351\200\232\345\245\227\345\214\205.air/\345\210\233\345\273\272\351\234\200\346\261\202\345\215\225_\346\231\256\351\200\232\345\245\227\345\214\205.py"
@@ -0,0 +1,55 @@
+# -*- encoding=utf8 -*-
+__author__ = "liguangyu"
+
+"""
+case_tag:cmdc_api,cmdc创建需求单_普通套包,2264,2264-33,sit,bs
+主数据平台:多采商城创建需求单接口
+"""
+
+from common.common_func import commonFuc
+from air_case.cmdc_login.多采商城登录.多采商城登录 import CmdcMaiiLogin
+from common.db.db import mySql
+import requests
+import json
+
+module = "cmdc_fresenius_group"
+
+# 第一步登录后台运营平台获取cmdc_access_token
+# 获取登录所需账号密码
+username = commonFuc().get_business_data(module, "username")
+password = commonFuc().get_business_data(module, "password")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcMaiiLogin(username, password).get_token()
+headers = commonFuc().get_business_data(module, "json_headers1", cmdc_access_token)
+
+# 第二步加入购物车
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url31")
+request_body = commonFuc().get_business_data(module, "payload31")
+
+"""
+
+ 场景:套包清单获取
+ 用例名称:套包清单获取
+ 输出:{"demandCode": "%s"}
+
+"""
+
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+demand_parent_id = result["data"]["国药集团上海医疗器械有限公司"]["demandParentId"]
+result = {"demandCode": result["data"]["国药集团上海医疗器械有限公司"]["demandItems"][0]["demandCode"]}
+
+# 数据库操作
+mysql_handle = mySql()
+# 获取conf.ini文件中配置的数据库信息
+host, port, user, pwd = mysql_handle.getConf(db="cmdc_db")
+
+# 需求单查询
+sql = "SELECT t.demandCode FROM `cmdc-order`.tc_demand t WHERE demandParentId = '{}'".format(demand_parent_id)
+demand_code = mysql_handle.selectSql(host, port, user, pwd, "cmdc-order", sql)[0][0]
+
+# 获取预期结果
+check_dict = commonFuc().get_business_data(module, "checkDict31", demand_code)
+# 断言实际结果中是否包含预期结果的内容
+commonFuc().check_result(check_dict, result)
diff --git "a/air_case/cmdc_fresenius_group/\345\245\227\345\214\205\345\210\227\350\241\250\346\237\245\350\257\242\346\235\241\344\273\266\347\232\204\351\252\214\350\257\201.air/\345\245\227\345\214\205\345\210\227\350\241\250\346\237\245\350\257\242\346\235\241\344\273\266\347\232\204\351\252\214\350\257\201.py" "b/air_case/cmdc_fresenius_group/\345\245\227\345\214\205\345\210\227\350\241\250\346\237\245\350\257\242\346\235\241\344\273\266\347\232\204\351\252\214\350\257\201.air/\345\245\227\345\214\205\345\210\227\350\241\250\346\237\245\350\257\242\346\235\241\344\273\266\347\232\204\351\252\214\350\257\201.py"
new file mode 100644
index 0000000000000000000000000000000000000000..c0a46513e9cba21618c2ef9b052cffd5e2139ac1
--- /dev/null
+++ "b/air_case/cmdc_fresenius_group/\345\245\227\345\214\205\345\210\227\350\241\250\346\237\245\350\257\242\346\235\241\344\273\266\347\232\204\351\252\214\350\257\201.air/\345\245\227\345\214\205\345\210\227\350\241\250\346\237\245\350\257\242\346\235\241\344\273\266\347\232\204\351\252\214\350\257\201.py"
@@ -0,0 +1,59 @@
+# -*- encoding=utf8 -*-
+__author__ = "liguangyu"
+
+"""
+case_tag:cmdc_api,cmdc套包列表查询条件的验证,2264,2264-2,sit,bs
+主数据平台:运营后台管理系统套包列表查询接口
+"""
+
+from common.common_func import commonFuc
+from air_case.cmdc_login.后台管理系统登录.后台管理系统登录 import CmdcDoLogin
+import requests
+import json
+
+module = "cmdc_fresenius_group"
+
+# 第一步登录后台运营平台获取cmdc_access_token
+# 获取登录所需账号密码
+username = commonFuc().get_business_data(module, "username1")
+password = commonFuc().get_business_data(module, "password1")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcDoLogin(username, password).get_token()
+headers = commonFuc().get_business_data(module, "json_headers", cmdc_access_token)
+
+# 第二步进行套包列表获取
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url1")
+request_body = commonFuc().get_business_data(module, "payload1")
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+
+# 获取套包相关信息groupCode、groupName、productCode、productName、materialCode、manufacturerList、productLineName、description、productInfo
+group_code = result["data"]["list"][0]["groupCode"]
+group_name = result["data"]["list"][0]["groupName"]
+product_code = result["data"]["list"][0]["products"][0]["productCode"]
+product_name = result["data"]["list"][0]["products"][0]["productName"]
+material_code = result["data"]["list"][0]["products"][0]["materialCode"]
+manu_facturer = result["data"]["list"][0]["products"][0]["manufacturer"]
+product_line_name = result["data"]["list"][0]["productLineName"]
+description = result["data"]["list"][0]["products"][0]["description"]
+product_info = result["data"]["list"][0]["products"][0]["productName"]
+
+# 第三步进行套包列表查询条件验证
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url7")
+request_body = commonFuc().get_business_data(module, "payload7", group_code, group_name, product_code, product_name,
+ material_code, manu_facturer, product_line_name, description, product_info)
+"""
+ 场景:套包列表查询条件的验证
+ 用例名称:套包列表查询条件的验证
+ 输出:{"productCode":"%s"}
+"""
+
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+result = {"productCode": result["data"]["list"][0]["products"][0]["productCode"]}
+# 获取预期结果
+check_dict = commonFuc().get_business_data(module, "checkDict7", product_code)
+# 断言实际结果中是否包含预期结果的内容
+commonFuc().check_result(check_dict, result)
diff --git "a/air_case/cmdc_fresenius_group/\345\245\227\345\214\205\345\210\227\350\241\250\346\237\245\350\257\242\346\235\241\344\273\266\351\252\214\350\257\201_\345\225\206\345\223\201\350\257\246\346\203\205\351\241\265\350\267\263\350\275\254.air/\345\245\227\345\214\205\345\210\227\350\241\250\346\237\245\350\257\242\346\235\241\344\273\266\351\252\214\350\257\201_\345\225\206\345\223\201\350\257\246\346\203\205\351\241\265\350\267\263\350\275\254.py" "b/air_case/cmdc_fresenius_group/\345\245\227\345\214\205\345\210\227\350\241\250\346\237\245\350\257\242\346\235\241\344\273\266\351\252\214\350\257\201_\345\225\206\345\223\201\350\257\246\346\203\205\351\241\265\350\267\263\350\275\254.air/\345\245\227\345\214\205\345\210\227\350\241\250\346\237\245\350\257\242\346\235\241\344\273\266\351\252\214\350\257\201_\345\225\206\345\223\201\350\257\246\346\203\205\351\241\265\350\267\263\350\275\254.py"
new file mode 100644
index 0000000000000000000000000000000000000000..190aba2effeba8b488e6e2e8dc817205f36f00c2
--- /dev/null
+++ "b/air_case/cmdc_fresenius_group/\345\245\227\345\214\205\345\210\227\350\241\250\346\237\245\350\257\242\346\235\241\344\273\266\351\252\214\350\257\201_\345\225\206\345\223\201\350\257\246\346\203\205\351\241\265\350\267\263\350\275\254.air/\345\245\227\345\214\205\345\210\227\350\241\250\346\237\245\350\257\242\346\235\241\344\273\266\351\252\214\350\257\201_\345\225\206\345\223\201\350\257\246\346\203\205\351\241\265\350\267\263\350\275\254.py"
@@ -0,0 +1,62 @@
+# -*- encoding=utf8 -*-
+__author__ = "liguangyu"
+
+"""
+case_tag:cmdc_api,cmdc套包列表查询条件验证_商品详情页跳转,2264,2264-30,sit,bs
+主数据平台:运营后台管理系统套包列表查询和获取套包列表getFreseniusGroup
+"""
+
+from common.common_func import commonFuc
+from air_case.cmdc_login.后台管理系统登录.后台管理系统登录 import CmdcDoLogin
+import requests
+import json
+
+module = "cmdc_fresenius_group"
+
+# 第一步登录后台运营平台获取cmdc_access_token
+# 获取登录所需账号密码
+username = commonFuc().get_business_data(module, "username1")
+password = commonFuc().get_business_data(module, "password1")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcDoLogin(username, password).get_token()
+headers = commonFuc().get_business_data(module, "json_headers", cmdc_access_token)
+
+# 第二步进行套包列表获取
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url1")
+request_body = commonFuc().get_business_data(module, "payload22")
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+
+# 获取套包中商品信息和套包信息groupProductCode
+product_info = result["data"]["list"][0]["products"][0]["productName"]
+product_line_code = result["data"]["list"][0]["productLineCode"]
+company_code = result["data"]["list"][0]["products"][0]["companyCode"]
+group_product_code = result["data"]["list"][0]["products"][0]["productCode"]
+group_name = result["data"]["list"][0]["groupName"]
+group_material_code = result["data"]["list"][0]["products"][0]["materialCode"]
+group_code = result["data"]["list"][0]["groupCode"]
+
+# 第三步获取商品对应的套包信息
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url28")
+request_body = commonFuc().get_business_data(module, "payload28", product_info, product_line_code, company_code,
+ group_product_code, group_name, group_material_code)
+print(request_body)
+"""
+
+ 场景:套包列表查询条件验证_商品详情页跳转
+ 用例名称:套包列表查询条件验证_商品详情页跳转
+ 输出:{"groupCode":"%s"}
+
+"""
+
+# 发送请求
+result = requests.get(url, params=request_body, headers=headers)
+result = json.loads(result.content)
+print(result)
+# 获取商品对应的groupCode
+result = {"groupCode": result["data"][0]["groupCode"]}
+# 获取预期结果
+check_dict = commonFuc().get_business_data(module, "checkDict28", group_code)
+# 断言实际结果中是否包含预期结果的内容
+commonFuc().check_result(check_dict, result)
diff --git "a/air_case/cmdc_fresenius_group/\345\245\227\345\214\205\345\210\227\350\241\250\347\232\204\350\216\267\345\217\226.air/\345\245\227\345\214\205\345\210\227\350\241\250\347\232\204\350\216\267\345\217\226.py" "b/air_case/cmdc_fresenius_group/\345\245\227\345\214\205\345\210\227\350\241\250\347\232\204\350\216\267\345\217\226.air/\345\245\227\345\214\205\345\210\227\350\241\250\347\232\204\350\216\267\345\217\226.py"
new file mode 100644
index 0000000000000000000000000000000000000000..78edd8be1811bbba74125e71c095cdc1155f2266
--- /dev/null
+++ "b/air_case/cmdc_fresenius_group/\345\245\227\345\214\205\345\210\227\350\241\250\347\232\204\350\216\267\345\217\226.air/\345\245\227\345\214\205\345\210\227\350\241\250\347\232\204\350\216\267\345\217\226.py"
@@ -0,0 +1,39 @@
+# -*- encoding=utf8 -*-
+__author__ = "liguangyu"
+
+"""
+case_tag:cmdc_api,cmdc套包列表获取,2264,2264-3,sit,bs
+主数据平台:运营后台管理系统套包列表查询接口
+"""
+
+from common.common_func import commonFuc
+from air_case.cmdc_login.后台管理系统登录.后台管理系统登录 import CmdcDoLogin
+import requests
+import json
+
+module = "cmdc_fresenius_group"
+
+# 第一步登录后台运营平台获取cmdc_access_token
+# 获取登录所需账号密码
+username = commonFuc().get_business_data(module, "username1")
+password = commonFuc().get_business_data(module, "password1")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcDoLogin(username, password).get_token()
+headers = commonFuc().get_business_data(module, "json_headers", cmdc_access_token)
+
+# 第二步进行套包列表获取
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url1")
+request_body = commonFuc().get_business_data(module, "payload1")
+"""
+ 场景:套包列表获取
+ 用例名称:获取套包列表
+ 输出:{"success":true,"code":"200","message":"OK"}
+"""
+
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+# 获取预期结果
+check_dict = commonFuc().get_business_data(module, "checkDict1")
+# 断言实际结果中是否包含预期结果的内容
+commonFuc().check_result(check_dict, result)
diff --git "a/air_case/cmdc_fresenius_group/\345\245\227\345\214\205\345\210\240\351\231\244\351\252\214\350\257\201.air/\345\245\227\345\214\205\345\210\240\351\231\244\351\252\214\350\257\201.py" "b/air_case/cmdc_fresenius_group/\345\245\227\345\214\205\345\210\240\351\231\244\351\252\214\350\257\201.air/\345\245\227\345\214\205\345\210\240\351\231\244\351\252\214\350\257\201.py"
new file mode 100644
index 0000000000000000000000000000000000000000..0f15b776be8d7493a62b5d17caa53ff36256cd41
--- /dev/null
+++ "b/air_case/cmdc_fresenius_group/\345\245\227\345\214\205\345\210\240\351\231\244\351\252\214\350\257\201.air/\345\245\227\345\214\205\345\210\240\351\231\244\351\252\214\350\257\201.py"
@@ -0,0 +1,67 @@
+# -*- encoding=utf8 -*-
+__author__ = "liguangyu"
+
+"""
+case_tag:cmdc_api,cmdc套包删除验证,2264,2264-4,sit,bs
+主数据平台:运营后台管理系统套包列表查询和套包删除等接口
+"""
+
+from common.common_func import commonFuc
+from air_case.cmdc_login.后台管理系统登录.后台管理系统登录 import CmdcDoLogin
+from common.db.db import mySql
+import requests
+import json
+
+module = "cmdc_fresenius_group"
+
+# 第一步登录后台运营平台获取cmdc_access_token
+# 获取登录所需账号密码
+username = commonFuc().get_business_data(module, "username1")
+password = commonFuc().get_business_data(module, "password1")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcDoLogin(username, password).get_token()
+headers = commonFuc().get_business_data(module, "json_headers", cmdc_access_token)
+
+# 第二步进行套包列表获取
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url1")
+request_body = commonFuc().get_business_data(module, "payload1")
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+
+# 获取套包信息groupId
+group_id = result["data"]["list"][0]["groupId"]
+
+# 第三步进行套包删除操作验证
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url9")
+request_body = commonFuc().get_business_data(module, "payload9", group_id)
+
+"""
+ 场景:套包删除验证
+ 用例名称:套包删除验证
+ 输出:{"success":true,"code":"200","message":"OK"}
+"""
+
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+print(result)
+# 获取预期结果
+check_dict = commonFuc().get_business_data(module, "checkDict9")
+# 断言实际结果中是否包含预期结果的内容
+commonFuc().check_result(check_dict, result)
+
+# 数据库验证
+# 创建数据库对象
+mysql_handle = mySql()
+# 获取conf.ini文件中配置的数据库信息
+host, port, user, pwd = mysql_handle.getConf(db="cmdc_db")
+
+# 进行已删除套包查询验证
+sql = "SELECT t.status FROM `cmdc-order`.tc_fresenius_group t WHERE groupId = '%s'" % group_id
+status = mysql_handle.selectSql(host, port, user, pwd, "cmdc-order", sql)[0][0]
+result = {"status": status}
+# 获取预期结果
+check_dict = commonFuc().get_business_data(module, "checkDict90")
+# 断言实际结果中是否包含预期结果的内容
+commonFuc().check_result(check_dict, result)
diff --git "a/air_case/cmdc_fresenius_group/\345\245\227\345\214\205\345\212\240\345\205\245\350\264\255\347\211\251\350\275\246\351\252\214\350\257\201.air/\345\245\227\345\214\205\345\212\240\345\205\245\350\264\255\347\211\251\350\275\246\351\252\214\350\257\201.py" "b/air_case/cmdc_fresenius_group/\345\245\227\345\214\205\345\212\240\345\205\245\350\264\255\347\211\251\350\275\246\351\252\214\350\257\201.air/\345\245\227\345\214\205\345\212\240\345\205\245\350\264\255\347\211\251\350\275\246\351\252\214\350\257\201.py"
new file mode 100644
index 0000000000000000000000000000000000000000..0b26e98a8e070d98cd22790bc157105a893453bf
--- /dev/null
+++ "b/air_case/cmdc_fresenius_group/\345\245\227\345\214\205\345\212\240\345\205\245\350\264\255\347\211\251\350\275\246\351\252\214\350\257\201.air/\345\245\227\345\214\205\345\212\240\345\205\245\350\264\255\347\211\251\350\275\246\351\252\214\350\257\201.py"
@@ -0,0 +1,43 @@
+# -*- encoding=utf8 -*-
+__author__ = "liguangyu"
+
+"""
+case_tag:cmdc_api,cmdc套包加入购物车验证,2264,2264-31,sit,bs
+主数据平台:多采商城加入购物车接口
+"""
+
+from common.common_func import commonFuc
+from air_case.cmdc_login.多采商城登录.多采商城登录 import CmdcMaiiLogin
+import requests
+import json
+
+module = "cmdc_fresenius_group"
+
+# 第一步登录后台运营平台获取cmdc_access_token
+# 获取登录所需账号密码
+username = commonFuc().get_business_data(module, "username")
+password = commonFuc().get_business_data(module, "password")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcMaiiLogin(username, password).get_token()
+headers = commonFuc().get_business_data(module, "json_headers1", cmdc_access_token)
+
+# 第二步加入购物车
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url29")
+request_body = commonFuc().get_business_data(module, "payload29")
+
+"""
+
+ 场景:套包加入购物车验证
+ 用例名称:套包加入购物车验证
+ 输出:{"success":true,"code":"200","message":"OK"}
+
+"""
+
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+
+# 获取预期结果
+check_dict = commonFuc().get_business_data(module, "checkDict29")
+# 断言实际结果中是否包含预期结果的内容
+commonFuc().check_result(check_dict, result)
diff --git "a/air_case/cmdc_fresenius_group/\345\245\227\345\214\205\345\225\206\345\223\201\345\210\227\350\241\250\346\237\245\350\257\242\346\235\241\344\273\266\351\252\214\350\257\201.air/\345\245\227\345\214\205\345\225\206\345\223\201\345\210\227\350\241\250\346\237\245\350\257\242\346\235\241\344\273\266\351\252\214\350\257\201.py" "b/air_case/cmdc_fresenius_group/\345\245\227\345\214\205\345\225\206\345\223\201\345\210\227\350\241\250\346\237\245\350\257\242\346\235\241\344\273\266\351\252\214\350\257\201.air/\345\245\227\345\214\205\345\225\206\345\223\201\345\210\227\350\241\250\346\237\245\350\257\242\346\235\241\344\273\266\351\252\214\350\257\201.py"
new file mode 100644
index 0000000000000000000000000000000000000000..2fd8ed1d8ae6e0f23a2d5c8baa4a705634e047cf
--- /dev/null
+++ "b/air_case/cmdc_fresenius_group/\345\245\227\345\214\205\345\225\206\345\223\201\345\210\227\350\241\250\346\237\245\350\257\242\346\235\241\344\273\266\351\252\214\350\257\201.air/\345\245\227\345\214\205\345\225\206\345\223\201\345\210\227\350\241\250\346\237\245\350\257\242\346\235\241\344\273\266\351\252\214\350\257\201.py"
@@ -0,0 +1,56 @@
+# -*- encoding=utf8 -*-
+__author__ = "liguangyu"
+
+"""
+case_tag:cmdc_api,cmdc套包商品列表查询条件验证,2264,2264-5,sit,bs
+主数据平台:运营后台管理系统套包商品列表查询接口
+"""
+
+from common.common_func import commonFuc
+from air_case.cmdc_login.后台管理系统登录.后台管理系统登录 import CmdcDoLogin
+import requests
+import json
+
+module = "cmdc_fresenius_group"
+
+# 第一步登录后台运营平台获取cmdc_access_token
+# 获取登录所需账号密码
+username = commonFuc().get_business_data(module, "username1")
+password = commonFuc().get_business_data(module, "password1")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcDoLogin(username, password).get_token()
+headers = commonFuc().get_business_data(module, "json_headers", cmdc_access_token)
+
+# 第二步进行套包商品列表获取
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url2")
+request_body = commonFuc().get_business_data(module, "payload2")
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+
+# 获取套包商品相关信息productCode、productName、materialCode、specifications、productLineName
+product_code = result["data"]["list"][0]["productCode"]
+product_name = result["data"]["list"][0]["productName"]
+material_code = result["data"]["list"][0]["materialCode"]
+specifications = result["data"]["list"][0]["optionStr"]
+product_line_name = result["data"]["list"][0]["productLineName"]
+
+# 第三步进行套包商品列表查询条件验证
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url6")
+request_body = commonFuc().get_business_data(module, "payload6", product_code, product_name, material_code,
+ specifications, product_line_name)
+
+"""
+ 场景:套包商品列表获取
+ 用例名称:获取套包商品列表
+ 输出:{"productCode":"%s"}
+"""
+
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+result = {"productCode": result["data"]["list"][0]["productCode"]}
+# 获取预期结果
+check_dict = commonFuc().get_business_data(module, "checkDict6", product_code)
+# 断言实际结果中是否包含预期结果的内容
+commonFuc().check_result(check_dict, result)
diff --git "a/air_case/cmdc_fresenius_group/\345\245\227\345\214\205\345\225\206\345\223\201\345\210\227\350\241\250\350\216\267\345\217\226.air/\345\245\227\345\214\205\345\225\206\345\223\201\345\210\227\350\241\250\350\216\267\345\217\226.py" "b/air_case/cmdc_fresenius_group/\345\245\227\345\214\205\345\225\206\345\223\201\345\210\227\350\241\250\350\216\267\345\217\226.air/\345\245\227\345\214\205\345\225\206\345\223\201\345\210\227\350\241\250\350\216\267\345\217\226.py"
new file mode 100644
index 0000000000000000000000000000000000000000..30d34e767effd1862d104b3a58a4bcfe7aeac40d
--- /dev/null
+++ "b/air_case/cmdc_fresenius_group/\345\245\227\345\214\205\345\225\206\345\223\201\345\210\227\350\241\250\350\216\267\345\217\226.air/\345\245\227\345\214\205\345\225\206\345\223\201\345\210\227\350\241\250\350\216\267\345\217\226.py"
@@ -0,0 +1,40 @@
+# -*- encoding=utf8 -*-
+__author__ = "liguangyu"
+
+"""
+case_tag:cmdc_api,cmdc套包商品列表获取,2264,2264-6,sit,bs
+主数据平台:运营后台管理系统套包商品列表查询接口
+"""
+
+from common.common_func import commonFuc
+from air_case.cmdc_login.后台管理系统登录.后台管理系统登录 import CmdcDoLogin
+import requests
+import json
+
+module = "cmdc_fresenius_group"
+
+# 第一步登录后台运营平台获取cmdc_access_token
+# 获取登录所需账号密码
+username = commonFuc().get_business_data(module, "username1")
+password = commonFuc().get_business_data(module, "password1")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcDoLogin(username, password).get_token()
+headers = commonFuc().get_business_data(module, "json_headers", cmdc_access_token)
+
+# 第二步进行套包商品列表获取
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url2")
+request_body = commonFuc().get_business_data(module, "payload2")
+
+"""
+ 场景:套包商品列表获取
+ 用例名称:获取套包商品列表
+ 输出:{"success":true,"code":"200","message":"OK"}
+"""
+
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+# 获取预期结果
+check_dict = commonFuc().get_business_data(module, "checkDict2")
+# 断言实际结果中是否包含预期结果的内容
+commonFuc().check_result(check_dict, result)
diff --git "a/air_case/cmdc_fresenius_group/\345\245\227\345\214\205\346\211\271\351\207\217\345\210\240\351\231\244.air/\345\245\227\345\214\205\346\211\271\351\207\217\345\210\240\351\231\244.py" "b/air_case/cmdc_fresenius_group/\345\245\227\345\214\205\346\211\271\351\207\217\345\210\240\351\231\244.air/\345\245\227\345\214\205\346\211\271\351\207\217\345\210\240\351\231\244.py"
new file mode 100644
index 0000000000000000000000000000000000000000..b45c777fc5f93e78f1e57855861a9b6b8a7f7956
--- /dev/null
+++ "b/air_case/cmdc_fresenius_group/\345\245\227\345\214\205\346\211\271\351\207\217\345\210\240\351\231\244.air/\345\245\227\345\214\205\346\211\271\351\207\217\345\210\240\351\231\244.py"
@@ -0,0 +1,82 @@
+# -*- encoding=utf8 -*-
+__author__ = "liguangyu"
+
+"""
+case_tag:cmdc_api,cmdc套包批量删除,2264,2264-7,sit,bs
+主数据平台:运营后台管理系统Excel导入接口和套包批量删除接口
+"""
+
+from common.common_func import commonFuc
+from air_case.cmdc_login.后台管理系统登录.后台管理系统登录 import CmdcDoLogin
+from common.handle_excel import HandleExcel
+import requests
+import json
+import os
+import random
+import uuid
+
+module = "cmdc_fresenius_group"
+
+# 第一步登录后台运营平台获取cmdc_access_token
+# 获取登录所需账号密码
+username = commonFuc().get_business_data(module, "username1")
+password = commonFuc().get_business_data(module, "password1")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcDoLogin(username, password).get_token()
+headers = commonFuc().get_business_data(module, "json_headers2", cmdc_access_token)
+
+# 获取文件
+BASE_DIR = os.path.dirname(os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))))
+file_path = BASE_DIR + "/data/cmdc_files/套包按条件删除.xlsx"
+
+# 获取套包列表
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url1")
+request_body = commonFuc().get_business_data(module, "payload1")
+result = requests.post(url, headers=headers, json=request_body)
+result = json.loads(result.content)
+
+# 随机获取套包信息
+# 生成随机数用于进行套包选择
+group_id_a = random.randint(1, len(result["data"]["list"]) - 2)
+# 获取套包信息groupCode、groupName
+group_code = result["data"]["list"][group_id_a]["groupCode"]
+group_name = result["data"]["list"][group_id_a]["groupName"]
+
+# 将套包信息写入文件中
+excel = HandleExcel(file_path, "Sheet1")
+excel.write_data(row=2, column=1, value=group_code)
+excel.write_data(row=2, column=2, value=group_name)
+
+# 第二步进行套包导入操作
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url21")
+request_body = commonFuc().get_business_data(module, "payload21")
+
+# 获取文件
+file = open(file_path, "rb")
+files = {"file": file}
+# 发送请求
+result = requests.post(url, files=files, headers=headers, data=request_body)
+result = json.loads(result.content)
+file.close()
+
+# 第三步进行套包批量删除
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url22")
+request_body = {"groupIds": [result["data"]["freseniusGroups"][0]["products"][0]["groupId"]], "type": 1, "remarks": "",
+ "groupType": 3}
+print(request_body)
+
+"""
+ 场景:套包批量删除
+ 用例名称:套包批量删除
+ 输出:{"success":true,"code":"200","message":"OK"}
+"""
+
+# 发送请求
+result = requests.post(url, headers=headers, json=request_body)
+result = json.loads(result.content)
+print(result)
+
+# 获取预期结果
+check_dict = commonFuc().get_business_data(module, "checkDict21")
+# 断言实际结果中是否包含预期结果的内容
+commonFuc().check_result(check_dict, result)
diff --git "a/air_case/cmdc_fresenius_group/\345\245\227\345\214\205\346\211\271\351\207\217\345\210\240\351\231\244_\345\245\227\345\214\205\344\270\215\345\255\230\345\234\250.air/\345\245\227\345\214\205\346\211\271\351\207\217\345\210\240\351\231\244_\345\245\227\345\214\205\344\270\215\345\255\230\345\234\250.py" "b/air_case/cmdc_fresenius_group/\345\245\227\345\214\205\346\211\271\351\207\217\345\210\240\351\231\244_\345\245\227\345\214\205\344\270\215\345\255\230\345\234\250.air/\345\245\227\345\214\205\346\211\271\351\207\217\345\210\240\351\231\244_\345\245\227\345\214\205\344\270\215\345\255\230\345\234\250.py"
new file mode 100644
index 0000000000000000000000000000000000000000..486e23e3ad09986b9b3d77a08ae7432985a59675
--- /dev/null
+++ "b/air_case/cmdc_fresenius_group/\345\245\227\345\214\205\346\211\271\351\207\217\345\210\240\351\231\244_\345\245\227\345\214\205\344\270\215\345\255\230\345\234\250.air/\345\245\227\345\214\205\346\211\271\351\207\217\345\210\240\351\231\244_\345\245\227\345\214\205\344\270\215\345\255\230\345\234\250.py"
@@ -0,0 +1,64 @@
+# -*- encoding=utf8 -*-
+__author__ = "liguangyu"
+
+"""
+case_tag:cmdc_api,cmdc套包批量删除_套包不存在,2264,2264-8,sit,bs
+主数据平台:运营后台管理系统Excel导入接口接口
+"""
+
+from common.common_func import commonFuc
+from air_case.cmdc_login.后台管理系统登录.后台管理系统登录 import CmdcDoLogin
+from common.handle_excel import HandleExcel
+import requests
+import json
+import os
+import random
+
+module = "cmdc_fresenius_group"
+
+# 第一步登录后台运营平台获取cmdc_access_token
+# 获取登录所需账号密码
+username = commonFuc().get_business_data(module, "username1")
+password = commonFuc().get_business_data(module, "password1")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcDoLogin(username, password).get_token()
+headers = commonFuc().get_business_data(module, "json_headers2", cmdc_access_token)
+
+# 获取文件
+BASE_DIR = os.path.dirname(os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))))
+file_path = BASE_DIR + "/data/cmdc_files/套包按条件删除.xlsx"
+
+# 随机生成一个不存在的套包code
+group_code = random.randint(10000, 1000000000)
+
+# 将套包信息写入文件中
+excel = HandleExcel(file_path, "Sheet1")
+excel.write_data(row=2, column=1, value=group_code)
+
+
+# 第二步进行套包导入操作
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url21")
+request_body = commonFuc().get_business_data(module, "payload21")
+
+# 获取文件
+file = open(file_path, "rb")
+files = {"file": file}
+
+
+"""
+ 场景:套包批量删除,导入excel中套包code,不存在时,导入失败
+ 用例名称:套包批量删除_套包不存在
+ 输出:{"success":true,"code":"200","message":"OK","data":{"errMsg":{"msg":null,"errList":["平台套包编号【cpg00915465345435】 在数据库记录里不存在!"],"freseniusErrVos":null,"success":false},"freseniusGroups":[]},"freshToken":null}
+"""
+
+# 发送请求
+result = requests.post(url, files=files, headers=headers, data=request_body)
+result = json.loads(result.content)
+file.close()
+result = {"success": result["data"]["errMsg"]["success"]}
+
+# 获取预期结果
+check_dict = commonFuc().get_business_data(module, "checkDict23")
+# 断言实际结果中是否包含预期结果的内容
+commonFuc().check_result(check_dict, result)
+
diff --git "a/air_case/cmdc_fresenius_group/\345\245\227\345\214\205\346\211\271\351\207\217\346\226\260\345\242\236_\345\225\206\345\223\201\346\225\260\351\207\217\345\260\221\344\272\2162.air/\345\245\227\345\214\205\346\211\271\351\207\217\346\226\260\345\242\236_\345\225\206\345\223\201\346\225\260\351\207\217\345\260\221\344\272\2162.py" "b/air_case/cmdc_fresenius_group/\345\245\227\345\214\205\346\211\271\351\207\217\346\226\260\345\242\236_\345\225\206\345\223\201\346\225\260\351\207\217\345\260\221\344\272\2162.air/\345\245\227\345\214\205\346\211\271\351\207\217\346\226\260\345\242\236_\345\225\206\345\223\201\346\225\260\351\207\217\345\260\221\344\272\2162.py"
new file mode 100644
index 0000000000000000000000000000000000000000..dbb2ce1b1d4dc4bcaeea8ce97f68abd2f9214f3e
--- /dev/null
+++ "b/air_case/cmdc_fresenius_group/\345\245\227\345\214\205\346\211\271\351\207\217\346\226\260\345\242\236_\345\225\206\345\223\201\346\225\260\351\207\217\345\260\221\344\272\2162.air/\345\245\227\345\214\205\346\211\271\351\207\217\346\226\260\345\242\236_\345\225\206\345\223\201\346\225\260\351\207\217\345\260\221\344\272\2162.py"
@@ -0,0 +1,87 @@
+# -*- encoding=utf8 -*-
+__author__ = "liguangyu"
+
+"""
+case_tag:cmdc_api,cmdc套包批量新增_商品数量少于2,2264,2264-9,sit,bs
+主数据平台:运营后台管理系统套包批量新增接口
+"""
+
+from common.common_func import commonFuc
+from air_case.cmdc_login.后台管理系统登录.后台管理系统登录 import CmdcDoLogin
+from common.handle_excel import HandleExcel
+import requests
+import json
+import os
+import random
+import uuid
+
+module = "cmdc_fresenius_group"
+
+# 第一步登录后台运营平台获取cmdc_access_token
+# 获取登录所需账号密码
+username = commonFuc().get_business_data(module, "username1")
+password = commonFuc().get_business_data(module, "password1")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcDoLogin(username, password).get_token()
+headers = commonFuc().get_business_data(module, "json_headers2", cmdc_access_token)
+
+# 获取文件
+BASE_DIR = os.path.dirname(os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))))
+file_path = BASE_DIR + "/data/cmdc_files/套包商品批量维护模板.xlsx"
+
+# 获取商品列表
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url19")
+request_body = commonFuc().get_business_data(module, "payload19")
+result = requests.post(url, headers=headers, json=request_body)
+result = json.loads(result.content)
+
+# 随机获取不相同两个商品信息
+product_id_a = random.randint(1, len(result["data"]["list"]) - 2)
+product_code_a = result["data"]["list"][product_id_a]["productCode"]
+product_name_a = result["data"]["list"][product_id_a]["productName"]
+product_id_b = random.randint(product_id_a, len(result["data"]["list"])-1)
+product_code_b = result["data"]["list"][product_id_b]["productCode"]
+product_name_b = result["data"]["list"][product_id_b]["productName"]
+
+# 随机生成套包名称
+group_name = "测试套包%s" % uuid.uuid4()
+# 随机生成商品数量
+product_num = random.randint(1, 1000)
+
+# 将商品信息写入文件中
+excel = HandleExcel(file_path, "Sheet1")
+excel.write_data(row=2, column=1, value=group_name)
+excel.write_data(row=3, column=1, value="")
+excel.write_data(row=2, column=2, value=product_code_a)
+excel.write_data(row=2, column=3, value=product_name_a)
+excel.write_data(row=2, column=4, value=product_num)
+
+excel.write_data(row=3, column=2, value="")
+excel.write_data(row=3, column=3, value="")
+excel.write_data(row=3, column=4, value="")
+
+# 第二步批量新增套包
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url18")
+
+request_body = commonFuc().get_business_data(module, "payload18")
+
+# 获取文件
+file = open(file_path, "rb")
+files = {"file": file}
+
+"""
+ 场景:批量新增套包时,当商品数量少于2个时,新增失败
+ 用例名称:套包批量新增_商品数量少于2
+ 输出:{"success":false}
+"""
+
+# 发送请求
+result = requests.post(url, files=files, headers=headers, data=request_body)
+result = json.loads(result.content)
+result = {"success": result["data"]["success"]}
+file.close()
+
+# 获取预期结果
+check_dict = commonFuc().get_business_data(module, "checkDict20")
+# 断言实际结果中是否包含预期结果的内容
+commonFuc().check_result(check_dict, result)
diff --git "a/air_case/cmdc_fresenius_group/\345\245\227\345\214\205\346\211\271\351\207\217\346\226\260\345\242\236_\345\225\206\345\223\201\351\207\215\345\244\215\346\267\273\345\212\240.air/\345\245\227\345\214\205\346\211\271\351\207\217\346\226\260\345\242\236_\345\225\206\345\223\201\351\207\215\345\244\215\346\267\273\345\212\240.py" "b/air_case/cmdc_fresenius_group/\345\245\227\345\214\205\346\211\271\351\207\217\346\226\260\345\242\236_\345\225\206\345\223\201\351\207\215\345\244\215\346\267\273\345\212\240.air/\345\245\227\345\214\205\346\211\271\351\207\217\346\226\260\345\242\236_\345\225\206\345\223\201\351\207\215\345\244\215\346\267\273\345\212\240.py"
new file mode 100644
index 0000000000000000000000000000000000000000..4d2a02774171d538bd9b50985a8c6a49747aa2be
--- /dev/null
+++ "b/air_case/cmdc_fresenius_group/\345\245\227\345\214\205\346\211\271\351\207\217\346\226\260\345\242\236_\345\225\206\345\223\201\351\207\215\345\244\215\346\267\273\345\212\240.air/\345\245\227\345\214\205\346\211\271\351\207\217\346\226\260\345\242\236_\345\225\206\345\223\201\351\207\215\345\244\215\346\267\273\345\212\240.py"
@@ -0,0 +1,87 @@
+# -*- encoding=utf8 -*-
+__author__ = "liguangyu"
+
+"""
+case_tag:cmdc_api,cmdc套包批量新增_商品重复添加,2264,2264-10,sit,bs
+主数据平台:运营后台管理系统套包批量新增接口
+"""
+
+from common.common_func import commonFuc
+from air_case.cmdc_login.后台管理系统登录.后台管理系统登录 import CmdcDoLogin
+from common.handle_excel import HandleExcel
+import requests
+import json
+import os
+import random
+import uuid
+
+module = "cmdc_fresenius_group"
+
+# 第一步登录后台运营平台获取cmdc_access_token
+# 获取登录所需账号密码
+username = commonFuc().get_business_data(module, "username1")
+password = commonFuc().get_business_data(module, "password1")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcDoLogin(username, password).get_token()
+headers = commonFuc().get_business_data(module, "json_headers2", cmdc_access_token)
+
+# 获取文件
+BASE_DIR = os.path.dirname(os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))))
+file_path = BASE_DIR + "/data/cmdc_files/套包商品批量维护模板.xlsx"
+
+# 获取商品列表
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url19")
+request_body = commonFuc().get_business_data(module, "payload19")
+result = requests.post(url, headers=headers, json=request_body)
+result = json.loads(result.content)
+
+# 随机获取不相同两个商品信息
+product_id_a = random.randint(1, len(result["data"]["list"]) - 2)
+product_code_a = result["data"]["list"][product_id_a]["productCode"]
+product_name_a = result["data"]["list"][product_id_a]["productName"]
+product_id_b = random.randint(product_id_a, len(result["data"]["list"])-1)
+product_code_b = result["data"]["list"][product_id_b]["productCode"]
+product_name_b = result["data"]["list"][product_id_b]["productName"]
+
+# 随机生成套包名称
+group_name = "测试套包%s" % uuid.uuid4()
+# 随机生成商品数量
+product_num = random.randint(1, 1000)
+
+# 将商品信息写入文件中
+excel = HandleExcel(file_path, "Sheet1")
+excel.write_data(row=2, column=1, value=group_name)
+excel.write_data(row=3, column=1, value=group_name)
+excel.write_data(row=2, column=2, value=product_code_a)
+excel.write_data(row=2, column=3, value=product_name_a)
+excel.write_data(row=2, column=4, value=product_num)
+
+excel.write_data(row=3, column=2, value=product_code_a)
+excel.write_data(row=3, column=3, value=product_name_a)
+excel.write_data(row=3, column=4, value=product_num)
+
+# 第二步批量新增套包
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url18")
+
+request_body = commonFuc().get_business_data(module, "payload18")
+
+# 获取文件
+file = open(file_path, "rb")
+files = {"file": file}
+
+"""
+ 场景:批量新增套包时,当商品重复添加时,新增失败
+ 用例名称:套包批量新增_商品重复添加
+ 输出:{"success":false}
+"""
+
+# 发送请求
+result = requests.post(url, files=files, headers=headers, data=request_body)
+result = json.loads(result.content)
+result = {"success": result["data"]["success"]}
+file.close()
+
+# 获取预期结果
+check_dict = commonFuc().get_business_data(module, "checkDict20")
+# 断言实际结果中是否包含预期结果的内容
+commonFuc().check_result(check_dict, result)
diff --git "a/air_case/cmdc_fresenius_group/\345\245\227\345\214\205\346\211\271\351\207\217\346\226\260\345\242\236_\345\245\227\345\214\205\345\220\215\347\247\260\345\267\262\345\255\230\345\234\250.air/\345\245\227\345\214\205\346\211\271\351\207\217\346\226\260\345\242\236_\345\245\227\345\214\205\345\220\215\347\247\260\345\267\262\345\255\230\345\234\250.py" "b/air_case/cmdc_fresenius_group/\345\245\227\345\214\205\346\211\271\351\207\217\346\226\260\345\242\236_\345\245\227\345\214\205\345\220\215\347\247\260\345\267\262\345\255\230\345\234\250.air/\345\245\227\345\214\205\346\211\271\351\207\217\346\226\260\345\242\236_\345\245\227\345\214\205\345\220\215\347\247\260\345\267\262\345\255\230\345\234\250.py"
new file mode 100644
index 0000000000000000000000000000000000000000..cd68689f08123cb36de29d79d72a7e25a4835d36
--- /dev/null
+++ "b/air_case/cmdc_fresenius_group/\345\245\227\345\214\205\346\211\271\351\207\217\346\226\260\345\242\236_\345\245\227\345\214\205\345\220\215\347\247\260\345\267\262\345\255\230\345\234\250.air/\345\245\227\345\214\205\346\211\271\351\207\217\346\226\260\345\242\236_\345\245\227\345\214\205\345\220\215\347\247\260\345\267\262\345\255\230\345\234\250.py"
@@ -0,0 +1,85 @@
+# -*- encoding=utf8 -*-
+__author__ = "liguangyu"
+
+"""
+case_tag:cmdc_api,cmdc套包批量新增_套包名称已存在,2264,2264-11,sit,bs
+主数据平台:运营后台管理系统套包批量新增接口
+"""
+
+from common.common_func import commonFuc
+from air_case.cmdc_login.后台管理系统登录.后台管理系统登录 import CmdcDoLogin
+from common.handle_excel import HandleExcel
+import requests
+import json
+import os
+import random
+import uuid
+
+module = "cmdc_fresenius_group"
+
+# 第一步登录后台运营平台获取cmdc_access_token
+# 获取登录所需账号密码
+username = commonFuc().get_business_data(module, "username1")
+password = commonFuc().get_business_data(module, "password1")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcDoLogin(username, password).get_token()
+headers = commonFuc().get_business_data(module, "json_headers2", cmdc_access_token)
+
+# 获取文件
+BASE_DIR = os.path.dirname(os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))))
+file_path = BASE_DIR + "/data/cmdc_files/套包商品批量维护模板.xlsx"
+
+# 获取商品列表
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url19")
+request_body = commonFuc().get_business_data(module, "payload19")
+result = requests.post(url, headers=headers, json=request_body)
+result = json.loads(result.content)
+
+# 随机获取不相同两个商品信息
+product_id_a = random.randint(1, len(result["data"]["list"]) - 2)
+product_code_a = result["data"]["list"][product_id_a]["productCode"]
+product_name_a = result["data"]["list"][product_id_a]["productName"]
+product_id_b = random.randint(product_id_a, len(result["data"]["list"])-1)
+product_code_b = result["data"]["list"][product_id_b]["productCode"]
+product_name_b = result["data"]["list"][product_id_b]["productName"]
+
+# 随机生成商品数量
+product_num = random.randint(1, 1000)
+
+# 将商品信息写入文件中
+excel = HandleExcel(file_path, "Sheet1")
+excel.write_data(row=2, column=1, value="套包测试")
+excel.write_data(row=3, column=1, value="套包测试")
+excel.write_data(row=2, column=2, value=product_code_a)
+excel.write_data(row=2, column=3, value=product_name_a)
+excel.write_data(row=2, column=4, value=product_num)
+
+excel.write_data(row=3, column=2, value=product_code_b)
+excel.write_data(row=3, column=3, value=product_name_b)
+excel.write_data(row=3, column=4, value=product_num)
+
+# 第二步批量新增套包
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url18")
+
+request_body = commonFuc().get_business_data(module, "payload18")
+
+# 获取文件
+file = open(file_path, "rb")
+files = {"file": file}
+
+"""
+ 场景:批量新增套包时,当套包名称已存在时,新增失败
+ 用例名称:套包批量新增_套包名称已存在
+ 输出:{"success":false}
+"""
+
+# 发送请求
+result = requests.post(url, files=files, headers=headers, data=request_body)
+result = json.loads(result.content)
+result = {"success": result["data"]["success"]}
+file.close()
+
+# 获取预期结果
+check_dict = commonFuc().get_business_data(module, "checkDict20")
+# 断言实际结果中是否包含预期结果的内容
+commonFuc().check_result(check_dict, result)
diff --git "a/air_case/cmdc_fresenius_group/\345\245\227\345\214\205\346\211\271\351\207\217\346\226\260\345\242\236_\345\255\230\345\234\250\347\273\223\346\236\204\347\233\270\345\220\214\347\232\204\345\245\227\345\214\205.air/\345\245\227\345\214\205\346\211\271\351\207\217\346\226\260\345\242\236_\345\255\230\345\234\250\347\273\223\346\236\204\347\233\270\345\220\214\347\232\204\345\245\227\345\214\205.py" "b/air_case/cmdc_fresenius_group/\345\245\227\345\214\205\346\211\271\351\207\217\346\226\260\345\242\236_\345\255\230\345\234\250\347\273\223\346\236\204\347\233\270\345\220\214\347\232\204\345\245\227\345\214\205.air/\345\245\227\345\214\205\346\211\271\351\207\217\346\226\260\345\242\236_\345\255\230\345\234\250\347\273\223\346\236\204\347\233\270\345\220\214\347\232\204\345\245\227\345\214\205.py"
new file mode 100644
index 0000000000000000000000000000000000000000..436278a9c1f16483b063723f5a4010a80afe8f14
--- /dev/null
+++ "b/air_case/cmdc_fresenius_group/\345\245\227\345\214\205\346\211\271\351\207\217\346\226\260\345\242\236_\345\255\230\345\234\250\347\273\223\346\236\204\347\233\270\345\220\214\347\232\204\345\245\227\345\214\205.air/\345\245\227\345\214\205\346\211\271\351\207\217\346\226\260\345\242\236_\345\255\230\345\234\250\347\273\223\346\236\204\347\233\270\345\220\214\347\232\204\345\245\227\345\214\205.py"
@@ -0,0 +1,110 @@
+# -*- encoding=utf8 -*-
+__author__ = "liguangyu"
+
+"""
+case_tag:cmdc_api,cmdc套包批量新增_存在商品结构相同的套包,2264,2264-12,sit,bs
+主数据平台:运营后台管理系统套包批量新增接口
+"""
+
+from common.common_func import commonFuc
+from air_case.cmdc_login.后台管理系统登录.后台管理系统登录 import CmdcDoLogin
+from common.handle_excel import HandleExcel
+import requests
+import json
+import os
+import random
+import uuid
+
+module = "cmdc_fresenius_group"
+
+# 第一步登录后台运营平台获取cmdc_access_token
+# 获取登录所需账号密码
+username = commonFuc().get_business_data(module, "username1")
+password = commonFuc().get_business_data(module, "password1")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcDoLogin(username, password).get_token()
+headers = commonFuc().get_business_data(module, "json_headers2", cmdc_access_token)
+
+# 获取文件
+BASE_DIR = os.path.dirname(os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))))
+file_path = BASE_DIR + "/data/cmdc_files/套包商品批量维护模板.xlsx"
+
+# 获取商品列表
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url19")
+request_body = commonFuc().get_business_data(module, "payload19")
+result = requests.post(url, headers=headers, json=request_body)
+result = json.loads(result.content)
+
+# 随机获取不相同两个商品信息
+product_id_a = random.randint(1, len(result["data"]["list"]) - 1)
+product_code_a = result["data"]["list"][product_id_a]["productCode"]
+product_name_a = result["data"]["list"][product_id_a]["productName"]
+product_id_b = random.randint(product_id_a, len(result["data"]["list"]))
+product_code_b = result["data"]["list"][product_id_b]["productCode"]
+product_name_b = result["data"]["list"][product_id_b]["productName"]
+
+# 随机生成套包名称
+group_name = "测试套包%s" % uuid.uuid4()
+group_name_other = "测试套包%s" % uuid.uuid4()
+# 随机生成商品数量
+product_num = random.randint(1, 1000)
+
+# 将商品信息写入文件中
+excel = HandleExcel(file_path, "Sheet1")
+excel.write_data(row=2, column=1, value=group_name)
+excel.write_data(row=3, column=1, value=group_name)
+excel.write_data(row=2, column=2, value=product_code_a)
+excel.write_data(row=2, column=3, value=product_name_a)
+excel.write_data(row=2, column=4, value=product_num)
+
+excel.write_data(row=3, column=2, value=product_code_a)
+excel.write_data(row=3, column=3, value=product_name_a)
+excel.write_data(row=3, column=4, value=product_num)
+
+excel.write_data(row=4, column=1, value=group_name_other)
+excel.write_data(row=5, column=1, value=group_name_other)
+excel.write_data(row=4, column=2, value=product_code_a)
+excel.write_data(row=4, column=3, value=product_name_a)
+excel.write_data(row=4, column=4, value=product_num)
+
+excel.write_data(row=5, column=2, value=product_code_a)
+excel.write_data(row=5, column=3, value=product_name_a)
+excel.write_data(row=5, column=4, value=product_num)
+
+
+# 第二步批量新增套包
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url18")
+
+request_body = commonFuc().get_business_data(module, "payload18")
+
+# 获取文件
+file = open(file_path, "rb")
+files = {"file": file}
+
+"""
+ 场景:批量新增套包时,当添加套包商品结构相同时,新增失败
+ 用例名称:套包批量新增_存在商品结构相同的套包
+ 输出:{"success":false}
+"""
+
+# 发送请求
+result = requests.post(url, files=files, headers=headers, data=request_body)
+result = json.loads(result.content)
+result = {"success": result["data"]["success"]}
+
+
+# 获取预期结果
+check_dict = commonFuc().get_business_data(module, "checkDict20")
+# 断言实际结果中是否包含预期结果的内容
+commonFuc().check_result(check_dict, result)
+
+# 进行测试数据删除,以免影响其他用例执行
+excel.write_data(row=4, column=1, value="")
+excel.write_data(row=5, column=1, value="")
+excel.write_data(row=4, column=2, value="")
+excel.write_data(row=4, column=3, value="")
+excel.write_data(row=4, column=4, value="")
+excel.write_data(row=5, column=2, value="")
+excel.write_data(row=5, column=3, value="")
+excel.write_data(row=5, column=4, value="")
+file.close()
\ No newline at end of file
diff --git "a/air_case/cmdc_fresenius_group/\345\245\227\345\214\205\346\211\271\351\207\217\346\233\264\346\226\260_\345\225\206\345\223\201\346\234\252\346\273\241\350\266\263\345\220\214\344\270\200\344\272\247\345\223\201\347\272\277.air/\345\245\227\345\214\205\346\211\271\351\207\217\346\233\264\346\226\260_\345\225\206\345\223\201\346\234\252\346\273\241\350\266\263\345\220\214\344\270\200\344\272\247\345\223\201\347\272\277.py" "b/air_case/cmdc_fresenius_group/\345\245\227\345\214\205\346\211\271\351\207\217\346\233\264\346\226\260_\345\225\206\345\223\201\346\234\252\346\273\241\350\266\263\345\220\214\344\270\200\344\272\247\345\223\201\347\272\277.air/\345\245\227\345\214\205\346\211\271\351\207\217\346\233\264\346\226\260_\345\225\206\345\223\201\346\234\252\346\273\241\350\266\263\345\220\214\344\270\200\344\272\247\345\223\201\347\272\277.py"
new file mode 100644
index 0000000000000000000000000000000000000000..7db96cb2e6d3559d45a0fe7f96902b29abe2808d
--- /dev/null
+++ "b/air_case/cmdc_fresenius_group/\345\245\227\345\214\205\346\211\271\351\207\217\346\233\264\346\226\260_\345\225\206\345\223\201\346\234\252\346\273\241\350\266\263\345\220\214\344\270\200\344\272\247\345\223\201\347\272\277.air/\345\245\227\345\214\205\346\211\271\351\207\217\346\233\264\346\226\260_\345\225\206\345\223\201\346\234\252\346\273\241\350\266\263\345\220\214\344\270\200\344\272\247\345\223\201\347\272\277.py"
@@ -0,0 +1,87 @@
+# -*- encoding=utf8 -*-
+__author__ = "liguangyu"
+
+"""
+case_tag:cmdc_api,cmdc套包批量新增_商品未满足同一产品线,2264,2264-13,sit,bs
+主数据平台:运营后台管理系统套包批量新增接口
+"""
+
+from common.common_func import commonFuc
+from air_case.cmdc_login.后台管理系统登录.后台管理系统登录 import CmdcDoLogin
+from common.handle_excel import HandleExcel
+import requests
+import json
+import os
+import random
+import uuid
+
+module = "cmdc_fresenius_group"
+
+# 第一步登录后台运营平台获取cmdc_access_token
+# 获取登录所需账号密码
+username = commonFuc().get_business_data(module, "username1")
+password = commonFuc().get_business_data(module, "password1")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcDoLogin(username, password).get_token()
+headers = commonFuc().get_business_data(module, "json_headers2", cmdc_access_token)
+
+# 获取文件
+BASE_DIR = os.path.dirname(os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))))
+file_path = BASE_DIR + "/data/cmdc_files/套包商品批量维护模板.xlsx"
+
+# 获取商品列表
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url19")
+request_body = commonFuc().get_business_data(module, "payload19")
+result = requests.post(url, headers=headers, json=request_body)
+result = json.loads(result.content)
+
+# 随机获取不相同两个商品信息
+product_id_a = random.randint(1, len(result["data"]["list"]) - 2)
+product_code_a = result["data"]["list"][product_id_a]["productCode"]
+product_name_a = result["data"]["list"][product_id_a]["productName"]
+product_id_b = random.randint(product_id_a, len(result["data"]["list"])-1)
+product_code_b = result["data"]["list"][product_id_b]["productCode"]
+product_name_b = result["data"]["list"][product_id_b]["productName"]
+
+# 随机生成套包名称
+group_name = "测试套包%s" % uuid.uuid4()
+# 随机生成商品数量
+product_num = random.randint(1, 1000)
+
+# 将商品信息写入文件中
+excel = HandleExcel(file_path, "Sheet1")
+excel.write_data(row=2, column=1, value=group_name)
+excel.write_data(row=3, column=1, value=group_name)
+excel.write_data(row=2, column=2, value=product_code_a)
+excel.write_data(row=2, column=3, value=product_name_a)
+excel.write_data(row=2, column=4, value=product_num)
+
+excel.write_data(row=3, column=2, value="10057881")
+excel.write_data(row=3, column=3, value="造口护理用品附件")
+excel.write_data(row=3, column=4, value=product_num)
+
+# 第二步批量新增套包
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url18")
+
+request_body = commonFuc().get_business_data(module, "payload18")
+
+# 获取文件
+file = open(file_path, "rb")
+files = {"file": file}
+
+"""
+ 场景:批量新增套包时,当商品未满足同一产品线时,新增失败
+ 用例名称:套包批量新增_商品未满足同一产品线
+ 输出:{"success":false}
+"""
+
+# 发送请求
+result = requests.post(url, files=files, headers=headers, data=request_body)
+result = json.loads(result.content)
+result = {"success": result["data"]["success"]}
+file.close()
+
+# 获取预期结果
+check_dict = commonFuc().get_business_data(module, "checkDict20")
+# 断言实际结果中是否包含预期结果的内容
+commonFuc().check_result(check_dict, result)
diff --git "a/air_case/cmdc_fresenius_group/\345\245\227\345\214\205\346\233\264\346\226\260_\345\245\227\345\214\205\345\206\205\345\225\206\345\223\201\351\234\200\346\273\241\350\266\263\345\220\214\344\270\200\344\272\247\345\223\201\347\272\277.air/\345\245\227\345\214\205\346\233\264\346\226\260_\345\245\227\345\214\205\345\206\205\345\225\206\345\223\201\351\234\200\346\273\241\350\266\263\345\220\214\344\270\200\344\272\247\345\223\201\347\272\277.py" "b/air_case/cmdc_fresenius_group/\345\245\227\345\214\205\346\233\264\346\226\260_\345\245\227\345\214\205\345\206\205\345\225\206\345\223\201\351\234\200\346\273\241\350\266\263\345\220\214\344\270\200\344\272\247\345\223\201\347\272\277.air/\345\245\227\345\214\205\346\233\264\346\226\260_\345\245\227\345\214\205\345\206\205\345\225\206\345\223\201\351\234\200\346\273\241\350\266\263\345\220\214\344\270\200\344\272\247\345\223\201\347\272\277.py"
new file mode 100644
index 0000000000000000000000000000000000000000..df1477dddbece84acbd2f985b9121e5e58b6a82a
--- /dev/null
+++ "b/air_case/cmdc_fresenius_group/\345\245\227\345\214\205\346\233\264\346\226\260_\345\245\227\345\214\205\345\206\205\345\225\206\345\223\201\351\234\200\346\273\241\350\266\263\345\220\214\344\270\200\344\272\247\345\223\201\347\272\277.air/\345\245\227\345\214\205\346\233\264\346\226\260_\345\245\227\345\214\205\345\206\205\345\225\206\345\223\201\351\234\200\346\273\241\350\266\263\345\220\214\344\270\200\344\272\247\345\223\201\347\272\277.py"
@@ -0,0 +1,58 @@
+# -*- encoding=utf8 -*-
+__author__ = "liguangyu"
+
+"""
+case_tag:cmdc_api,cmdc套包更新_套包内商品需满足同一产品线,2264,2264-14,sit,bs
+主数据平台:运营后台管理系统套包列表查询和套包更新等接口
+"""
+
+from common.common_func import commonFuc
+from air_case.cmdc_login.后台管理系统登录.后台管理系统登录 import CmdcDoLogin
+import requests
+import json
+
+module = "cmdc_fresenius_group"
+
+# 第一步登录后台运营平台获取cmdc_access_token
+# 获取登录所需账号密码
+username = commonFuc().get_business_data(module, "username1")
+password = commonFuc().get_business_data(module, "password1")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcDoLogin(username, password).get_token()
+headers = commonFuc().get_business_data(module, "json_headers", cmdc_access_token)
+
+# 第二步进行套包列表获取
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url1")
+request_body = commonFuc().get_business_data(module, "payload1")
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+
+# 获取现有套包名称
+product_json = result["data"]["list"][0]["products"][0]
+
+# 获取套包信息
+group_json = result["data"]["list"][0]
+# 获取其他产品线商品信息
+other_product = commonFuc().get_business_data(module, "other_product")
+# 获取到套包中商品信息并进行更新操作
+group_json["products"].append(other_product)
+
+# 第三步进行套包更新验证
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url14")
+request_body = group_json
+
+"""
+ 场景: 验证更新套包时,新增其他产品线商品,是否可以更新成功
+ 用例名称:套包更新_套包内商品需满足同一产品线
+ 输出:{"success":false,"code":"FRESENIUS_GROUP_ERROR","message":"组成一个套包内商品需满足套包在同一产品线下","data":null,"freshToken":null}
+"""
+
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+
+# 获取预期结果
+check_dict = commonFuc().get_business_data(module, "checkDict16")
+# 断言实际结果中是否包含预期结果的内容
+commonFuc().check_result(check_dict, result)
diff --git "a/air_case/cmdc_fresenius_group/\345\245\227\345\214\205\346\233\264\346\226\260_\346\226\260\345\245\227\345\214\205\345\220\215\347\247\260\345\267\262\345\255\230\345\234\250.air/\345\245\227\345\214\205\346\233\264\346\226\260_\346\226\260\345\245\227\345\214\205\345\220\215\347\247\260\345\267\262\345\255\230\345\234\250.py" "b/air_case/cmdc_fresenius_group/\345\245\227\345\214\205\346\233\264\346\226\260_\346\226\260\345\245\227\345\214\205\345\220\215\347\247\260\345\267\262\345\255\230\345\234\250.air/\345\245\227\345\214\205\346\233\264\346\226\260_\346\226\260\345\245\227\345\214\205\345\220\215\347\247\260\345\267\262\345\255\230\345\234\250.py"
new file mode 100644
index 0000000000000000000000000000000000000000..2c4660077488df59ee0854f392442f104df57fd3
--- /dev/null
+++ "b/air_case/cmdc_fresenius_group/\345\245\227\345\214\205\346\233\264\346\226\260_\346\226\260\345\245\227\345\214\205\345\220\215\347\247\260\345\267\262\345\255\230\345\234\250.air/\345\245\227\345\214\205\346\233\264\346\226\260_\346\226\260\345\245\227\345\214\205\345\220\215\347\247\260\345\267\262\345\255\230\345\234\250.py"
@@ -0,0 +1,56 @@
+# -*- encoding=utf8 -*-
+__author__ = "liguangyu"
+
+"""
+case_tag:cmdc_api,cmdc套包更新_新套包名称已存在,2264,2264-15,sit,bs
+主数据平台:运营后台管理系统套包列表查询和套包更新等接口
+"""
+
+from common.common_func import commonFuc
+from air_case.cmdc_login.后台管理系统登录.后台管理系统登录 import CmdcDoLogin
+import requests
+import json
+
+module = "cmdc_fresenius_group"
+
+# 第一步登录后台运营平台获取cmdc_access_token
+# 获取登录所需账号密码
+username = commonFuc().get_business_data(module, "username1")
+password = commonFuc().get_business_data(module, "password1")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcDoLogin(username, password).get_token()
+headers = commonFuc().get_business_data(module, "json_headers", cmdc_access_token)
+
+# 第二步进行套包列表获取
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url1")
+request_body = commonFuc().get_business_data(module, "payload1")
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+
+# 获取现有套包名称
+group_name = result["data"]["list"][0]["groupName"]
+
+# 获取套包信息
+group_json = result["data"]["list"][1]
+# 进行套包名称更新操作
+group_json.update(groupName=group_name)
+
+# 第三步进行套包更新验证
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url14")
+request_body = group_json
+
+"""
+ 场景: 验证更新套包时,把套包名称修改为已存在的套包名,是否可以更新成功
+ 用例名称:套包更新-新套包名已存在
+ 输出:{"success":false,"code":"FRESENIUS_GROUP_ERROR","message":"该行套包名称系统已存在,无需重复添加!","data":null,"freshToken":null}
+"""
+
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+
+# 获取预期结果
+check_dict = commonFuc().get_business_data(module, "checkDict14")
+# 断言实际结果中是否包含预期结果的内容
+commonFuc().check_result(check_dict, result)
diff --git "a/air_case/cmdc_fresenius_group/\345\245\227\345\214\205\346\233\264\346\226\260_\351\252\214\350\257\201\347\273\204\346\210\220\345\245\227\345\214\205\351\234\2002\344\270\252\346\210\2262\344\270\252\344\273\245\344\270\212\345\225\206\345\223\201.air/\345\245\227\345\214\205\346\233\264\346\226\260_\351\252\214\350\257\201\347\273\204\346\210\220\345\245\227\345\214\205\351\234\2002\344\270\252\346\210\2262\344\270\252\344\273\245\344\270\212\345\225\206\345\223\201.py" "b/air_case/cmdc_fresenius_group/\345\245\227\345\214\205\346\233\264\346\226\260_\351\252\214\350\257\201\347\273\204\346\210\220\345\245\227\345\214\205\351\234\2002\344\270\252\346\210\2262\344\270\252\344\273\245\344\270\212\345\225\206\345\223\201.air/\345\245\227\345\214\205\346\233\264\346\226\260_\351\252\214\350\257\201\347\273\204\346\210\220\345\245\227\345\214\205\351\234\2002\344\270\252\346\210\2262\344\270\252\344\273\245\344\270\212\345\225\206\345\223\201.py"
new file mode 100644
index 0000000000000000000000000000000000000000..16e3ef1766b3a90419459fb292a4cdb53ff2f7e8
--- /dev/null
+++ "b/air_case/cmdc_fresenius_group/\345\245\227\345\214\205\346\233\264\346\226\260_\351\252\214\350\257\201\347\273\204\346\210\220\345\245\227\345\214\205\351\234\2002\344\270\252\346\210\2262\344\270\252\344\273\245\344\270\212\345\225\206\345\223\201.air/\345\245\227\345\214\205\346\233\264\346\226\260_\351\252\214\350\257\201\347\273\204\346\210\220\345\245\227\345\214\205\351\234\2002\344\270\252\346\210\2262\344\270\252\344\273\245\344\270\212\345\225\206\345\223\201.py"
@@ -0,0 +1,53 @@
+# -*- encoding=utf8 -*-
+__author__ = "liguangyu"
+
+"""
+case_tag:cmdc_api,cmdc套包更新_验证组成套包需2个或2个以上商品,2264,2264-16,sit,bs
+主数据平台:运营后台管理系统套包列表查询和套包更新等接口
+"""
+
+from common.common_func import commonFuc
+from air_case.cmdc_login.后台管理系统登录.后台管理系统登录 import CmdcDoLogin
+import requests
+import json
+
+module = "cmdc_fresenius_group"
+
+# 第一步登录后台运营平台获取cmdc_access_token
+# 获取登录所需账号密码
+username = commonFuc().get_business_data(module, "username1")
+password = commonFuc().get_business_data(module, "password1")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcDoLogin(username, password).get_token()
+headers = commonFuc().get_business_data(module, "json_headers", cmdc_access_token)
+
+# 第二步进行套包列表获取
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url1")
+request_body = commonFuc().get_business_data(module, "payload1")
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+
+# 获取套包信息
+group_json = result["data"]["list"][0]
+# 进行套包包含商品更新操作
+group_json.update(products=[])
+
+# 第三步进行套包更新验证
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url14")
+request_body = group_json
+
+"""
+ 场景: 验证更新套包时,修改套包内商品数量小于2时,是否可以更新成功
+ 用例名称:套包更新_验证组成套包需2个或2个以上商品
+ 输出:{"success":false,"code":"FRESENIUS_GROUP_ERROR","message":"组成套包需2个或2个以上商品","data":null,"freshToken":null}
+"""
+
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+
+# 获取预期结果
+check_dict = commonFuc().get_business_data(module, "checkDict15")
+# 断言实际结果中是否包含预期结果的内容
+commonFuc().check_result(check_dict, result)
diff --git "a/air_case/cmdc_fresenius_group/\345\245\227\345\214\205\346\233\264\346\226\260\351\252\214\350\257\201.air/\345\245\227\345\214\205\346\233\264\346\226\260\351\252\214\350\257\201.py" "b/air_case/cmdc_fresenius_group/\345\245\227\345\214\205\346\233\264\346\226\260\351\252\214\350\257\201.air/\345\245\227\345\214\205\346\233\264\346\226\260\351\252\214\350\257\201.py"
new file mode 100644
index 0000000000000000000000000000000000000000..780184949fb2ad06cc561b3c4a227a13f276c308
--- /dev/null
+++ "b/air_case/cmdc_fresenius_group/\345\245\227\345\214\205\346\233\264\346\226\260\351\252\214\350\257\201.air/\345\245\227\345\214\205\346\233\264\346\226\260\351\252\214\350\257\201.py"
@@ -0,0 +1,48 @@
+# -*- encoding=utf8 -*-
+__author__ = "liguangyu"
+
+"""
+case_tag:cmdc_api,cmdc套包更新验证,2264,2264-17,sit,bs
+主数据平台:运营后台管理系统套包列表查询和套包更新等接口
+"""
+
+from common.common_func import commonFuc
+from air_case.cmdc_login.后台管理系统登录.后台管理系统登录 import CmdcDoLogin
+import requests
+import json
+
+module = "cmdc_fresenius_group"
+
+# 第一步登录后台运营平台获取cmdc_access_token
+# 获取登录所需账号密码
+username = commonFuc().get_business_data(module, "username1")
+password = commonFuc().get_business_data(module, "password1")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcDoLogin(username, password).get_token()
+headers = commonFuc().get_business_data(module, "json_headers", cmdc_access_token)
+
+# 第二步进行套包列表获取
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url1")
+request_body = commonFuc().get_business_data(module, "payload1")
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+
+# 第三步进行套包更新验证
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url14")
+request_body = result["data"]["list"][0]
+
+"""
+ 场景:套包更新验证
+ 用例名称:套包更新验证
+ 输出:{"success":true,"code":"200","message":"OK","data":true,"freshToken":null}
+"""
+
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+print(result)
+# 获取预期结果
+check_dict = commonFuc().get_business_data(module, "checkDict17")
+# 断言实际结果中是否包含预期结果的内容
+commonFuc().check_result(check_dict, result)
diff --git "a/air_case/cmdc_fresenius_group/\345\245\227\345\214\205\346\270\205\345\215\225\350\216\267\345\217\226.air/\345\245\227\345\214\205\346\270\205\345\215\225\350\216\267\345\217\226.py" "b/air_case/cmdc_fresenius_group/\345\245\227\345\214\205\346\270\205\345\215\225\350\216\267\345\217\226.air/\345\245\227\345\214\205\346\270\205\345\215\225\350\216\267\345\217\226.py"
new file mode 100644
index 0000000000000000000000000000000000000000..d7f60c68b9fcb46c2279cf956d1087ccdf4cda17
--- /dev/null
+++ "b/air_case/cmdc_fresenius_group/\345\245\227\345\214\205\346\270\205\345\215\225\350\216\267\345\217\226.air/\345\245\227\345\214\205\346\270\205\345\215\225\350\216\267\345\217\226.py"
@@ -0,0 +1,44 @@
+# -*- encoding=utf8 -*-
+__author__ = "liguangyu"
+
+"""
+case_tag:cmdc_api,cmdc套包清单获取,2264,2264-32,sit,bs
+主数据平台:多采商城套包清单获取接口
+"""
+
+from common.common_func import commonFuc
+from air_case.cmdc_login.多采商城登录.多采商城登录 import CmdcMaiiLogin
+import requests
+import json
+
+module = "cmdc_fresenius_group"
+
+# 第一步登录后台运营平台获取cmdc_access_token
+# 获取登录所需账号密码
+username = commonFuc().get_business_data(module, "username")
+password = commonFuc().get_business_data(module, "password")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcMaiiLogin(username, password).get_token()
+headers = commonFuc().get_business_data(module, "json_headers1", cmdc_access_token)
+
+# 第二步加入购物车
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url30")
+request_body = commonFuc().get_business_data(module, "payload30")
+
+"""
+
+ 场景:套包清单获取
+ 用例名称:套包清单获取
+ 输出:{"success":true,"code":"200","message":"OK"}
+
+"""
+
+# 发送请求
+result = requests.get(url, params=request_body, headers=headers)
+result = json.loads(result.content)
+
+# 获取预期结果
+check_dict = commonFuc().get_business_data(module, "checkDict30")
+# 断言实际结果中是否包含预期结果的内容
+commonFuc().check_result(check_dict, result)
+
diff --git "a/air_case/cmdc_fresenius_group/\345\245\227\345\214\205\347\232\204\345\210\233\345\273\272.air/\345\245\227\345\214\205\347\232\204\345\210\233\345\273\272.py" "b/air_case/cmdc_fresenius_group/\345\245\227\345\214\205\347\232\204\345\210\233\345\273\272.air/\345\245\227\345\214\205\347\232\204\345\210\233\345\273\272.py"
new file mode 100644
index 0000000000000000000000000000000000000000..645e4013e2782e3a9ca7511ed2868d8fa83bb293
--- /dev/null
+++ "b/air_case/cmdc_fresenius_group/\345\245\227\345\214\205\347\232\204\345\210\233\345\273\272.air/\345\245\227\345\214\205\347\232\204\345\210\233\345\273\272.py"
@@ -0,0 +1,45 @@
+# -*- encoding=utf8 -*-
+__author__ = "liguangyu"
+
+"""
+case_tag:cmdc_api,cmdc套包的创建验证,2264,2264-18,sit,bs
+主数据平台:运营后台管理系统套包创建接口
+"""
+
+from common.common_func import commonFuc
+from air_case.cmdc_login.后台管理系统登录.后台管理系统登录 import CmdcDoLogin
+import requests
+import json
+import random
+
+module = "cmdc_fresenius_group"
+
+# 第一步登录后台运营平台获取cmdc_access_token
+# 获取登录所需账号密码
+username = commonFuc().get_business_data(module, "username1")
+password = commonFuc().get_business_data(module, "password1")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcDoLogin(username, password).get_token()
+headers = commonFuc().get_business_data(module, "json_headers", cmdc_access_token)
+
+# 随机生成套包内商品数量
+quantity = random.randint(1, 999999)
+
+# 第二步创建套包
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url8")
+request_body = commonFuc().get_business_data(module, "payload8", quantity, quantity)
+
+"""
+ 场景:套包创建的验证
+ 用例名称:套包创建的验证
+ 输出:{"success":true,"code":"200","message":"OK"}
+"""
+
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+print(result)
+# 获取预期结果
+check_dict = commonFuc().get_business_data(module, "checkDict8")
+# 断言实际结果中是否包含预期结果的内容
+commonFuc().check_result(check_dict, result)
diff --git "a/air_case/cmdc_fresenius_group/\345\257\274\345\205\245\346\227\245\345\277\227\346\237\245\350\257\242.air/\345\257\274\345\205\245\346\227\245\345\277\227\346\237\245\350\257\242.py" "b/air_case/cmdc_fresenius_group/\345\257\274\345\205\245\346\227\245\345\277\227\346\237\245\350\257\242.air/\345\257\274\345\205\245\346\227\245\345\277\227\346\237\245\350\257\242.py"
new file mode 100644
index 0000000000000000000000000000000000000000..dd206d9041285368e3780a92ceb3235ec94dfb5e
--- /dev/null
+++ "b/air_case/cmdc_fresenius_group/\345\257\274\345\205\245\346\227\245\345\277\227\346\237\245\350\257\242.air/\345\257\274\345\205\245\346\227\245\345\277\227\346\237\245\350\257\242.py"
@@ -0,0 +1,41 @@
+# -*- encoding=utf8 -*-
+__author__ = "liguangyu"
+
+"""
+case_tag:cmdc_api,cmdc导入日志查询,2264,2264-26,sit,bs
+主数据平台:运营后台管理系统导入日志查询接口
+"""
+
+from common.common_func import commonFuc
+from air_case.cmdc_login.后台管理系统登录.后台管理系统登录 import CmdcDoLogin
+import requests
+import json
+
+module = "cmdc_fresenius_group"
+
+# 第一步登录后台运营平台获取cmdc_access_token
+# 获取登录所需账号密码
+username = commonFuc().get_business_data(module, "username1")
+password = commonFuc().get_business_data(module, "password1")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcDoLogin(username, password).get_token()
+headers = commonFuc().get_business_data(module, "json_headers", cmdc_access_token)
+
+# 第二步导入日志查询
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url24")
+
+"""
+ 场景:导入日志查询
+ 用例名称:导入日志查询
+ 输出:{"success":true,"code":"200","message":"OK"}
+"""
+
+# 发送请求
+result = requests.get(url, headers=headers)
+result = json.loads(result.content)
+
+# 获取预期结果
+check_dict = commonFuc().get_business_data(module, "checkDict24")
+# 断言实际结果中是否包含预期结果的内容
+commonFuc().check_result(check_dict, result)
+
diff --git "a/air_case/cmdc_fresenius_group/\346\211\271\351\207\217\346\226\260\345\242\236\345\245\227\345\214\205.air/\346\211\271\351\207\217\346\226\260\345\242\236\345\245\227\345\214\205.py" "b/air_case/cmdc_fresenius_group/\346\211\271\351\207\217\346\226\260\345\242\236\345\245\227\345\214\205.air/\346\211\271\351\207\217\346\226\260\345\242\236\345\245\227\345\214\205.py"
new file mode 100644
index 0000000000000000000000000000000000000000..5718b5317adda96e30df586255ea32039defdd4e
--- /dev/null
+++ "b/air_case/cmdc_fresenius_group/\346\211\271\351\207\217\346\226\260\345\242\236\345\245\227\345\214\205.air/\346\211\271\351\207\217\346\226\260\345\242\236\345\245\227\345\214\205.py"
@@ -0,0 +1,86 @@
+# -*- encoding=utf8 -*-
+__author__ = "liguangyu"
+
+"""
+case_tag:cmdc_api,cmdc套包批量新增,2264,2264-19,sit,bs
+主数据平台:运营后台管理系统套包批量新增接口
+"""
+
+from common.common_func import commonFuc
+from air_case.cmdc_login.后台管理系统登录.后台管理系统登录 import CmdcDoLogin
+from common.handle_excel import HandleExcel
+import requests
+import json
+import os
+import random
+import uuid
+
+module = "cmdc_fresenius_group"
+
+# 第一步登录后台运营平台获取cmdc_access_token
+# 获取登录所需账号密码
+username = commonFuc().get_business_data(module, "username1")
+password = commonFuc().get_business_data(module, "password1")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcDoLogin(username, password).get_token()
+headers = commonFuc().get_business_data(module, "json_headers2", cmdc_access_token)
+
+# 获取文件
+BASE_DIR = os.path.dirname(os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))))
+file_path = BASE_DIR + "/data/cmdc_files/套包商品批量维护模板.xlsx"
+
+# 获取商品列表
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url19")
+request_body = commonFuc().get_business_data(module, "payload19")
+result = requests.post(url, headers=headers, json=request_body)
+result = json.loads(result.content)
+
+# 随机获取不相同两个商品信息
+product_id_a = random.randint(1, len(result["data"]["list"]) - 2)
+product_code_a = result["data"]["list"][product_id_a]["productCode"]
+product_name_a = result["data"]["list"][product_id_a]["productName"]
+product_id_b = random.randint(product_id_a, len(result["data"]["list"])-1)
+product_code_b = result["data"]["list"][product_id_b]["productCode"]
+product_name_b = result["data"]["list"][product_id_b]["productName"]
+
+# 随机生成套包名称
+group_name = "测试套包%s" % uuid.uuid4()
+# 随机生成商品数量
+product_num = random.randint(1, 1000)
+
+# 将商品信息写入文件中
+excel = HandleExcel(file_path, "Sheet1")
+excel.write_data(row=2, column=1, value=group_name)
+excel.write_data(row=3, column=1, value=group_name)
+excel.write_data(row=2, column=2, value=product_code_a)
+excel.write_data(row=2, column=3, value=product_name_a)
+excel.write_data(row=2, column=4, value=product_num)
+
+excel.write_data(row=3, column=2, value=product_code_b)
+excel.write_data(row=3, column=3, value=product_name_b)
+excel.write_data(row=3, column=4, value=product_num)
+
+# 第二步批量新增套包
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url18")
+
+request_body = commonFuc().get_business_data(module, "payload18")
+
+# 获取文件
+file = open(file_path, "rb")
+files = {"file": file}
+
+"""
+ 场景:套包批量新增
+ 用例名称:套包批量新增
+ 输出:{"success":true,"code":"200","message":"OK","data":{"success":true},"freshToken":null}
+"""
+
+# 发送请求
+result = requests.post(url, files=files, headers=headers, data=request_body)
+result = json.loads(result.content)
+file.close()
+print(result)
+# 获取预期结果
+check_dict = commonFuc().get_business_data(module, "checkDict18")
+# 断言实际结果中是否包含预期结果的内容
+commonFuc().check_result(check_dict, result)
diff --git "a/air_case/cmdc_fresenius_group/\346\237\245\350\257\242\350\247\204\346\240\274\345\236\213\345\217\267.air/\346\237\245\350\257\242\350\247\204\346\240\274\345\236\213\345\217\267.py" "b/air_case/cmdc_fresenius_group/\346\237\245\350\257\242\350\247\204\346\240\274\345\236\213\345\217\267.air/\346\237\245\350\257\242\350\247\204\346\240\274\345\236\213\345\217\267.py"
new file mode 100644
index 0000000000000000000000000000000000000000..bcd8bdc772f07528b694670e6fc3904365883317
--- /dev/null
+++ "b/air_case/cmdc_fresenius_group/\346\237\245\350\257\242\350\247\204\346\240\274\345\236\213\345\217\267.air/\346\237\245\350\257\242\350\247\204\346\240\274\345\236\213\345\217\267.py"
@@ -0,0 +1,45 @@
+# -*- encoding=utf8 -*-
+__author__ = "liguangyu"
+
+"""
+case_tag:cmdc_api,cmdc查询规格型号,2264,2264-20,sit,bs
+主数据平台:运营后台管理系统查询规格型号接口
+"""
+
+from common.common_func import commonFuc
+from air_case.cmdc_login.后台管理系统登录.后台管理系统登录 import CmdcDoLogin
+import requests
+import json
+import random
+
+module = "cmdc_fresenius_group"
+
+# 第一步登录后台运营平台获取cmdc_access_token
+# 获取登录所需账号密码
+username = commonFuc().get_business_data(module, "username1")
+password = commonFuc().get_business_data(module, "password1")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcDoLogin(username, password).get_token()
+headers = commonFuc().get_business_data(module, "json_headers", cmdc_access_token)
+
+# 随机生成商品规格型号
+material_code_input = random.randint(1, 100)
+
+# 第二步查询规格型号
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url5")
+request_body = commonFuc().get_business_data(module, "payload5", material_code_input)
+
+"""
+ 场景:查询规格型号
+ 用例名称:查询规格型号
+ 输出:{"success":true,"code":"200","message":"OK"}
+"""
+
+# 发送请求
+result = requests.get(url, params=request_body, headers=headers)
+result = json.loads(result.content)
+print(result)
+# 获取预期结果
+check_dict = commonFuc().get_business_data(module, "checkDict5")
+# 断言实际结果中是否包含预期结果的内容
+commonFuc().check_result(check_dict, result)
diff --git "a/air_case/cmdc_fresenius_group/\346\240\271\346\215\256\350\247\204\346\240\274\345\236\213\345\217\267\350\216\267\345\217\226\345\257\271\345\272\224\345\225\206\345\223\201\345\210\227\350\241\250.air/\346\240\271\346\215\256\350\247\204\346\240\274\345\236\213\345\217\267\350\216\267\345\217\226\345\257\271\345\272\224\345\225\206\345\223\201\345\210\227\350\241\250.py" "b/air_case/cmdc_fresenius_group/\346\240\271\346\215\256\350\247\204\346\240\274\345\236\213\345\217\267\350\216\267\345\217\226\345\257\271\345\272\224\345\225\206\345\223\201\345\210\227\350\241\250.air/\346\240\271\346\215\256\350\247\204\346\240\274\345\236\213\345\217\267\350\216\267\345\217\226\345\257\271\345\272\224\345\225\206\345\223\201\345\210\227\350\241\250.py"
new file mode 100644
index 0000000000000000000000000000000000000000..a6dbe5e3b4f4938c8a3743818f7903d6349097a9
--- /dev/null
+++ "b/air_case/cmdc_fresenius_group/\346\240\271\346\215\256\350\247\204\346\240\274\345\236\213\345\217\267\350\216\267\345\217\226\345\257\271\345\272\224\345\225\206\345\223\201\345\210\227\350\241\250.air/\346\240\271\346\215\256\350\247\204\346\240\274\345\236\213\345\217\267\350\216\267\345\217\226\345\257\271\345\272\224\345\225\206\345\223\201\345\210\227\350\241\250.py"
@@ -0,0 +1,56 @@
+# -*- encoding=utf8 -*-
+__author__ = "liguangyu"
+
+"""
+case_tag:cmdc_api,cmdc根据规格型号获取对应商品列表,2264,2264-21,sit,bs
+主数据平台:运营后台管理系统根据规格型号获取对应商品列表查询接口
+"""
+
+from common.common_func import commonFuc
+from air_case.cmdc_login.后台管理系统登录.后台管理系统登录 import CmdcDoLogin
+import requests
+import json
+import random
+
+module = "cmdc_fresenius_group"
+
+# 第一步登录后台运营平台获取cmdc_access_token
+# 获取登录所需账号密码
+username = commonFuc().get_business_data(module, "username1")
+password = commonFuc().get_business_data(module, "password1")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcDoLogin(username, password).get_token()
+headers = commonFuc().get_business_data(module, "json_headers", cmdc_access_token)
+
+# 第二步查询规格型号
+# 随机生成商品规格型号
+material_code_input = random.randint(1, 100)
+
+# 第二步查询规格型号
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url5")
+request_body = commonFuc().get_business_data(module, "payload5", material_code_input)
+
+# 发送请求
+result = requests.get(url, params=request_body, headers=headers)
+result = json.loads(result.content)
+
+# 获取规格型号
+specifications = result["data"][1]
+# 第三步根据规格型号获取对应的商品列表
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url4")
+request_body = commonFuc().get_business_data(module, "payload4", specifications)
+
+"""
+ 场景:根据规格型号获取对应商品列表
+ 用例名称:根据规格型号获取对应商品列表
+ 输出:{"success":true,"code":"200","message":"OK"}
+"""
+
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+result = {"optionStr": result["data"]["list"][0]["optionStr"]}
+# 获取预期结果
+check_dict = commonFuc().get_business_data(module, "checkDict4", specifications)
+# 断言实际结果中是否包含预期结果的内容
+commonFuc().check_result(check_dict, result)
diff --git "a/air_case/cmdc_fresenius_group/\346\250\241\347\263\212\345\214\271\351\205\215\347\211\251\346\226\231\347\274\226\347\240\201_\345\245\227\345\214\205\345\210\227\350\241\250_\345\225\206\345\223\201\350\257\246\346\203\205\350\267\263\350\275\254.air/\346\250\241\347\263\212\345\214\271\351\205\215\347\211\251\346\226\231\347\274\226\347\240\201_\345\245\227\345\214\205\345\210\227\350\241\250_\345\225\206\345\223\201\350\257\246\346\203\205\350\267\263\350\275\254.py" "b/air_case/cmdc_fresenius_group/\346\250\241\347\263\212\345\214\271\351\205\215\347\211\251\346\226\231\347\274\226\347\240\201_\345\245\227\345\214\205\345\210\227\350\241\250_\345\225\206\345\223\201\350\257\246\346\203\205\350\267\263\350\275\254.air/\346\250\241\347\263\212\345\214\271\351\205\215\347\211\251\346\226\231\347\274\226\347\240\201_\345\245\227\345\214\205\345\210\227\350\241\250_\345\225\206\345\223\201\350\257\246\346\203\205\350\267\263\350\275\254.py"
new file mode 100644
index 0000000000000000000000000000000000000000..9a86bf66de0aef801867a16ee32ab8da313607c5
--- /dev/null
+++ "b/air_case/cmdc_fresenius_group/\346\250\241\347\263\212\345\214\271\351\205\215\347\211\251\346\226\231\347\274\226\347\240\201_\345\245\227\345\214\205\345\210\227\350\241\250_\345\225\206\345\223\201\350\257\246\346\203\205\350\267\263\350\275\254.air/\346\250\241\347\263\212\345\214\271\351\205\215\347\211\251\346\226\231\347\274\226\347\240\201_\345\245\227\345\214\205\345\210\227\350\241\250_\345\225\206\345\223\201\350\257\246\346\203\205\350\267\263\350\275\254.py"
@@ -0,0 +1,47 @@
+# -*- encoding=utf8 -*-
+__author__ = "liguangyu"
+
+"""
+case_tag:cmdc_api,cmdc验证物料编码模糊匹配_套包列表_商品详情页面跳转,2264,2264-29,sit,bs
+主数据平台:多采商品套包列表物料编码模糊查询
+"""
+
+from common.common_func import commonFuc
+from air_case.cmdc_login.多采商城登录.多采商城登录 import CmdcMaiiLogin
+import requests
+import json
+import random
+
+module = "cmdc_fresenius_group"
+
+# 第一步登录后台运营平台获取cmdc_access_token
+# 获取登录所需账号密码
+username = commonFuc().get_business_data(module, "username")
+password = commonFuc().get_business_data(module, "password")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcMaiiLogin(username, password).get_token()
+headers = commonFuc().get_business_data(module, "json_headers1", cmdc_access_token)
+
+# 随机生成物料编码
+input_value = random.randint(1, 10000000)
+
+# 第三步验证多采商品套包列表页面中物料编码模糊查询
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url27")
+request_body = commonFuc().get_business_data(module, "payload27", input_value)
+
+"""
+
+ 场景:验证多采商品套包列表页面中物料编码模糊查询
+ 用例名称:验证多采商品套包列表页面中物料编码模糊查询
+ 输出:{"success":true,"code":"200","message":"OK"}
+
+"""
+
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+
+# 获取预期结果
+check_dict = commonFuc().get_business_data(module, "checkDict27")
+# 断言实际结果中是否包含预期结果的内容
+commonFuc().check_result(check_dict, result)
diff --git "a/air_case/cmdc_fresenius_group/\350\216\267\345\217\226\345\245\227\345\214\205\345\210\227\350\241\250_\345\225\206\345\223\201\350\257\246\346\203\205\350\267\263\350\275\254.air/\350\216\267\345\217\226\345\245\227\345\214\205\345\210\227\350\241\250_\345\225\206\345\223\201\350\257\246\346\203\205\350\267\263\350\275\254.py" "b/air_case/cmdc_fresenius_group/\350\216\267\345\217\226\345\245\227\345\214\205\345\210\227\350\241\250_\345\225\206\345\223\201\350\257\246\346\203\205\350\267\263\350\275\254.air/\350\216\267\345\217\226\345\245\227\345\214\205\345\210\227\350\241\250_\345\225\206\345\223\201\350\257\246\346\203\205\350\267\263\350\275\254.py"
new file mode 100644
index 0000000000000000000000000000000000000000..e88a797a11970ae7af4d70fde414d3b251100883
--- /dev/null
+++ "b/air_case/cmdc_fresenius_group/\350\216\267\345\217\226\345\245\227\345\214\205\345\210\227\350\241\250_\345\225\206\345\223\201\350\257\246\346\203\205\350\267\263\350\275\254.air/\350\216\267\345\217\226\345\245\227\345\214\205\345\210\227\350\241\250_\345\225\206\345\223\201\350\257\246\346\203\205\350\267\263\350\275\254.py"
@@ -0,0 +1,56 @@
+# -*- encoding=utf8 -*-
+__author__ = "liguangyu"
+
+"""
+case_tag:cmdc_api,cmdc获取套包列表_商品详情页面跳转,2264,2264-28,sit,bs
+主数据平台:运营后台管理系统套包列表查询和获取套包列表getFreseniusGroup
+"""
+
+from common.common_func import commonFuc
+from air_case.cmdc_login.后台管理系统登录.后台管理系统登录 import CmdcDoLogin
+import requests
+import json
+
+module = "cmdc_fresenius_group"
+
+# 第一步登录后台运营平台获取cmdc_access_token
+# 获取登录所需账号密码
+username = commonFuc().get_business_data(module, "username1")
+password = commonFuc().get_business_data(module, "password1")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcDoLogin(username, password).get_token()
+headers = commonFuc().get_business_data(module, "json_headers", cmdc_access_token)
+
+# 第二步进行套包列表获取
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url1")
+request_body = commonFuc().get_business_data(module, "payload22")
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+
+# 获取套包中商品信息productLineCode、companyCode和套包信息groupCode
+product_line_code = result["data"]["list"][0]["productLineCode"]
+company_code = result["data"]["list"][0]["products"][0]["companyCode"]
+group_code = result["data"]["list"][0]["groupCode"]
+
+# 第三步获取商品对应的套包信息
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url26")
+request_body = commonFuc().get_business_data(module, "payload26", product_line_code, company_code)
+
+"""
+
+ 场景:验证套包商品详情是否显示套包信息
+ 用例名称:验证套包商品详情是否显示套包信息
+ 输出:{"groupCode":"%s"}
+
+"""
+
+# 发送请求
+result = requests.get(url, params=request_body, headers=headers)
+result = json.loads(result.content)
+# 获取商品对应的groupCode
+result = {"groupCode": result["data"][0]["groupCode"]}
+# 获取预期结果
+check_dict = commonFuc().get_business_data(module, "checkDict25", group_code)
+# 断言实际结果中是否包含预期结果的内容
+commonFuc().check_result(check_dict, result)
diff --git "a/air_case/cmdc_fresenius_group/\351\252\214\350\257\201\345\245\227\345\214\205\345\206\205\345\225\206\345\223\201\351\235\236\345\220\214\344\270\200\344\272\247\345\223\201\347\272\277\351\231\220\345\210\266.air/\351\252\214\350\257\201\345\245\227\345\214\205\345\206\205\345\225\206\345\223\201\351\235\236\345\220\214\344\270\200\344\272\247\345\223\201\347\272\277\351\231\220\345\210\266.py" "b/air_case/cmdc_fresenius_group/\351\252\214\350\257\201\345\245\227\345\214\205\345\206\205\345\225\206\345\223\201\351\235\236\345\220\214\344\270\200\344\272\247\345\223\201\347\272\277\351\231\220\345\210\266.air/\351\252\214\350\257\201\345\245\227\345\214\205\345\206\205\345\225\206\345\223\201\351\235\236\345\220\214\344\270\200\344\272\247\345\223\201\347\272\277\351\231\220\345\210\266.py"
new file mode 100644
index 0000000000000000000000000000000000000000..ed3d29ab6f592583bb8becc605438309e91ec904
--- /dev/null
+++ "b/air_case/cmdc_fresenius_group/\351\252\214\350\257\201\345\245\227\345\214\205\345\206\205\345\225\206\345\223\201\351\235\236\345\220\214\344\270\200\344\272\247\345\223\201\347\272\277\351\231\220\345\210\266.air/\351\252\214\350\257\201\345\245\227\345\214\205\345\206\205\345\225\206\345\223\201\351\235\236\345\220\214\344\270\200\344\272\247\345\223\201\347\272\277\351\231\220\345\210\266.py"
@@ -0,0 +1,41 @@
+# -*- encoding=utf8 -*-
+__author__ = "liguangyu"
+
+"""
+case_tag:cmdc_api,cmdc验证套包内商品非同一产品线限制,2264,2264-22,sit,bs
+主数据平台:运营后台管理系统套包创建接口
+"""
+
+from common.common_func import commonFuc
+from air_case.cmdc_login.后台管理系统登录.后台管理系统登录 import CmdcDoLogin
+import requests
+import json
+
+module = "cmdc_fresenius_group"
+
+# 第一步登录后台运营平台获取cmdc_access_token
+# 获取登录所需账号密码
+username = commonFuc().get_business_data(module, "username1")
+password = commonFuc().get_business_data(module, "password1")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcDoLogin(username, password).get_token()
+headers = commonFuc().get_business_data(module, "json_headers", cmdc_access_token)
+
+# 第二步创建套包
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url12")
+request_body = commonFuc().get_business_data(module, "payload12")
+
+"""
+ 场景:验证套包内商品非同一产品线限制
+ 用例名称:验证套包内商品非同一产品线限制
+ 输出:{"success":false,"code":"FRESENIUS_GROUP_ERROR","message":"组成一个套包内商品需满足套包在同一产品线下","data":null,"freshToken":null}
+"""
+
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+
+# 获取预期结果
+check_dict = commonFuc().get_business_data(module, "checkDict12")
+# 断言实际结果中是否包含预期结果的内容
+commonFuc().check_result(check_dict, result)
diff --git "a/air_case/cmdc_fresenius_group/\351\252\214\350\257\201\345\245\227\345\214\205\345\225\206\345\223\201\350\257\246\346\203\205\346\230\257\345\220\246\346\230\276\347\244\272\345\245\227\345\214\205\344\277\241\346\201\257.air/\351\252\214\350\257\201\345\245\227\345\214\205\345\225\206\345\223\201\350\257\246\346\203\205\346\230\257\345\220\246\346\230\276\347\244\272\345\245\227\345\214\205\344\277\241\346\201\257.py" "b/air_case/cmdc_fresenius_group/\351\252\214\350\257\201\345\245\227\345\214\205\345\225\206\345\223\201\350\257\246\346\203\205\346\230\257\345\220\246\346\230\276\347\244\272\345\245\227\345\214\205\344\277\241\346\201\257.air/\351\252\214\350\257\201\345\245\227\345\214\205\345\225\206\345\223\201\350\257\246\346\203\205\346\230\257\345\220\246\346\230\276\347\244\272\345\245\227\345\214\205\344\277\241\346\201\257.py"
new file mode 100644
index 0000000000000000000000000000000000000000..a07956c2a4ab72ccabdd42c0531ea81a354fdbca
--- /dev/null
+++ "b/air_case/cmdc_fresenius_group/\351\252\214\350\257\201\345\245\227\345\214\205\345\225\206\345\223\201\350\257\246\346\203\205\346\230\257\345\220\246\346\230\276\347\244\272\345\245\227\345\214\205\344\277\241\346\201\257.air/\351\252\214\350\257\201\345\245\227\345\214\205\345\225\206\345\223\201\350\257\246\346\203\205\346\230\257\345\220\246\346\230\276\347\244\272\345\245\227\345\214\205\344\277\241\346\201\257.py"
@@ -0,0 +1,55 @@
+# -*- encoding=utf8 -*-
+__author__ = "liguangyu"
+
+"""
+case_tag:cmdc_api,cmdc验证套包商品详情是否显示套包信息,2264,2264-27,sit,bs
+主数据平台:运营后台管理系统套包列表查询和获取套包接口getFreseniusGroup
+"""
+
+from common.common_func import commonFuc
+from air_case.cmdc_login.后台管理系统登录.后台管理系统登录 import CmdcDoLogin
+import requests
+import json
+
+module = "cmdc_fresenius_group"
+
+# 第一步登录后台运营平台获取cmdc_access_token
+# 获取登录所需账号密码
+username = commonFuc().get_business_data(module, "username1")
+password = commonFuc().get_business_data(module, "password1")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcDoLogin(username, password).get_token()
+headers = commonFuc().get_business_data(module, "json_headers", cmdc_access_token)
+
+# 第二步进行套包列表获取
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url1")
+request_body = commonFuc().get_business_data(module, "payload22")
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+
+# 获取套包中商品信息productCode、companyCode和套包信息groupCode
+product_code = result["data"]["list"][0]["products"][0]["productCode"]
+company_code = result["data"]["list"][0]["products"][0]["companyCode"]
+group_code = result["data"]["list"][0]["groupCode"]
+
+# 第三步获取商品对应的套包信息
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url25")
+request_body = commonFuc().get_business_data(module, "payload23", product_code, company_code)
+
+"""
+
+ 场景:验证套包商品详情是否显示套包信息
+ 用例名称:验证套包商品详情是否显示套包信息
+ 输出:{"groupCode":"%s"}
+"""
+
+# 发送请求
+result = requests.get(url, params=request_body, headers=headers)
+result = json.loads(result.content)
+# 获取商品对应的groupCode
+result = {"groupCode": result["data"][0]["groupCode"]}
+# 获取预期结果
+check_dict = commonFuc().get_business_data(module, "checkDict25", group_code)
+# 断言实际结果中是否包含预期结果的内容
+commonFuc().check_result(check_dict, result)
diff --git "a/air_case/cmdc_fresenius_group/\351\252\214\350\257\201\345\245\227\345\214\205\347\273\223\346\236\204\350\260\203\346\225\264\345\220\216\345\256\241\346\240\270\346\230\257\345\220\246\346\213\246\346\210\252.air/\351\252\214\350\257\201\345\245\227\345\214\205\347\273\223\346\236\204\350\260\203\346\225\264\345\220\216\345\256\241\346\240\270\346\230\257\345\220\246\346\213\246\346\210\252.py" "b/air_case/cmdc_fresenius_group/\351\252\214\350\257\201\345\245\227\345\214\205\347\273\223\346\236\204\350\260\203\346\225\264\345\220\216\345\256\241\346\240\270\346\230\257\345\220\246\346\213\246\346\210\252.air/\351\252\214\350\257\201\345\245\227\345\214\205\347\273\223\346\236\204\350\260\203\346\225\264\345\220\216\345\256\241\346\240\270\346\230\257\345\220\246\346\213\246\346\210\252.py"
new file mode 100644
index 0000000000000000000000000000000000000000..d47bc885f4e111df1c24c3e1b9f89376fae914b5
--- /dev/null
+++ "b/air_case/cmdc_fresenius_group/\351\252\214\350\257\201\345\245\227\345\214\205\347\273\223\346\236\204\350\260\203\346\225\264\345\220\216\345\256\241\346\240\270\346\230\257\345\220\246\346\213\246\346\210\252.air/\351\252\214\350\257\201\345\245\227\345\214\205\347\273\223\346\236\204\350\260\203\346\225\264\345\220\216\345\256\241\346\240\270\346\230\257\345\220\246\346\213\246\346\210\252.py"
@@ -0,0 +1,42 @@
+# -*- encoding=utf8 -*-
+__author__ = "liguangyu"
+
+"""
+case_tag:cmdc_api,cmdc验证套包结构调整后审核是否拦截,2264,2264-33,sit,bs
+主数据平台:套包核验接口
+"""
+
+from common.common_func import commonFuc
+from air_case.cmdc_login.后台管理系统登录.后台管理系统登录 import CmdcDoLogin
+import requests
+import json
+
+module = "cmdc_fresenius_group"
+
+# 第一步登录后台运营平台获取cmdc_access_token
+# 获取登录所需账号密码
+username = commonFuc().get_business_data(module, "username1")
+password = commonFuc().get_business_data(module, "password1")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcDoLogin(username, password).get_token()
+headers = commonFuc().get_business_data(module, "json_headers", cmdc_access_token)
+
+# 第二步进行套包核验
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url32")
+request_body = commonFuc().get_business_data(module, "payload32")
+
+"""
+ 场景:验证套包结构调整后审核是否拦截
+ 用例名称:验证套包结构调整后审核是否拦截
+ 输出:{"errType": 5}
+"""
+
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+result = {"errType": result["data"][0]["errType"]}
+print(result)
+# 获取预期结果
+check_dict = commonFuc().get_business_data(module, "checkDict32")
+# 断言实际结果中是否包含预期结果的内容
+commonFuc().check_result(check_dict, result)
diff --git "a/air_case/cmdc_fresenius_group/\351\252\214\350\257\201\346\226\260\345\242\236\345\220\215\347\247\260\347\233\270\345\220\214\345\245\227\345\214\205\351\231\220\345\210\266.air/\351\252\214\350\257\201\346\226\260\345\242\236\345\220\215\347\247\260\347\233\270\345\220\214\345\245\227\345\214\205\351\231\220\345\210\266.py" "b/air_case/cmdc_fresenius_group/\351\252\214\350\257\201\346\226\260\345\242\236\345\220\215\347\247\260\347\233\270\345\220\214\345\245\227\345\214\205\351\231\220\345\210\266.air/\351\252\214\350\257\201\346\226\260\345\242\236\345\220\215\347\247\260\347\233\270\345\220\214\345\245\227\345\214\205\351\231\220\345\210\266.py"
new file mode 100644
index 0000000000000000000000000000000000000000..aed3b76e210b9b567634c67a7df725a99ed2e3bf
--- /dev/null
+++ "b/air_case/cmdc_fresenius_group/\351\252\214\350\257\201\346\226\260\345\242\236\345\220\215\347\247\260\347\233\270\345\220\214\345\245\227\345\214\205\351\231\220\345\210\266.air/\351\252\214\350\257\201\346\226\260\345\242\236\345\220\215\347\247\260\347\233\270\345\220\214\345\245\227\345\214\205\351\231\220\345\210\266.py"
@@ -0,0 +1,56 @@
+# -*- encoding=utf8 -*-
+__author__ = "liguangyu"
+
+"""
+case_tag:cmdc_api,cmdc验证新增名称相同套包限制,2264,2264-23,sit,bs
+主数据平台:运营后台管理系统套包列表查询、套包新增等接口
+"""
+
+from common.common_func import commonFuc
+from air_case.cmdc_login.后台管理系统登录.后台管理系统登录 import CmdcDoLogin
+import requests
+import random
+import json
+
+module = "cmdc_fresenius_group"
+
+# 第一步登录后台运营平台获取cmdc_access_token
+# 获取登录所需账号密码
+username = commonFuc().get_business_data(module, "username1")
+password = commonFuc().get_business_data(module, "password1")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcDoLogin(username, password).get_token()
+headers = commonFuc().get_business_data(module, "json_headers", cmdc_access_token)
+
+# 第二步进行套包列表获取
+url1 = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url1")
+request_body1 = commonFuc().get_business_data(module, "payload1")
+
+# 发送请求
+result = requests.post(url1, json=request_body1, headers=headers)
+result = json.loads(result.content)
+
+
+# 获取套包名称
+group_name = result["data"]["list"][0]["groupName"]
+# 随机生成套包中商品数量
+group_quantity = random.randint(3, 9999)
+
+# 第三步进行套包新增操作
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url10")
+request_body = commonFuc().get_business_data(module, "payload10", group_name, group_quantity, group_quantity)
+
+"""
+ 场景:验证新增名称相同套包限制
+ 用例名称:验证新增名称相同套包限制
+ 输出:{"success":false,"code":"FRESENIUS_GROUP_ERROR","message":"该行套包名称系统已存在,无需重复添加!","data":null,"freshToken":null}
+"""
+
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+
+# 获取预期结果
+check_dict = commonFuc().get_business_data(module, "checkDict10")
+# 断言实际结果中是否包含预期结果的内容
+commonFuc().check_result(check_dict, result)
diff --git "a/air_case/cmdc_fresenius_group/\351\252\214\350\257\201\346\226\260\345\242\236\347\273\223\346\236\204\347\233\270\345\220\214\347\232\204\345\245\227\345\214\205.air/\351\252\214\350\257\201\346\226\260\345\242\236\347\273\223\346\236\204\347\233\270\345\220\214\347\232\204\345\245\227\345\214\205.py" "b/air_case/cmdc_fresenius_group/\351\252\214\350\257\201\346\226\260\345\242\236\347\273\223\346\236\204\347\233\270\345\220\214\347\232\204\345\245\227\345\214\205.air/\351\252\214\350\257\201\346\226\260\345\242\236\347\273\223\346\236\204\347\233\270\345\220\214\347\232\204\345\245\227\345\214\205.py"
new file mode 100644
index 0000000000000000000000000000000000000000..6661987624b3fc5dc0aa836f97156dcc48de15a1
--- /dev/null
+++ "b/air_case/cmdc_fresenius_group/\351\252\214\350\257\201\346\226\260\345\242\236\347\273\223\346\236\204\347\233\270\345\220\214\347\232\204\345\245\227\345\214\205.air/\351\252\214\350\257\201\346\226\260\345\242\236\347\273\223\346\236\204\347\233\270\345\220\214\347\232\204\345\245\227\345\214\205.py"
@@ -0,0 +1,48 @@
+# -*- encoding=utf8 -*-
+__author__ = "liguangyu"
+
+"""
+case_tag:cmdc_api,cmdc验证新增结构相同的套包,2264,2264-24,sit,bs
+主数据平台:运营后台管理系统套包创建接口
+"""
+
+from common.common_func import commonFuc
+from air_case.cmdc_login.后台管理系统登录.后台管理系统登录 import CmdcDoLogin
+import requests
+import json
+import random
+
+module = "cmdc_fresenius_group"
+
+# 第一步登录后台运营平台获取cmdc_access_token
+# 获取登录所需账号密码
+username = commonFuc().get_business_data(module, "username1")
+password = commonFuc().get_business_data(module, "password1")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcDoLogin(username, password).get_token()
+headers = commonFuc().get_business_data(module, "json_headers", cmdc_access_token)
+
+# 第二步创建套包
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url11")
+request_body = commonFuc().get_business_data(module, "payload11")
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+
+# 第三步重复创建套包
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url11")
+request_body = commonFuc().get_business_data(module, "payload11")
+
+"""
+ 场景:验证新增结构相同的套包
+ 用例名称:验证新增结构相同的套包
+ 输出:{"success":false,"code":"FRESENIUS_GROUP_ERROR","message":"已存在相同结构的套包,不允许重复录入","data":null,"freshToken":null}
+"""
+
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+
+# 获取预期结果
+check_dict = commonFuc().get_business_data(module, "checkDict11")
+# 断言实际结果中是否包含预期结果的内容
+commonFuc().check_result(check_dict, result)
diff --git "a/air_case/cmdc_fresenius_group/\351\252\214\350\257\201\347\273\204\346\210\220\345\245\227\345\214\205\351\234\2002\344\270\252\346\210\2262\344\270\252\344\273\245\344\270\212\345\225\206\345\223\201.air/\351\252\214\350\257\201\347\273\204\346\210\220\345\245\227\345\214\205\351\234\2002\344\270\252\346\210\2262\344\270\252\344\273\245\344\270\212\345\225\206\345\223\201.py" "b/air_case/cmdc_fresenius_group/\351\252\214\350\257\201\347\273\204\346\210\220\345\245\227\345\214\205\351\234\2002\344\270\252\346\210\2262\344\270\252\344\273\245\344\270\212\345\225\206\345\223\201.air/\351\252\214\350\257\201\347\273\204\346\210\220\345\245\227\345\214\205\351\234\2002\344\270\252\346\210\2262\344\270\252\344\273\245\344\270\212\345\225\206\345\223\201.py"
new file mode 100644
index 0000000000000000000000000000000000000000..6352310ac9811a95bbbe9c47c43cbaaa52efa18d
--- /dev/null
+++ "b/air_case/cmdc_fresenius_group/\351\252\214\350\257\201\347\273\204\346\210\220\345\245\227\345\214\205\351\234\2002\344\270\252\346\210\2262\344\270\252\344\273\245\344\270\212\345\225\206\345\223\201.air/\351\252\214\350\257\201\347\273\204\346\210\220\345\245\227\345\214\205\351\234\2002\344\270\252\346\210\2262\344\270\252\344\273\245\344\270\212\345\225\206\345\223\201.py"
@@ -0,0 +1,41 @@
+# -*- encoding=utf8 -*-
+__author__ = "liguangyu"
+
+"""
+case_tag:cmdc_api,cmdc验证组成套包需2个或2个以上商品,2264,2264-25,sit,bs
+主数据平台:运营后台管理系统套包创建接口
+"""
+
+from common.common_func import commonFuc
+from air_case.cmdc_login.后台管理系统登录.后台管理系统登录 import CmdcDoLogin
+import requests
+import json
+
+module = "cmdc_fresenius_group"
+
+# 第一步登录后台运营平台获取cmdc_access_token
+# 获取登录所需账号密码
+username = commonFuc().get_business_data(module, "username1")
+password = commonFuc().get_business_data(module, "password1")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcDoLogin(username, password).get_token()
+headers = commonFuc().get_business_data(module, "json_headers", cmdc_access_token)
+
+# 第二步创建套包
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url13")
+request_body = commonFuc().get_business_data(module, "payload13")
+
+"""
+ 场景:验证组成套包需2个或2个以上商品
+ 用例名称:验证组成套包需2个或2个以上商品
+ 输出:{"success":false,"code":"FRESENIUS_GROUP_ERROR","message":"组成套包需2个或2个以上商品","data":null,"freshToken":null}
+"""
+
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+
+# 获取预期结果
+check_dict = commonFuc().get_business_data(module, "checkDict13")
+# 断言实际结果中是否包含预期结果的内容
+commonFuc().check_result(check_dict, result)
diff --git "a/air_case/cmdc_login/\345\220\216\345\217\260\347\256\241\347\220\206\347\263\273\347\273\237\347\231\273\345\275\225.air/\345\220\216\345\217\260\347\256\241\347\220\206\347\263\273\347\273\237\347\231\273\345\275\225.py" "b/air_case/cmdc_login/\345\220\216\345\217\260\347\256\241\347\220\206\347\263\273\347\273\237\347\231\273\345\275\225.air/\345\220\216\345\217\260\347\256\241\347\220\206\347\263\273\347\273\237\347\231\273\345\275\225.py"
new file mode 100644
index 0000000000000000000000000000000000000000..21170fceba5d07ec58431b8de18bfe578033530f
--- /dev/null
+++ "b/air_case/cmdc_login/\345\220\216\345\217\260\347\256\241\347\220\206\347\263\273\347\273\237\347\231\273\345\275\225.air/\345\220\216\345\217\260\347\256\241\347\220\206\347\263\273\347\273\237\347\231\273\345\275\225.py"
@@ -0,0 +1,58 @@
+# -*- encoding=utf8 -*-
+
+__author__ = "liguangyu"
+
+"""
+case_tag:api,cmdc-dologin,运营后台管理系统登录,sit,bs
+"""
+from common.common_func import commonFuc
+import requests
+import uuid
+from common.verification_code_ocr import VerificationCodeOcr
+import json
+import os
+
+module = "cmdc_login"
+
+
+class CmdcDoLogin():
+ """国药运营后台管理系统登录"""
+
+ def __init__(self, username, password):
+ self.username = username
+ self.password = password
+
+ def get_token(self):
+ # 获取唯一识别码
+ uuid_handle = uuid.uuid4()
+ # 获取验证码报文
+ param = {"uuid": uuid_handle}
+ # 获取多彩商城登录页面获取验证码地址
+ code_url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "getVerifyCode_url")
+ # code_url = "https://service-slb.cmic.com.cn/sso/getVerifyCode"
+ # 发送请求获取验证码
+ result = requests.get(code_url, params=param)
+ # print(result.content)
+ with open("verifycode.png", 'wb') as f:
+ f.write(result.content)
+ # 获取当前文件路径
+ BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
+ code_path = BASE_DIR + "/多采商城登录.air/verifycode.png"
+ # 识别并获取验证码
+ code = VerificationCodeOcr(code_path, "rainbow123", "rainbow123").base64_api()
+ # 获取多彩商城登录地址
+ cmdc_url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "do_login_url")
+ # cmdc_url = "https://service-slb.cmic.com.cn/sso/mallLogin"
+ # 组装请求报文
+ request_body = {"userName": self.username, "password": self.password, "validateCode": code, "uuid": uuid_handle}
+ # print(request_body)
+ # 发送请求
+ result = requests.post(cmdc_url, params=request_body)
+ # 获取预期结果
+ # check_dict = commonFuc().get_business_data(module, "checkDict")
+ # print(check_dict)
+ # # 断言实际结果中是否包含预期结果的内容
+ # commonFuc().check_result(check_dict, result)
+ result = json.loads(result.content)
+ token = commonFuc().analysis_json('accessToken', result)
+ return token
diff --git "a/air_case/cmdc_login/\345\220\216\345\217\260\347\256\241\347\220\206\347\263\273\347\273\237\347\231\273\345\275\225/\345\220\216\345\217\260\347\256\241\347\220\206\347\263\273\347\273\237\347\231\273\345\275\225.py" "b/air_case/cmdc_login/\345\220\216\345\217\260\347\256\241\347\220\206\347\263\273\347\273\237\347\231\273\345\275\225/\345\220\216\345\217\260\347\256\241\347\220\206\347\263\273\347\273\237\347\231\273\345\275\225.py"
new file mode 100644
index 0000000000000000000000000000000000000000..5eec13c54b7d0aec726d6f58623d0dbe3b45e16b
--- /dev/null
+++ "b/air_case/cmdc_login/\345\220\216\345\217\260\347\256\241\347\220\206\347\263\273\347\273\237\347\231\273\345\275\225/\345\220\216\345\217\260\347\256\241\347\220\206\347\263\273\347\273\237\347\231\273\345\275\225.py"
@@ -0,0 +1,72 @@
+# -*- encoding=utf8 -*-
+
+__author__ = "liguangyu"
+
+"""
+case_tag:api,cmdc-dologin,运营后台管理系统登录,sit,bs
+"""
+from common.common_func import commonFuc
+import requests
+import uuid
+from common.verification_code_ocr import VerificationCodeOcr
+import json
+import os
+import hashlib
+
+
+module = "cmdc_login"
+
+
+class CmdcDoLogin():
+
+ """国药运营后台管理系统登录"""
+
+ def __init__(self, username, password):
+ self.username = username
+ self.password = password
+
+ def get_token(self):
+ # 获取唯一识别码
+ uuid_handle = uuid.uuid4()
+ # 获取验证码报文
+ param = {"uuid": uuid_handle}
+ # 获取多彩商城登录页面获取验证码地址
+ code_url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "getVerifyCode_url")
+ # code_url = "https://service-slb.cmic.com.cn/sso/getVerifyCode"
+ # 发送请求获取验证码
+ result = requests.get(code_url, params=param)
+ # print(result.content)
+ # 获取当前文件路径
+ BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
+ code_path = BASE_DIR + "/后台管理系统登录/verifycode.png"
+ # 获取到验证码存入本地文件
+ with open(code_path, 'wb') as f:
+ f.write(result.content)
+ # 识别并获取验证码
+ code = VerificationCodeOcr(code_path, "rainbow123","rainbow123").base64_api()
+ # 获取多彩商城登录地址
+ cmdc_url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "do_login_url")
+ # cmdc_url = "https://service-slb.cmic.com.cn/sso/doLogin"
+ md = hashlib.md5(self.password.encode()) # 创建md5对象
+ EncryptPassword = md.hexdigest() # 登录密码进行md5加密
+ print('加密后的密码', EncryptPassword) # 加密后的密码
+ # 组装请求报文
+ request_body = {"userName": self.username, "password": EncryptPassword, "validateCode": code, "uuid": uuid_handle}
+ # print(request_body)
+ # 发送请求
+ result = requests.post(cmdc_url, params=request_body)
+ # 获取预期结果
+ # check_dict = commonFuc().get_business_data(module, "checkDict")
+ # print(check_dict)
+ # # 断言实际结果中是否包含预期结果的内容
+ # commonFuc().check_result(check_dict, result)
+ result = json.loads(result.content)
+ print(result)
+ access_token = commonFuc().analysis_json('accessToken', result)
+ return access_token
+
+
+if __name__ == "__main__":
+ cmdc_access_token = CmdcDoLogin("Admin00111", "Aa123456").get_token()
+ print(cmdc_access_token)
+
diff --git "a/air_case/cmdc_login/\345\244\232\351\207\207\345\225\206\345\237\216\347\231\273\345\275\225.air/\345\244\232\351\207\207\345\225\206\345\237\216\347\231\273\345\275\225.py" "b/air_case/cmdc_login/\345\244\232\351\207\207\345\225\206\345\237\216\347\231\273\345\275\225.air/\345\244\232\351\207\207\345\225\206\345\237\216\347\231\273\345\275\225.py"
new file mode 100644
index 0000000000000000000000000000000000000000..0cba5924b12e0e2440c85364744cea0617952efb
--- /dev/null
+++ "b/air_case/cmdc_login/\345\244\232\351\207\207\345\225\206\345\237\216\347\231\273\345\275\225.air/\345\244\232\351\207\207\345\225\206\345\237\216\347\231\273\345\275\225.py"
@@ -0,0 +1,58 @@
+# -*- encoding=utf8 -*-
+__author__ = "liguangyu"
+
+"""
+case_tag:api,cmdc-maiilogin,多采商城登录,sit,bs
+"""
+from common.common_func import commonFuc
+import requests
+import uuid
+from common.verification_code_ocr import VerificationCodeOcr
+import json
+import os
+
+module = "cmdc_login"
+
+
+class CmdcMaiiLogin():
+ """多采商城登录"""
+
+ def __init__(self, username, password):
+ self.username = username
+ self.password = password
+
+ def get_token(self):
+ # 获取唯一识别码
+ uuid_handle = uuid.uuid4()
+ # 获取验证码报文
+ param = {"uuid": uuid_handle}
+ # 获取多采商城登录页面获取验证码地址
+ code_url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "getVerifyCode_url")
+ # code_url = "https://service-slb.cmic.com.cn/sso/getVerifyCode"
+ # 发送请求获取验证码
+ result = requests.get(code_url, params=param)
+ # print(result.content)
+ # 获取当前文件路径
+ BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
+ code_path = BASE_DIR + "/多采商城登录/verifycode.png"
+ # 获取到验证码存入本地文件
+ with open(code_path, 'wb') as f:
+ f.write(result.content)
+ # 识别并获取验证码
+ code = VerificationCodeOcr(code_path, "rainbow123", "rainbow123").base64_api()
+ # 获取多采商城登录地址
+ cmdc_url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "maii_login_url")
+ # cmdc_url = "https://service-slb.cmic.com.cn/sso/mallLogin"
+ # 组装请求报文
+ request_body = {"userName": self.username, "password": self.password, "validateCode": code, "uuid": uuid_handle}
+ # print(request_body)
+ # 发送请求
+ result = requests.post(cmdc_url, params=request_body)
+ # 获取预期结果
+ # check_dict = commonFuc().get_business_data(module, "checkDict")
+ # print(check_dict)
+ # # 断言实际结果中是否包含预期结果的内容
+ # commonFuc().check_result(check_dict, result)
+ result = json.loads(result.content)
+ token = commonFuc().analysis_json('accessToken', result)
+ return token
diff --git "a/air_case/cmdc_login/\345\244\232\351\207\207\345\225\206\345\237\216\347\231\273\345\275\225/\345\244\232\351\207\207\345\225\206\345\237\216\347\231\273\345\275\225.py" "b/air_case/cmdc_login/\345\244\232\351\207\207\345\225\206\345\237\216\347\231\273\345\275\225/\345\244\232\351\207\207\345\225\206\345\237\216\347\231\273\345\275\225.py"
new file mode 100644
index 0000000000000000000000000000000000000000..6563c76b3aa988ddc4f1282c23f1a78304c007a2
--- /dev/null
+++ "b/air_case/cmdc_login/\345\244\232\351\207\207\345\225\206\345\237\216\347\231\273\345\275\225/\345\244\232\351\207\207\345\225\206\345\237\216\347\231\273\345\275\225.py"
@@ -0,0 +1,63 @@
+# -*- encoding=utf8 -*-
+__author__ = "liguangyu"
+
+"""
+case_tag:api,cmdc-maiilogin,多采商城登录,sit,bs
+"""
+from common.common_func import commonFuc
+import requests
+import uuid
+from common.verification_code_ocr import VerificationCodeOcr
+import json
+import os
+
+module = "cmdc_login"
+
+
+class CmdcMaiiLogin():
+ """多采商城登录"""
+
+ def __init__(self, username, password):
+ self.username = username
+ self.password = password
+
+ def get_token(self):
+ # 获取唯一识别码
+ uuid_handle = uuid.uuid4()
+ # 获取验证码报文
+ param = {"uuid": uuid_handle}
+ # 获取多采商城登录页面获取验证码地址
+ code_url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "getVerifyCode_url")
+ # code_url = "https://service-uat.gyqxmall.com/sso/getVerifyCode"
+ # 发送请求获取验证码
+ result = requests.get(code_url, params=param)
+ # print(result.content)
+ # 获取当前文件路径
+ BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
+ code_path = BASE_DIR + "/多采商城登录/verifycode.png"
+ # 获取到验证码存入本地文件
+ with open(code_path, 'wb') as f:
+ f.write(result.content)
+ # 识别并获取验证码
+ code = VerificationCodeOcr(code_path, "rainbow123", "rainbow123").base64_api()
+ # 获取多采商城登录地址
+ cmdc_url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "maii_login_url")
+ # cmdc_url = "https://service-uat.gyqxmall.com/sso/mallLogin"
+ # 组装请求报文
+ request_body = {"userName": self.username, "password": self.password, "validateCode": code, "uuid": uuid_handle}
+ # 发送请求
+ result = requests.post(cmdc_url, params=request_body)
+ # 获取预期结果
+ # check_dict = commonFuc().get_business_data(module, "checkDict")
+ # print(check_dict)
+ # # 断言实际结果中是否包含预期结果的内容
+ # commonFuc().check_result(check_dict, result)
+ result = json.loads(result.content)
+ print(result)
+ token = commonFuc().analysis_json('accessToken', result)
+ return token
+
+
+if __name__ == "__main__":
+ cmdc_access_token = CmdcMaiiLogin("BJ0621", "Aa123456").get_token()
+ print(cmdc_access_token)
\ No newline at end of file
diff --git "a/air_case/cmdc_product_list_query/\345\225\206\345\223\201\345\210\227\350\241\250_\344\273\243\345\256\242\344\270\213\345\215\225.air/\345\225\206\345\223\201\345\210\227\350\241\250_\344\273\243\345\256\242\344\270\213\345\215\225.py" "b/air_case/cmdc_product_list_query/\345\225\206\345\223\201\345\210\227\350\241\250_\344\273\243\345\256\242\344\270\213\345\215\225.air/\345\225\206\345\223\201\345\210\227\350\241\250_\344\273\243\345\256\242\344\270\213\345\215\225.py"
new file mode 100644
index 0000000000000000000000000000000000000000..ffea539467e44a3b5248d54d99252ec7c9d58381
--- /dev/null
+++ "b/air_case/cmdc_product_list_query/\345\225\206\345\223\201\345\210\227\350\241\250_\344\273\243\345\256\242\344\270\213\345\215\225.air/\345\225\206\345\223\201\345\210\227\350\241\250_\344\273\243\345\256\242\344\270\213\345\215\225.py"
@@ -0,0 +1,49 @@
+# -*- encoding=utf8 -*-
+__author__ = "liguangyu"
+
+"""
+case_tag:cmdc_api,cmdc商品列表_代客下单,2250,2250-25,sit,bs
+主数据平台:运营后台管理系统获取商品列表接口
+"""
+
+from common.common_func import commonFuc
+from air_case.cmdc_login.后台管理系统登录.后台管理系统登录 import CmdcDoLogin
+import requests
+import json
+
+module = "cmdc_product_list_query"
+
+# 第一步登录后台管理系统获取cmdc_access_token
+# 获取登录所需账号密码
+username = commonFuc().get_business_data(module, "username")
+password = commonFuc().get_business_data(module, "password")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcDoLogin(username, password).get_token()
+headers = commonFuc().get_business_data(module, "json_headers", cmdc_access_token)
+
+# 第二步获取客户列表
+url2 = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url2")
+request_body2 = commonFuc().get_business_data(module, "payload2")
+result2 = requests.post(url2, json=request_body2, headers=headers)
+result2 = json.loads(result2.content)
+user_no = result2["data"]["list"][0]["userNo"]
+
+# 第二步获取客户对应的商品列表
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url1")
+request_body = commonFuc().get_business_data(module, "payload1", user_no)
+
+"""
+ 场景:获取商品列表(代客下单)
+ 用例名称:获取商品列表(代客下单)
+ 输出:{"success":true,"code":"200","message":"OK"}
+"""
+
+# 发送请求
+result = requests.get(url, params=request_body, headers=headers)
+result = json.loads(result.content)
+# print(result)
+# 获取预期结果
+check_dict = commonFuc().get_business_data(module, "checkDict1")
+print(check_dict)
+# 断言实际结果中是否包含预期结果的内容
+commonFuc().check_result(check_dict, result)
diff --git "a/air_case/cmdc_product_list_query/\345\225\206\345\223\201\345\210\227\350\241\250_\345\277\253\351\200\237\344\270\213\345\215\225.air/\345\225\206\345\223\201\345\210\227\350\241\250_\345\277\253\351\200\237\344\270\213\345\215\225.py" "b/air_case/cmdc_product_list_query/\345\225\206\345\223\201\345\210\227\350\241\250_\345\277\253\351\200\237\344\270\213\345\215\225.air/\345\225\206\345\223\201\345\210\227\350\241\250_\345\277\253\351\200\237\344\270\213\345\215\225.py"
new file mode 100644
index 0000000000000000000000000000000000000000..a172d1f5e1d585f8730d92082ca4c95a6e083e38
--- /dev/null
+++ "b/air_case/cmdc_product_list_query/\345\225\206\345\223\201\345\210\227\350\241\250_\345\277\253\351\200\237\344\270\213\345\215\225.air/\345\225\206\345\223\201\345\210\227\350\241\250_\345\277\253\351\200\237\344\270\213\345\215\225.py"
@@ -0,0 +1,69 @@
+# -*- encoding=utf8 -*-
+__author__ = "liguangyu"
+
+"""
+case_tag:cmdc_api,cmdc获取商品列表(快速下单),2252,2252-43,sit,bs
+主数据平台:多采商城商品列表接口
+"""
+
+from common.common_func import commonFuc
+from air_case.cmdc_login.多采商城登录.多采商城登录 import CmdcMaiiLogin
+import requests
+import json
+
+
+module = "cmdc_product_list_query"
+# 第一步登录多采商城获取cmdc_access_token
+# 获取登录所需账号密码
+username = commonFuc().get_business_data(module, "username1")
+password = commonFuc().get_business_data(module, "password1")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcMaiiLogin(username, password).get_token()
+headers = commonFuc().get_business_data(module, "json_headers1", cmdc_access_token)
+
+# 第二步查询站点信息
+url10 = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url10")
+request_body10 = commonFuc().get_business_data(module, "payload10")
+
+# 发送请求
+result10 = requests.post(url10, json=request_body10, headers=headers)
+result10 = json.loads(result10.content)
+
+# 获取站点companyId
+company_id = result10["data"][3]["companyId"]
+# 第二步查询站点对应的JDEcode
+url11 = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url11")
+request_body11 = commonFuc().get_business_data(module, "payload11", company_id)
+
+# 发送请求
+result11 = requests.get(url11, params=request_body11, headers=headers)
+result11 = json.loads(result11.content)
+company_code = result11["data"]["companyCode"]
+
+# 第四步切换站点
+url12 = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url12")
+request_body12 = commonFuc().get_business_data(module, "payload12", company_id, company_code)
+
+# 发送请求
+result12 = requests.post(url12, json=request_body12, headers=headers)
+result12 = json.loads(result12.content)
+
+# 第四步查询站点对应的商品信息
+url13 = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url13")
+
+"""
+ 场景:获取商品列表(快速下单)
+ 用例名称:获取商品列表(快速下单)
+ 输出:{"success":true,"code":"200","message":"OK","data":"ok"}
+"""
+# 发送请求
+# request_body13 = commonFuc().get_business_data(module, "payload13")
+# print(request_body13)
+result = requests.get(url13, headers=headers)
+result = json.loads(result.content)
+# 获取预期结果
+check_dict = commonFuc().get_business_data(module, "checkDict13")
+print(check_dict)
+# 断言实际结果中是否包含预期结果的内容
+commonFuc().check_result(check_dict, result)
+
diff --git "a/air_case/cmdc_product_list_query/\350\216\267\345\217\226\345\256\242\346\210\267\345\210\227\350\241\250.air/\350\216\267\345\217\226\345\256\242\346\210\267\345\210\227\350\241\250.py" "b/air_case/cmdc_product_list_query/\350\216\267\345\217\226\345\256\242\346\210\267\345\210\227\350\241\250.air/\350\216\267\345\217\226\345\256\242\346\210\267\345\210\227\350\241\250.py"
new file mode 100644
index 0000000000000000000000000000000000000000..d6b7cfbaadad660799368ce47d3d453d8c42bfd9
--- /dev/null
+++ "b/air_case/cmdc_product_list_query/\350\216\267\345\217\226\345\256\242\346\210\267\345\210\227\350\241\250.air/\350\216\267\345\217\226\345\256\242\346\210\267\345\210\227\350\241\250.py"
@@ -0,0 +1,40 @@
+# -*- encoding=utf8 -*-
+__author__ = "liguangyu"
+
+"""
+case_tag:cmdc_api,cmdc获取客户列表,2250,2250-26,sit,bs
+主数据平台:运营后台管理系统获取客户列表接口
+"""
+
+from common.common_func import commonFuc
+from air_case.cmdc_login.后台管理系统登录.后台管理系统登录 import CmdcDoLogin
+import requests
+import json
+
+
+module = "cmdc_product_list_query"
+
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url2")
+print(url)
+# 获取登录所需账号密码
+username = commonFuc().get_business_data(module, "username")
+password = commonFuc().get_business_data(module, "password")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcDoLogin(username, password).get_token()
+headers = commonFuc().get_business_data(module, "json_headers", cmdc_access_token)
+request_body = commonFuc().get_business_data(module, "payload2")
+
+"""
+ 场景:获取客户列表(代客下单)
+ 用例名称:获取客户列表(代客下单)
+ 输出:{"success":true,"code":"200","message":"OK"}
+"""
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+# print(result)
+# 获取预期结果
+check_dict = commonFuc().get_business_data(module, "checkDict2")
+print(check_dict)
+# 断言实际结果中是否包含预期结果的内容
+commonFuc().check_result(check_dict, result)
diff --git "a/air_case/cmdc_purchase_list/\351\207\207\350\264\255\345\215\225\346\237\245\350\257\242.air/\351\207\207\350\264\255\345\215\225\346\237\245\350\257\242.py" "b/air_case/cmdc_purchase_list/\351\207\207\350\264\255\345\215\225\346\237\245\350\257\242.air/\351\207\207\350\264\255\345\215\225\346\237\245\350\257\242.py"
new file mode 100644
index 0000000000000000000000000000000000000000..b6ab63898677eff826f10da0e6f6a1af9b327120
--- /dev/null
+++ "b/air_case/cmdc_purchase_list/\351\207\207\350\264\255\345\215\225\346\237\245\350\257\242.air/\351\207\207\350\264\255\345\215\225\346\237\245\350\257\242.py"
@@ -0,0 +1,41 @@
+# -*- encoding=utf8 -*-
+__author__ = "liguangyu"
+
+"""
+case_tag:cmdc_api,cmdc采购单查询,2250,2250-27,sit,bs
+主数据平台:运营后台管理系统采购单查询接口
+"""
+
+from common.common_func import commonFuc
+from air_case.cmdc_login.后台管理系统登录.后台管理系统登录 import CmdcDoLogin
+import requests
+import json
+
+
+module = "cmdc_purchase_list"
+
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url")
+# print(url)
+# 获取登录所需账号密码
+username = commonFuc().get_business_data(module, "username")
+password = commonFuc().get_business_data(module, "password")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcDoLogin(username, password).get_token()
+headers = commonFuc().get_business_data(module, "json_headers1", cmdc_access_token)
+request_body = commonFuc().get_business_data(module, "payload1")
+
+"""
+ 场景:传入正确参数,获取到采购单列表
+ 用例名称:获取采购单列表
+ 输出:{"success":true,"code":"200","message":null}
+"""
+
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+# print(result)
+# 获取预期结果
+check_dict = commonFuc().get_business_data(module, "checkDict2")
+print(check_dict)
+# 断言实际结果中是否包含预期结果的内容
+commonFuc().check_result(check_dict, result)
diff --git "a/air_case/cmdc_query_customer/\345\256\242\346\210\267\346\237\245\350\257\242.air/\345\256\242\346\210\267\346\237\245\350\257\242.py" "b/air_case/cmdc_query_customer/\345\256\242\346\210\267\346\237\245\350\257\242.air/\345\256\242\346\210\267\346\237\245\350\257\242.py"
new file mode 100644
index 0000000000000000000000000000000000000000..9a45831f14b07942ae5a018a5f2cea329e7f8471
--- /dev/null
+++ "b/air_case/cmdc_query_customer/\345\256\242\346\210\267\346\237\245\350\257\242.air/\345\256\242\346\210\267\346\237\245\350\257\242.py"
@@ -0,0 +1,41 @@
+# -*- encoding=utf8 -*-
+__author__ = "liguangyu"
+
+"""
+case_tag:cmdc_api,cmdc客户查询,2250,2250-28,sit,bs
+主数据平台:运营后台管理系统客户接口
+"""
+
+from common.common_func import commonFuc
+from air_case.cmdc_login.后台管理系统登录.后台管理系统登录 import CmdcDoLogin
+import requests
+import json
+
+
+module = "cmdc_query_customer"
+
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url")
+# print(url)
+# 获取登录所需账号密码
+username = commonFuc().get_business_data(module, "username")
+password = commonFuc().get_business_data(module, "password")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcDoLogin(username, password).get_token()
+headers = commonFuc().get_business_data(module, "json_headers1", cmdc_access_token)
+request_body = commonFuc().get_business_data(module, "payload1")
+
+"""
+ 场景:传入正确参数,获取到客户列表
+ 用例名称:获取客户列表
+ 输出:{"success":true,"code":"200","message":"OK"}
+"""
+
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+# print(result)
+# 获取预期结果
+check_dict = commonFuc().get_business_data(module, "checkDict2")
+print(check_dict)
+# 断言实际结果中是否包含预期结果的内容
+commonFuc().check_result(check_dict, result)
diff --git "a/air_case/cmdc_special_fresenius_group/\344\273\243\345\256\242\344\270\213\345\215\225_\345\245\227\345\214\205\346\270\205\345\215\225_\346\237\245\350\257\242\346\235\241\344\273\266\351\252\214\350\257\201.air/\344\273\243\345\256\242\344\270\213\345\215\225_\345\245\227\345\214\205\346\270\205\345\215\225_\346\237\245\350\257\242\346\235\241\344\273\266\351\252\214\350\257\201.py" "b/air_case/cmdc_special_fresenius_group/\344\273\243\345\256\242\344\270\213\345\215\225_\345\245\227\345\214\205\346\270\205\345\215\225_\346\237\245\350\257\242\346\235\241\344\273\266\351\252\214\350\257\201.air/\344\273\243\345\256\242\344\270\213\345\215\225_\345\245\227\345\214\205\346\270\205\345\215\225_\346\237\245\350\257\242\346\235\241\344\273\266\351\252\214\350\257\201.py"
new file mode 100644
index 0000000000000000000000000000000000000000..f09aec47195e392a87f228c2dc63844b40e64ba5
--- /dev/null
+++ "b/air_case/cmdc_special_fresenius_group/\344\273\243\345\256\242\344\270\213\345\215\225_\345\245\227\345\214\205\346\270\205\345\215\225_\346\237\245\350\257\242\346\235\241\344\273\266\351\252\214\350\257\201.air/\344\273\243\345\256\242\344\270\213\345\215\225_\345\245\227\345\214\205\346\270\205\345\215\225_\346\237\245\350\257\242\346\235\241\344\273\266\351\252\214\350\257\201.py"
@@ -0,0 +1,60 @@
+# -*- encoding=utf8 -*-
+__author__ = "liguangyu"
+
+"""
+case_tag:cmdc_api,cmdc代客下单_套包清单_查询条件验证,2264,2264-78,sit,bs
+主数据平台:运营后台管理系统套包清单获取接口
+"""
+
+from common.common_func import commonFuc
+from air_case.cmdc_login.后台管理系统登录.后台管理系统登录 import CmdcDoLogin
+import requests
+import json
+
+module = "cmdc_special_fresenius_group"
+
+# 第一步登录后台运营平台获取cmdc_access_token
+# 获取登录所需账号密码
+username = commonFuc().get_business_data(module, "username1")
+password = commonFuc().get_business_data(module, "password1")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcDoLogin(username, password).get_token()
+headers = commonFuc().get_business_data(module, "json_headers2", cmdc_access_token)
+
+# 第二步套包清单列表查询
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url50")
+request_body = commonFuc().get_business_data(module, "payload50")
+# 发送请求
+result = requests.get(url, params=request_body, headers=headers)
+result = json.loads(result.content)
+# print(result)
+# 获取套包信息
+group_name = result["data"][0]["groupName"][:4]
+group_product_code = result["data"][0]["subList"][0]["product"]["productCode"]
+group_product_name = result["data"][0]["subList"][0]["product"]["productName"]
+group_option_str = result["data"][0]["subList"][0]["product"]["specifications"]
+document_no = result["data"][0]["documentNo"]
+product_line_code = result["data"][0]["productLineCode"]
+material_code_split = result["data"][0]["subList"][0]["product"]["materialCode"]
+
+# 第三步进行列表查询条件验证
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url50")
+request_body = commonFuc().get_business_data(module, "payload51", group_name, group_product_code, group_product_name,
+ group_option_str, document_no, product_line_code, material_code_split)
+
+"""
+ 场景: 代客下单_套包清单_查询条件验证
+ 用例名称:代客下单_套包清单_查询条件验证
+ 输出:{"groupPriceStatus": 0}
+"""
+
+# 发送请求
+result = requests.get(url, params=request_body, headers=headers)
+result = json.loads(result.content)
+# 获取结果中ref单号
+result = {"documentNo": result["data"][0]["documentNo"]}
+print(result)
+# 获取预期结果
+check_dict = commonFuc().get_business_data(module, "checkDict51", document_no)
+# 断言实际结果中是否包含预期结果的内容
+commonFuc().check_result(check_dict, result)
diff --git "a/air_case/cmdc_special_fresenius_group/\345\201\234\347\224\250_\345\245\227\345\214\205\345\215\217\350\256\256\347\211\271\344\273\267.air/\345\201\234\347\224\250_\345\245\227\345\214\205\345\215\217\350\256\256\347\211\271\344\273\267.py" "b/air_case/cmdc_special_fresenius_group/\345\201\234\347\224\250_\345\245\227\345\214\205\345\215\217\350\256\256\347\211\271\344\273\267.air/\345\201\234\347\224\250_\345\245\227\345\214\205\345\215\217\350\256\256\347\211\271\344\273\267.py"
new file mode 100644
index 0000000000000000000000000000000000000000..0e6f9c08139e8964e5fb093499becce23c660f08
--- /dev/null
+++ "b/air_case/cmdc_special_fresenius_group/\345\201\234\347\224\250_\345\245\227\345\214\205\345\215\217\350\256\256\347\211\271\344\273\267.air/\345\201\234\347\224\250_\345\245\227\345\214\205\345\215\217\350\256\256\347\211\271\344\273\267.py"
@@ -0,0 +1,61 @@
+# -*- encoding=utf8 -*-
+__author__ = "liguangyu"
+
+"""
+case_tag:cmdc_api,cmdc停用_套包协议特价,2264,2264-53,sit,bs
+主数据平台:运营后台管理系统套包协议特价列表查询接口和停用接口
+"""
+
+from common.common_func import commonFuc
+from air_case.cmdc_login.后台管理系统登录.后台管理系统登录 import CmdcDoLogin
+from common.db.db import mySql
+import requests
+import json
+
+module = "cmdc_special_fresenius_group"
+
+# 第一步登录后台运营平台获取cmdc_access_token
+# 获取登录所需账号密码
+username = commonFuc().get_business_data(module, "username1")
+password = commonFuc().get_business_data(module, "password1")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcDoLogin(username, password).get_token()
+headers = commonFuc().get_business_data(module, "json_headers2", cmdc_access_token)
+
+# 第二步套包协议特价列表查询
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url36")
+request_body = commonFuc().get_business_data(module, "payload36")
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+
+# 获取套包协议特价id
+fresenius_price_id = result["data"]["list"][0]["freseniusPriceId"]
+
+# 第三步进行套包协议特价停用操作
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url37")
+request_body = {"freseniusPriceIds": [fresenius_price_id], "groupPriceStatus": 0, "remarks": "套包协议特价停用功能验证"}
+
+"""
+ 场景: 停用_套包协议特价
+ 用例名称:停用_套包协议特价
+ 输出:{"groupPriceStatus": 0}
+"""
+
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+
+# 数据库操作
+mysql_handle = mySql()
+# 获取conf.ini文件中配置的数据库信息
+host, port, user, pwd = mysql_handle.getConf(db="cmdc_db")
+
+# 数据库查询特价单品数量
+sql = "SELECT t.groupPriceStatus FROM `cmdc-order`.tc_fresenius_agreement_price t WHERE freseniusPriceId = {};".format(fresenius_price_id)
+result = {"groupPriceStatus": mysql_handle.selectSql(host, port, user, pwd, "cmdc-order", sql)[0][0]}
+print(result)
+# 获取预期结果
+check_dict = commonFuc().get_business_data(module, "checkDict19")
+# 断言实际结果中是否包含预期结果的内容
+commonFuc().check_result(check_dict, result)
diff --git "a/air_case/cmdc_special_fresenius_group/\345\201\234\347\224\250_\346\211\271\351\207\217_\347\211\271\344\273\267\345\215\225\345\223\201.air/\345\201\234\347\224\250_\346\211\271\351\207\217_\347\211\271\344\273\267\345\215\225\345\223\201.py" "b/air_case/cmdc_special_fresenius_group/\345\201\234\347\224\250_\346\211\271\351\207\217_\347\211\271\344\273\267\345\215\225\345\223\201.air/\345\201\234\347\224\250_\346\211\271\351\207\217_\347\211\271\344\273\267\345\215\225\345\223\201.py"
new file mode 100644
index 0000000000000000000000000000000000000000..8904475c94890a6db4f5b33bf7d5bc76865a2ddd
--- /dev/null
+++ "b/air_case/cmdc_special_fresenius_group/\345\201\234\347\224\250_\346\211\271\351\207\217_\347\211\271\344\273\267\345\215\225\345\223\201.air/\345\201\234\347\224\250_\346\211\271\351\207\217_\347\211\271\344\273\267\345\215\225\345\223\201.py"
@@ -0,0 +1,95 @@
+# -*- encoding=utf8 -*-
+__author__ = "liguangyu"
+
+"""
+case_tag:cmdc_api,cmdc停用_批量_特价单品,2264,2264-64,sit,bs
+主数据平台:运营后台管理系统特价单品停用接口和导入接口
+"""
+
+from common.common_func import commonFuc
+from air_case.cmdc_login.后台管理系统登录.后台管理系统登录 import CmdcDoLogin
+from common.handle_excel import HandleExcel
+from common.db.db import mySql
+import requests
+import json
+import os
+
+module = "cmdc_special_fresenius_group"
+
+# 第一步登录后台运营平台获取cmdc_access_token
+# 获取登录所需账号密码
+username = commonFuc().get_business_data(module, "username1")
+password = commonFuc().get_business_data(module, "password1")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcDoLogin(username, password).get_token()
+headers = commonFuc().get_business_data(module, "json_headers2", cmdc_access_token)
+
+# 第二步特价单品列表查询
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url1")
+request_body = commonFuc().get_business_data(module, "payload_1")
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+
+# 获取特价单品对应的商品信息和客户信息
+product_code = result["data"]["list"][0]["freseniusProduct"]["productCode"]
+product_name = result["data"]["list"][0]["freseniusProduct"]["productName"]
+customer_code = result["data"]["list"][0]["customerCode"]
+customer_name = result["data"]["list"][0]["customerName"]
+
+# 获取文件
+BASE_DIR = os.path.dirname(os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))))
+file_path = BASE_DIR + "/data/cmdc_files/按条件停用单品与客户关系.xlsx"
+
+# 将商品信息和客户信息写入文件中
+excel = HandleExcel(file_path, "Sheet1")
+excel.write_data(row=2, column=1, value=product_code)
+excel.write_data(row=2, column=2, value=product_name)
+excel.write_data(row=2, column=3, value=customer_code)
+excel.write_data(row=2, column=4, value=customer_name)
+
+# 第二步文件导入
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url18")
+
+request_body = commonFuc().get_business_data(module, "payload18_0")
+
+# 获取文件
+file = open(file_path, "rb")
+files = {"file": file}
+# 发送请求
+result = requests.post(url, files=files, headers=headers, data=request_body)
+result = json.loads(result.content)
+
+# 导入成功后获取对应的套包id
+group_id = result["data"]["freseniusAgreementPrices"][0]["groupId"]
+fresenius_price_id = result["data"]["freseniusAgreementPrices"][0]["freseniusPriceId"]
+
+# 第三步进行特价单品删除操作
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url_open")
+request_body = {"freseniusPriceIds": [fresenius_price_id], "groupPriceStatus": 0, "remarks": "特价单品停用"}
+
+"""
+ 场景:停用_批量_特价单品
+ 用例名称:停用_批量_特价单品
+ 输出:{"groupPriceStatus": 0}
+"""
+
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+file.close()
+
+# 数据库操作
+mysql_handle = mySql()
+# 获取conf.ini文件中配置的数据库信息
+host, port, user, pwd = mysql_handle.getConf(db="cmdc_db")
+
+# 数据库查询特价单品数量
+sql = "SELECT t.groupPriceStatus FROM `cmdc-order`.tc_fresenius_agreement_price t WHERE groupId = {};".format(group_id)
+result = {"groupPriceStatus": mysql_handle.selectSql(host, port, user, pwd, "cmdc-order", sql)[0][0]}
+
+# 获取预期结果
+check_dict = commonFuc().get_business_data(module, "checkDict19")
+# 断言实际结果中是否包含预期结果的内容
+commonFuc().check_result(check_dict, result)
+
diff --git "a/air_case/cmdc_special_fresenius_group/\345\210\227\350\241\250\346\237\245\350\257\242\346\235\241\344\273\266\351\252\214\350\257\201_\345\245\227\345\214\205\345\215\217\350\256\256\347\211\271\344\273\267\347\256\241\347\220\206.air/\345\210\227\350\241\250\346\237\245\350\257\242\346\235\241\344\273\266\351\252\214\350\257\201_\345\245\227\345\214\205\345\215\217\350\256\256\347\211\271\344\273\267\347\256\241\347\220\206.py" "b/air_case/cmdc_special_fresenius_group/\345\210\227\350\241\250\346\237\245\350\257\242\346\235\241\344\273\266\351\252\214\350\257\201_\345\245\227\345\214\205\345\215\217\350\256\256\347\211\271\344\273\267\347\256\241\347\220\206.air/\345\210\227\350\241\250\346\237\245\350\257\242\346\235\241\344\273\266\351\252\214\350\257\201_\345\245\227\345\214\205\345\215\217\350\256\256\347\211\271\344\273\267\347\256\241\347\220\206.py"
new file mode 100644
index 0000000000000000000000000000000000000000..8ad331fc6f58c8e27de3e8a1361a1963aecd2111
--- /dev/null
+++ "b/air_case/cmdc_special_fresenius_group/\345\210\227\350\241\250\346\237\245\350\257\242\346\235\241\344\273\266\351\252\214\350\257\201_\345\245\227\345\214\205\345\215\217\350\256\256\347\211\271\344\273\267\347\256\241\347\220\206.air/\345\210\227\350\241\250\346\237\245\350\257\242\346\235\241\344\273\266\351\252\214\350\257\201_\345\245\227\345\214\205\345\215\217\350\256\256\347\211\271\344\273\267\347\256\241\347\220\206.py"
@@ -0,0 +1,83 @@
+# -*- encoding=utf8 -*-
+__author__ = "liguangyu"
+
+"""
+case_tag:cmdc_api,cmdc列表查询条件验证_套包协议特价管理,2264,2264-57,sit,bs
+主数据平台:后台运营系统套包协议特价查询接口
+"""
+
+from common.common_func import commonFuc
+from air_case.cmdc_login.后台管理系统登录.后台管理系统登录 import CmdcDoLogin
+import requests
+import json
+
+module = "cmdc_special_fresenius_group"
+
+# 第一步登录后台运营平台获取cmdc_access_token
+# 获取登录所需账号密码
+username = commonFuc().get_business_data(module, "username1")
+password = commonFuc().get_business_data(module, "password1")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcDoLogin(username, password).get_token()
+headers = commonFuc().get_business_data(module, "json_headers", cmdc_access_token)
+
+# 第二步套包协议特价查询
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url3")
+request_body = commonFuc().get_business_data(module, "payload3")
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+
+
+# 此函数用于当x为none时,进行空字符串替换
+def func(x):
+ if x is None:
+ x = ""
+ return x
+ else:
+ return x
+
+
+# 获取套包信息
+group_code = result["data"]["list"][0]["groupCode"]
+group_name = result["data"]["list"][0]["groupName"]
+product_code = result["data"]["list"][0]["products"][0]["productCode"]
+product_info = result["data"]["list"][0]["products"][0]["productName"]
+material_code = result["data"]["list"][0]["products"][0]["materialCode"]
+manufacturer_list = result["data"]["list"][0]["products"][0]["manufacturer"]
+productLine_name = result["data"]["list"][0]["productLineName"]
+description = result["data"]["list"][0]["products"][0]["description"]
+manufacturerProduct_desc = func(result["data"]["list"][0]["products"][0]["manufacturerProductDesc"])
+manufacturerProduct_no = func(result["data"]["list"][0]["products"][0]["manufacturerProductNo"])
+customer_code = func(result["data"]["list"][0]["products"][0]["customerCode"])
+customer_name = func(result["data"]["list"][0]["products"][0]["customerName"])
+manufacturer_user_no = func(result["data"]["list"][0]["products"][0]["manufacturerUserNo"])
+manufacturer_user_desc = func(result["data"]["list"][0]["products"][0]["manufacturerUserDesc"])
+document_no = result["data"]["list"][0]["documentNo"]
+status = result["data"]["list"][0]["status"]
+group_price_status = result["data"]["list"][0]["groupPriceStatus"]
+
+# 第三步进行查询条件验证
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url3")
+request_body = commonFuc().get_business_data(module, "payload13", group_code, group_name, product_code, product_info,
+ material_code, manufacturer_list, productLine_name, description,
+ manufacturerProduct_desc,
+ manufacturerProduct_no, customer_code, customer_name, manufacturer_user_no,
+ manufacturer_user_desc, document_no, status, group_price_status)
+
+"""
+ 场景: 套包协议特价管理列表查询条件验证
+ 用例名称:列表查询条件验证_套包协议特价管理
+ 输出:{"groupCode":"%s"}
+"""
+
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+
+# 获取套包协议价信息groupCode
+result = {"groupCode": result["data"]["list"][0]["groupCode"]}
+# 获取预期结果
+check_dict = commonFuc().get_business_data(module, "checkDict13", group_code)
+# 断言实际结果中是否包含预期结果的内容
+commonFuc().check_result(check_dict, result)
diff --git "a/air_case/cmdc_special_fresenius_group/\345\210\227\350\241\250\346\237\245\350\257\242\346\235\241\344\273\266\351\252\214\350\257\201_\345\245\227\345\214\205\346\255\243\344\273\267\347\256\241\347\220\206.air/\345\210\227\350\241\250\346\237\245\350\257\242\346\235\241\344\273\266\351\252\214\350\257\201_\345\245\227\345\214\205\346\255\243\344\273\267\347\256\241\347\220\206.py" "b/air_case/cmdc_special_fresenius_group/\345\210\227\350\241\250\346\237\245\350\257\242\346\235\241\344\273\266\351\252\214\350\257\201_\345\245\227\345\214\205\346\255\243\344\273\267\347\256\241\347\220\206.air/\345\210\227\350\241\250\346\237\245\350\257\242\346\235\241\344\273\266\351\252\214\350\257\201_\345\245\227\345\214\205\346\255\243\344\273\267\347\256\241\347\220\206.py"
new file mode 100644
index 0000000000000000000000000000000000000000..2d126cabb42bcb8db93f58e0e1fc7dbdcb5ac6d4
--- /dev/null
+++ "b/air_case/cmdc_special_fresenius_group/\345\210\227\350\241\250\346\237\245\350\257\242\346\235\241\344\273\266\351\252\214\350\257\201_\345\245\227\345\214\205\346\255\243\344\273\267\347\256\241\347\220\206.air/\345\210\227\350\241\250\346\237\245\350\257\242\346\235\241\344\273\266\351\252\214\350\257\201_\345\245\227\345\214\205\346\255\243\344\273\267\347\256\241\347\220\206.py"
@@ -0,0 +1,81 @@
+# -*- encoding=utf8 -*-
+__author__ = "liguangyu"
+
+"""
+case_tag:cmdc_api,cmdc列表查询条件验证_套包正价管理,2264,2264-50,sit,bs
+主数据平台:后台运营系统套包正价查询接口
+"""
+
+from common.common_func import commonFuc
+from air_case.cmdc_login.后台管理系统登录.后台管理系统登录 import CmdcDoLogin
+import requests
+import json
+
+module = "cmdc_special_fresenius_group"
+
+# 第一步登录后台运营平台获取cmdc_access_token
+# 获取登录所需账号密码
+username = commonFuc().get_business_data(module, "username1")
+password = commonFuc().get_business_data(module, "password1")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcDoLogin(username, password).get_token()
+headers = commonFuc().get_business_data(module, "json_headers", cmdc_access_token)
+
+# 第二步套包正价列表查询
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url30")
+request_body = commonFuc().get_business_data(module, "payload30")
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+
+
+# 此函数用于当x为none时,进行空字符串替换
+def func(x):
+ if x is None:
+ x = ""
+ return x
+ else:
+ return x
+
+
+# 获取套包信息
+group_code = result["data"]["list"][0]["groupCode"]
+group_name = result["data"]["list"][0]["groupName"]
+product_code = result["data"]["list"][0]["products"][0]["productCode"]
+product_info = result["data"]["list"][0]["products"][0]["productName"]
+material_code = result["data"]["list"][0]["products"][0]["materialCode"]
+manufacturer_list = result["data"]["list"][0]["products"][0]["manufacturer"]
+productLine_name = result["data"]["list"][0]["productLineName"]
+description = result["data"]["list"][0]["products"][0]["description"]
+manufacturerProduct_desc = func(result["data"]["list"][0]["products"][0]["manufacturerProductDesc"])
+manufacturerProduct_no = func(result["data"]["list"][0]["products"][0]["manufacturerProductNo"])
+customer_code = func(result["data"]["list"][0]["products"][0]["customerCode"])
+customer_name = func(result["data"]["list"][0]["products"][0]["customerName"])
+manufacturer_user_no = func(result["data"]["list"][0]["products"][0]["manufacturerUserNo"])
+manufacturer_user_desc = func(result["data"]["list"][0]["products"][0]["manufacturerUserDesc"])
+status = result["data"]["list"][0]["status"]
+
+# 第三步进行查询条件验证
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url30")
+request_body = commonFuc().get_business_data(module, "payload31", group_code, group_name, product_code, product_info,
+ material_code, manufacturer_list, productLine_name, description,
+ manufacturerProduct_desc,
+ manufacturerProduct_no, customer_code, customer_name, manufacturer_user_no,
+ manufacturer_user_desc, status)
+
+"""
+ 场景: 套包正价管理列表查询条件验证
+ 用例名称:列表查询条件验证_套包正价管理
+ 输出:{"groupCode":"%s"}
+"""
+
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+
+# 获取套包正价信息groupCode
+result = {"groupCode": result["data"]["list"][0]["groupCode"]}
+# 获取预期结果
+check_dict = commonFuc().get_business_data(module, "checkDict31", group_code)
+# 断言实际结果中是否包含预期结果的内容
+commonFuc().check_result(check_dict, result)
diff --git "a/air_case/cmdc_special_fresenius_group/\345\210\227\350\241\250\346\237\245\350\257\242\346\235\241\344\273\266\351\252\214\350\257\201_\345\256\242\346\210\267\345\210\227\350\241\250.air/\345\210\227\350\241\250\346\237\245\350\257\242\346\235\241\344\273\266\351\252\214\350\257\201_\345\256\242\346\210\267\345\210\227\350\241\250.py" "b/air_case/cmdc_special_fresenius_group/\345\210\227\350\241\250\346\237\245\350\257\242\346\235\241\344\273\266\351\252\214\350\257\201_\345\256\242\346\210\267\345\210\227\350\241\250.air/\345\210\227\350\241\250\346\237\245\350\257\242\346\235\241\344\273\266\351\252\214\350\257\201_\345\256\242\346\210\267\345\210\227\350\241\250.py"
new file mode 100644
index 0000000000000000000000000000000000000000..ed8eaf866dc67b4393348efdefbe5da404c269ab
--- /dev/null
+++ "b/air_case/cmdc_special_fresenius_group/\345\210\227\350\241\250\346\237\245\350\257\242\346\235\241\344\273\266\351\252\214\350\257\201_\345\256\242\346\210\267\345\210\227\350\241\250.air/\345\210\227\350\241\250\346\237\245\350\257\242\346\235\241\344\273\266\351\252\214\350\257\201_\345\256\242\346\210\267\345\210\227\350\241\250.py"
@@ -0,0 +1,54 @@
+# -*- encoding=utf8 -*-
+__author__ = "liguangyu"
+
+"""
+case_tag:cmdc_api,cmdc列表查询条件验证_客户列表,2264,2264-55,sit,bs
+主数据平台:后台运营系统客户列表查询接口
+"""
+
+from common.common_func import commonFuc
+from air_case.cmdc_login.后台管理系统登录.后台管理系统登录 import CmdcDoLogin
+import requests
+import json
+
+module = "cmdc_special_fresenius_group"
+
+# 第一步登录后台运营平台获取cmdc_access_token
+# 获取登录所需账号密码
+username = commonFuc().get_business_data(module, "username1")
+password = commonFuc().get_business_data(module, "password1")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcDoLogin(username, password).get_token()
+headers = commonFuc().get_business_data(module, "json_headers", cmdc_access_token)
+
+# 第二步客户列表获取
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "customer_list_url")
+request_body = commonFuc().get_business_data(module, "customer_payload")
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+
+# 获取客户信息
+customer_code = result["data"]["list"][0]["customerCode"]
+customer_name = result["data"]["list"][0]["customerName"]
+
+# 第三步进行查询条件验证
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "customer_list_url")
+request_body = commonFuc().get_business_data(module, "payload16", customer_code, customer_name)
+
+"""
+ 场景: 列表查询条件验证_客户列表
+ 用例名称:列表查询条件验证_客户列表
+ 输出:{"customerCode":"%s"}
+"""
+
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+
+# 获取客户信息
+result = {"customerCode": result["data"]["list"][0]["customerCode"]}
+# 获取预期结果
+check_dict = commonFuc().get_business_data(module, "checkDict16", customer_code)
+# 断言实际结果中是否包含预期结果的内容
+commonFuc().check_result(check_dict, result)
diff --git "a/air_case/cmdc_special_fresenius_group/\345\210\227\350\241\250\346\237\245\350\257\242\346\235\241\344\273\266\351\252\214\350\257\201_\346\226\260\350\200\201\345\225\206\345\223\201\345\205\263\347\263\273\347\274\226\347\240\201.air/\345\210\227\350\241\250\346\237\245\350\257\242\346\235\241\344\273\266\351\252\214\350\257\201_\346\226\260\350\200\201\345\225\206\345\223\201\345\205\263\347\263\273\347\274\226\347\240\201.py" "b/air_case/cmdc_special_fresenius_group/\345\210\227\350\241\250\346\237\245\350\257\242\346\235\241\344\273\266\351\252\214\350\257\201_\346\226\260\350\200\201\345\225\206\345\223\201\345\205\263\347\263\273\347\274\226\347\240\201.air/\345\210\227\350\241\250\346\237\245\350\257\242\346\235\241\344\273\266\351\252\214\350\257\201_\346\226\260\350\200\201\345\225\206\345\223\201\345\205\263\347\263\273\347\274\226\347\240\201.py"
new file mode 100644
index 0000000000000000000000000000000000000000..e5509a983f76da1ba9b94280f8316e12dd58d16b
--- /dev/null
+++ "b/air_case/cmdc_special_fresenius_group/\345\210\227\350\241\250\346\237\245\350\257\242\346\235\241\344\273\266\351\252\214\350\257\201_\346\226\260\350\200\201\345\225\206\345\223\201\345\205\263\347\263\273\347\274\226\347\240\201.air/\345\210\227\350\241\250\346\237\245\350\257\242\346\235\241\344\273\266\351\252\214\350\257\201_\346\226\260\350\200\201\345\225\206\345\223\201\345\205\263\347\263\273\347\274\226\347\240\201.py"
@@ -0,0 +1,59 @@
+# -*- encoding=utf8 -*-
+__author__ = "liguangyu"
+
+"""
+case_tag:cmdc_api,cmdc列表查询条件验证_新老商品关系编码,2264,2264-67,sit,bs
+主数据平台:运营后台管理系统新老编码组列表查询接口
+"""
+
+from common.common_func import commonFuc
+from air_case.cmdc_login.后台管理系统登录.后台管理系统登录 import CmdcDoLogin
+import requests
+import json
+
+module = "cmdc_special_fresenius_group"
+
+# 第一步登录后台运营平台获取cmdc_access_token
+# 获取登录所需账号密码
+username = commonFuc().get_business_data(module, "username1")
+password = commonFuc().get_business_data(module, "password1")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcDoLogin(username, password).get_token()
+headers = commonFuc().get_business_data(module, "json_headers2", cmdc_access_token)
+
+# 获取新老商品关系编码列表
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url_product_code")
+request_body = commonFuc().get_business_data(module, "payload_product_code")
+# 发送请求
+result = requests.post(url, headers=headers, json=request_body)
+result = json.loads(result.content)
+
+# 获取新老编码组信息
+product_code = result["data"]["list"][0]["products"][0]["productCode"]
+product_info = result["data"]["list"][0]["products"][0]["productName"]
+material_code = result["data"]["list"][0]["products"][0]["materialCode"]
+manufacturer_list = result["data"]["list"][0]["products"][0]["manufacturer"]
+product_line_name = result["data"]["list"][0]["productLineName"]
+description = result["data"]["list"][0]["products"][0]["description"]
+status = result["data"]["list"][0]["status"]
+
+# 第二步进行列表查询条件验证
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url_product_code")
+request_body = commonFuc().get_business_data(module, "payload22", product_code, product_info, material_code,
+ manufacturer_list, product_line_name, description, status)
+
+"""
+ 场景:列表查询条件验证_新老商品关系编码
+ 用例名称:列表查询条件验证_新老商品关系编码
+ 输出:{"productCode":"%s"}
+"""
+
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+result = {"productCode": result["data"]["list"][0]["products"][0]["productCode"]}
+print(result)
+# 获取预期结果
+check_dict = commonFuc().get_business_data(module, "checkDict22", product_code)
+# 断言实际结果中是否包含预期结果的内容
+commonFuc().check_result(check_dict, result)
diff --git "a/air_case/cmdc_special_fresenius_group/\345\210\227\350\241\250\346\237\245\350\257\242\346\235\241\344\273\266\351\252\214\350\257\201_\347\211\271\344\273\267\345\215\225\345\223\201\347\256\241\347\220\206.air/\345\210\227\350\241\250\346\237\245\350\257\242\346\235\241\344\273\266\351\252\214\350\257\201_\347\211\271\344\273\267\345\215\225\345\223\201\347\256\241\347\220\206.py" "b/air_case/cmdc_special_fresenius_group/\345\210\227\350\241\250\346\237\245\350\257\242\346\235\241\344\273\266\351\252\214\350\257\201_\347\211\271\344\273\267\345\215\225\345\223\201\347\256\241\347\220\206.air/\345\210\227\350\241\250\346\237\245\350\257\242\346\235\241\344\273\266\351\252\214\350\257\201_\347\211\271\344\273\267\345\215\225\345\223\201\347\256\241\347\220\206.py"
new file mode 100644
index 0000000000000000000000000000000000000000..2ecdd7ee9636c2c5725bf20ada6d18d437b52839
--- /dev/null
+++ "b/air_case/cmdc_special_fresenius_group/\345\210\227\350\241\250\346\237\245\350\257\242\346\235\241\344\273\266\351\252\214\350\257\201_\347\211\271\344\273\267\345\215\225\345\223\201\347\256\241\347\220\206.air/\345\210\227\350\241\250\346\237\245\350\257\242\346\235\241\344\273\266\351\252\214\350\257\201_\347\211\271\344\273\267\345\215\225\345\223\201\347\256\241\347\220\206.py"
@@ -0,0 +1,80 @@
+# -*- encoding=utf8 -*-
+__author__ = "liguangyu"
+
+"""
+case_tag:cmdc_api,cmdc列表查询条件验证_特价单品管理,2264,2264-62,sit,bs
+主数据平台:后台运营系统特价单品查询接口
+"""
+
+from common.common_func import commonFuc
+from air_case.cmdc_login.后台管理系统登录.后台管理系统登录 import CmdcDoLogin
+import requests
+import json
+
+module = "cmdc_special_fresenius_group"
+
+# 第一步登录后台运营平台获取cmdc_access_token
+# 获取登录所需账号密码
+username = commonFuc().get_business_data(module, "username1")
+password = commonFuc().get_business_data(module, "password1")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcDoLogin(username, password).get_token()
+headers = commonFuc().get_business_data(module, "json_headers", cmdc_access_token)
+
+# 第二步特价单品查询
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url1")
+request_body = commonFuc().get_business_data(module, "payload1")
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+
+
+# 此函数用于当x为none时,进行空字符串替换
+def func(x):
+ if x is None:
+ x = ""
+ return x
+ else:
+ return x
+
+
+# 获取特价单品信息
+product_code = result["data"]["list"][0]["freseniusProduct"]["productCode"]
+product_info = result["data"]["list"][0]["freseniusProduct"]["productName"]
+material_code = result["data"]["list"][0]["freseniusProduct"]["materialCode"]
+manufacturer_list = result["data"]["list"][0]["freseniusProduct"]["manufacturer"]
+productLine_name = result["data"]["list"][0]["productLineName"]
+description = result["data"]["list"][0]["freseniusProduct"]["description"]
+manufacturerProduct_desc = func(result["data"]["list"][0]["freseniusProduct"]["manufacturerProductDesc"])
+manufacturerProduct_no = func(result["data"]["list"][0]["freseniusProduct"]["manufacturerProductNo"])
+customer_code = func(result["data"]["list"][0]["customerCode"])
+customer_name = func(result["data"]["list"][0]["customerName"])
+manufacturer_user_no = func(result["data"]["list"][0]["manufacturerUserNo"])
+manufacturer_user_desc = func(result["data"]["list"][0]["manufacturerUserDesc"])
+document_no = result["data"]["list"][0]["documentNo"]
+group_price_status = result["data"]["list"][0]["groupPriceStatus"]
+
+# 第三步进行查询条件验证
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url1")
+request_body = commonFuc().get_business_data(module, "payload14", product_code, product_info,
+ material_code, manufacturer_list, productLine_name, description,
+ manufacturerProduct_desc,
+ manufacturerProduct_no, customer_code, customer_name, manufacturer_user_no,
+ manufacturer_user_desc, document_no, group_price_status)
+
+"""
+ 场景: 列表查询条件验证_特价单品管理
+ 用例名称:列表查询条件验证_特价单品管理
+ 输出:{"productCode":"%s"}
+"""
+
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+
+# 获取特价单品code
+result = {"productCode": result["data"]["list"][0]["freseniusProduct"]["productCode"]}
+# 获取预期结果
+check_dict = commonFuc().get_business_data(module, "checkDict14", product_code)
+# 断言实际结果中是否包含预期结果的内容
+commonFuc().check_result(check_dict, result)
diff --git "a/air_case/cmdc_special_fresenius_group/\345\210\240\351\231\244_\346\211\271\351\207\217_\345\245\227\345\214\205\346\255\243\344\273\267.air/\345\210\240\351\231\244_\346\211\271\351\207\217_\345\245\227\345\214\205\346\255\243\344\273\267.py" "b/air_case/cmdc_special_fresenius_group/\345\210\240\351\231\244_\346\211\271\351\207\217_\345\245\227\345\214\205\346\255\243\344\273\267.air/\345\210\240\351\231\244_\346\211\271\351\207\217_\345\245\227\345\214\205\346\255\243\344\273\267.py"
new file mode 100644
index 0000000000000000000000000000000000000000..f5691a884a79e7ee6a7c20a52e6f67065333ca7c
--- /dev/null
+++ "b/air_case/cmdc_special_fresenius_group/\345\210\240\351\231\244_\346\211\271\351\207\217_\345\245\227\345\214\205\346\255\243\344\273\267.air/\345\210\240\351\231\244_\346\211\271\351\207\217_\345\245\227\345\214\205\346\255\243\344\273\267.py"
@@ -0,0 +1,93 @@
+# -*- encoding=utf8 -*-
+__author__ = "liguangyu"
+
+"""
+case_tag:cmdc_api,cmdc删除_批量_套包正价,2264,2264-60,sit,bs
+主数据平台:后台运营系统套包列表查询、套包正价导入、删除接口
+"""
+
+from common.common_func import commonFuc
+from air_case.cmdc_login.后台管理系统登录.后台管理系统登录 import CmdcDoLogin
+from common.handle_excel import HandleExcel
+from common.db.db import mySql
+import os
+import requests
+import json
+
+module = "cmdc_special_fresenius_group"
+
+# 第一步登录后台运营平台获取cmdc_access_token
+# 获取登录所需账号密码
+username = commonFuc().get_business_data(module, "username1")
+password = commonFuc().get_business_data(module, "password1")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcDoLogin(username, password).get_token()
+headers = commonFuc().get_business_data(module, "json_headers", cmdc_access_token)
+# 文件上传专用请求头
+headers1 = commonFuc().get_business_data(module, "json_headers2", cmdc_access_token)
+
+# 第二步套包正价列表获取
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url2")
+request_body = commonFuc().get_business_data(module, "payload2")
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+
+# 获取套包正价信息
+group_code = result["data"]["list"][0]["groupCode"]
+group_name = result["data"]["list"][0]["groupName"]
+
+# 获取文件
+BASE_DIR = os.path.dirname(os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))))
+file_path = BASE_DIR + "/data/cmdc_files/按条件删除正价套包.xlsx"
+
+# 将商品信息写入文件中
+excel = HandleExcel(file_path, "Sheet1")
+excel.write_data(row=2, column=1, value=group_code)
+excel.write_data(row=2, column=2, value=group_name)
+
+# 第三步进行文件导入
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url23")
+
+request_body = commonFuc().get_business_data(module, "payload23")
+
+# 获取文件
+file = open(file_path, "rb")
+files = {"file": file}
+
+# 发送请求
+result = requests.post(url, files=files, headers=headers1, data=request_body)
+result = json.loads(result.content)
+
+# 获取freseniusPriceIds用于后续删除操作
+fresenius_price_id = result["data"]["freseniusAgreementPrices"][0]["freseniusPriceId"]
+
+# 第四步进行套包正价确认删除
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url24")
+request_body = {"freseniusPriceIds": [fresenius_price_id], "groupPriceStatus": 0, "remarks": "套包正价删除操作验证"}
+
+"""
+ 场景: 删除_批量_套包正价验证
+ 用例名称:删除_批量_套包正价
+ 输出:{"groupPriceStatus": 0}
+"""
+
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+print(result)
+# 数据库操作
+mysql_handle = mySql()
+# 获取conf.ini文件中配置的数据库信息
+host, port, user, pwd = mysql_handle.getConf(db="cmdc_db")
+
+# 数据库查询已删除套包正价对应的状态
+sql = "SELECT t.groupPriceStatus FROM `cmdc-order`.tc_fresenius_agreement_price t WHERE freseniusPriceId = {};".format(
+ fresenius_price_id)
+result = {"groupPriceStatus": mysql_handle.selectSql(host, port, user, pwd, "cmdc-order", sql)[0][0]}
+print(result)
+# 获取预期结果
+check_dict = commonFuc().get_business_data(module, "checkDict23")
+# 断言实际结果中是否包含预期结果的内容
+commonFuc().check_result(check_dict, result)
+file.close()
diff --git "a/air_case/cmdc_special_fresenius_group/\345\215\225\344\270\252\346\226\260\345\242\236\351\252\214\350\257\201_\345\245\227\345\214\205\345\215\217\350\256\256\347\211\271\344\273\267.air/\345\215\225\344\270\252\346\226\260\345\242\236\351\252\214\350\257\201_\345\245\227\345\214\205\345\215\217\350\256\256\347\211\271\344\273\267.py" "b/air_case/cmdc_special_fresenius_group/\345\215\225\344\270\252\346\226\260\345\242\236\351\252\214\350\257\201_\345\245\227\345\214\205\345\215\217\350\256\256\347\211\271\344\273\267.air/\345\215\225\344\270\252\346\226\260\345\242\236\351\252\214\350\257\201_\345\245\227\345\214\205\345\215\217\350\256\256\347\211\271\344\273\267.py"
new file mode 100644
index 0000000000000000000000000000000000000000..e58995d778a702a19447ba60b02bb9e469885eb6
--- /dev/null
+++ "b/air_case/cmdc_special_fresenius_group/\345\215\225\344\270\252\346\226\260\345\242\236\351\252\214\350\257\201_\345\245\227\345\214\205\345\215\217\350\256\256\347\211\271\344\273\267.air/\345\215\225\344\270\252\346\226\260\345\242\236\351\252\214\350\257\201_\345\245\227\345\214\205\345\215\217\350\256\256\347\211\271\344\273\267.py"
@@ -0,0 +1,126 @@
+# -*- encoding=utf8 -*-
+__author__ = "liguangyu"
+
+"""
+case_tag:cmdc_api,cmdc单个新增验证_套包协议特价,2264,2264-56,sit,bs
+主数据平台:后台运营系统客户列表查询、套包列表查询、套包协议特价新增等接口
+"""
+
+from common.common_func import commonFuc
+from air_case.cmdc_login.后台管理系统登录.后台管理系统登录 import CmdcDoLogin
+from datetime import timedelta, date
+import random
+import requests
+import uuid
+import json
+
+module = "cmdc_special_fresenius_group"
+
+# 第一步登录后台运营平台获取cmdc_access_token
+# 获取登录所需账号密码
+username = commonFuc().get_business_data(module, "username1")
+password = commonFuc().get_business_data(module, "password1")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcDoLogin(username, password).get_token()
+headers = commonFuc().get_business_data(module, "json_headers", cmdc_access_token)
+
+# 第二步客户列表获取
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "customer_list_url")
+request_body = commonFuc().get_business_data(module, "customer_payload")
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+
+# 生成随机数
+customer_quantity = random.randint(1, len(result["data"]["list"]) - 1)
+# 客户信息获取
+customer_code = result["data"]["list"][customer_quantity]["customerCode"]
+customer_name = result["data"]["list"][customer_quantity]["customerName"]
+user_name = result["data"]["list"][customer_quantity]["userName"]
+
+# 第三步套包获取
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url25")
+request_body = commonFuc().get_business_data(module, "payload25")
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+
+# 生成套包随机数
+group_quantity = random.randint(1, len(result["data"]["list"]) - 1)
+# 获取套包信息
+fresenius_group = result["data"]["list"][group_quantity]
+product_json = result["data"]["list"][group_quantity]["products"]
+group_code = result["data"]["list"][group_quantity]["groupCode"]
+group_name = result["data"]["list"][group_quantity]["groupName"]
+id = result["data"]["list"][group_quantity]["products"][0]["id"]
+product_code = result["data"]["list"][group_quantity]["products"][0]["productCode"]
+product_name = result["data"]["list"][group_quantity]["products"][0]["productName"]
+manufacturer = result["data"]["list"][group_quantity]["products"][0]["manufacturer"]
+manufacturer_code = result["data"]["list"][group_quantity]["products"][0]["manufacturerCode"]
+option_str = result["data"]["list"][group_quantity]["products"][0]["optionStr"]
+measuring_unit = result["data"]["list"][group_quantity]["products"][0]["measuringUnit"]
+material_code = result["data"]["list"][group_quantity]["products"][0]["materialCode"]
+quantity = result["data"]["list"][group_quantity]["products"][0]["quantity"]
+
+# 随机生成日期
+start_date = date(2000, 1, 1)
+end_date = date.today()
+
+
+def random_date(start, end):
+ delta = end - start
+ random_days = random.randint(0, delta.days)
+ return start + timedelta(days=random_days)
+
+
+random_date = random_date(start_date, end_date)
+
+# 随机生成唯一字符串用于ref
+ref_random = str(uuid.uuid4())
+# 生成促销价格
+activity_unit_amount = random.randint(10, 10000)
+# 生成套包说明
+group_str = ""
+for i in product_json:
+ # 更新套包内每个商品活动价格
+ i.update({"activityUnitAmount": activity_unit_amount})
+ # 获取套包内包含商品信息
+ product_name = i["productName"]
+ option_str = i["optionStr"]
+ quantity = i["quantity"]
+ str1 = "{}({})*{}".format(product_name, option_str, quantity)
+ group_str = str1 + "+" + group_str
+# 生成套包说明
+group_str = "平台套包编号:{} || 套包名称:{}({})".format(group_code, group_name, group_str)
+# 更新请求报文中活动价格
+fresenius_group.update({"products": product_json})
+# 报文组装
+fresenius_group.update(commonFuc().get_business_data(module, "payload32", id, product_code, product_name, manufacturer,
+ manufacturer_code, option_str, measuring_unit, material_code,
+ quantity))
+
+# 第四步套包协议特价新增
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url35")
+request_body = {"manufacturerGroupName": "", "manufacturerGroupCode": "", "groupName": "", "limitPurchase": "",
+ "isLimit": 0, "freseniusGroup": fresenius_group, "groupStr": group_str, "customerCode": customer_code,
+ "userName": user_name, "customerName": customer_name, "documentNo": ref_random,
+ "time": [str(start_date), str(random_date)], "effectiveTime": str(start_date), "expirationTime": str(random_date)}
+
+print(request_body)
+
+"""
+
+ 场景: 单个新增验证_套包协议特价
+ 用例名称:单个新增验证_套包协议特价
+ 输出:{"success":true,"code":"200","message":"OK"}
+"""
+
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+print(result)
+
+# 获取预期结果
+check_dict = commonFuc().get_business_data(module, "checkDict20")
+# 断言实际结果中是否包含预期结果的内容
+commonFuc().check_result(check_dict, result)
diff --git "a/air_case/cmdc_special_fresenius_group/\345\215\225\344\270\252\346\226\260\345\242\236\351\252\214\350\257\201_\345\245\227\345\214\205\346\255\243\344\273\267_\346\214\207\345\256\232\345\256\242\346\210\267.air/\345\215\225\344\270\252\346\226\260\345\242\236\351\252\214\350\257\201_\345\245\227\345\214\205\346\255\243\344\273\267_\346\214\207\345\256\232\345\256\242\346\210\267.py" "b/air_case/cmdc_special_fresenius_group/\345\215\225\344\270\252\346\226\260\345\242\236\351\252\214\350\257\201_\345\245\227\345\214\205\346\255\243\344\273\267_\346\214\207\345\256\232\345\256\242\346\210\267.air/\345\215\225\344\270\252\346\226\260\345\242\236\351\252\214\350\257\201_\345\245\227\345\214\205\346\255\243\344\273\267_\346\214\207\345\256\232\345\256\242\346\210\267.py"
new file mode 100644
index 0000000000000000000000000000000000000000..88df161a0fa7e255bf09a9007a941e41035b9298
--- /dev/null
+++ "b/air_case/cmdc_special_fresenius_group/\345\215\225\344\270\252\346\226\260\345\242\236\351\252\214\350\257\201_\345\245\227\345\214\205\346\255\243\344\273\267_\346\214\207\345\256\232\345\256\242\346\210\267.air/\345\215\225\344\270\252\346\226\260\345\242\236\351\252\214\350\257\201_\345\245\227\345\214\205\346\255\243\344\273\267_\346\214\207\345\256\232\345\256\242\346\210\267.py"
@@ -0,0 +1,106 @@
+# -*- encoding=utf8 -*-
+__author__ = "liguangyu"
+
+"""
+case_tag:cmdc_api,cmdc单个新增验证_套包正价_指定客户,2264,2264-53,sit,bs
+主数据平台:后台运营系统客户列表查询、套包列表查询、套包正价新增等接口
+"""
+
+from common.common_func import commonFuc
+from air_case.cmdc_login.后台管理系统登录.后台管理系统登录 import CmdcDoLogin
+import random
+import requests
+import json
+
+module = "cmdc_special_fresenius_group"
+
+# 第一步登录后台运营平台获取cmdc_access_token
+# 获取登录所需账号密码
+username = commonFuc().get_business_data(module, "username1")
+password = commonFuc().get_business_data(module, "password1")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcDoLogin(username, password).get_token()
+headers = commonFuc().get_business_data(module, "json_headers", cmdc_access_token)
+
+# 第二步客户列表获取
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "customer_list_url")
+request_body = commonFuc().get_business_data(module, "customer_payload")
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+
+# 生成随机数
+customer_quantity = random.randint(1, len(result["data"]["list"]) - 1)
+# 客户信息获取
+customer_code = result["data"]["list"][customer_quantity]["customerCode"]
+customer_name = result["data"]["list"][customer_quantity]["customerName"]
+user_name = result["data"]["list"][customer_quantity]["userName"]
+
+# 第三步套包获取
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url25")
+request_body = commonFuc().get_business_data(module, "payload25")
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+
+# 生成套包随机数
+group_quantity = random.randint(1, len(result["data"]["list"]) - 1)
+# 获取套包信息
+fresenius_group = result["data"]["list"][group_quantity]
+product_json = result["data"]["list"][group_quantity]["products"]
+group_code = result["data"]["list"][group_quantity]["groupCode"]
+group_name = result["data"]["list"][group_quantity]["groupName"]
+id = result["data"]["list"][group_quantity]["products"][0]["id"]
+product_code = result["data"]["list"][group_quantity]["products"][0]["productCode"]
+product_name = result["data"]["list"][group_quantity]["products"][0]["productName"]
+manufacturer = result["data"]["list"][group_quantity]["products"][0]["manufacturer"]
+manufacturer_code = result["data"]["list"][group_quantity]["products"][0]["manufacturerCode"]
+option_str = result["data"]["list"][group_quantity]["products"][0]["optionStr"]
+measuring_unit = result["data"]["list"][group_quantity]["products"][0]["measuringUnit"]
+material_code = result["data"]["list"][group_quantity]["products"][0]["materialCode"]
+quantity = result["data"]["list"][group_quantity]["products"][0]["quantity"]
+
+# 生成促销价格
+activity_unit_amount = random.randint(10, 10000)
+# 生成套包说明
+group_str = ""
+for i in product_json:
+ # 更新套包内每个商品活动价格
+ i.update({"activityUnitAmount":activity_unit_amount})
+ # 获取套包内包含商品信息
+ product_name = i["productName"]
+ option_str = i["optionStr"]
+ quantity = i["quantity"]
+ str1 = "{}({})*{}".format(product_name, option_str, quantity)
+ group_str = str1 + "+" + group_str
+# 生成套包说明
+group_str = "平台套包编号:{} || 套包名称:{}({})".format(group_code, group_name, group_str)
+# 更新请求报文中活动价格
+fresenius_group.update({"products": product_json})
+# 报文组装
+fresenius_group.update(commonFuc().get_business_data(module, "payload32", id, product_code, product_name, manufacturer,
+ manufacturer_code, option_str, measuring_unit, material_code,
+ quantity))
+
+# 第四步套包正价新增
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url31")
+request_body = {"manufacturerGroupName": "", "manufacturerGroupCode": "", "groupName": "", "limitPurchase": "",
+ "isLimit": 1, "freseniusGroup": fresenius_group, "groupStr": group_str, "customerCode": customer_code,
+ "userName": user_name, "customerName": customer_name, "isRegularPrice": 2}
+print(request_body)
+"""
+
+ 场景: 单个新增验证_套包正价_指定客户
+ 用例名称:单个新增验证_套包正价_指定客户
+ 输出:{"success":true,"code":"200","message":"OK"}
+"""
+
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+print(result)
+
+# 获取预期结果
+check_dict = commonFuc().get_business_data(module, "checkDict20")
+# 断言实际结果中是否包含预期结果的内容
+commonFuc().check_result(check_dict, result)
diff --git "a/air_case/cmdc_special_fresenius_group/\345\220\257\347\224\250_\346\211\271\351\207\217_\347\211\271\344\273\267\345\215\225\345\223\201.air/\345\220\257\347\224\250_\346\211\271\351\207\217_\347\211\271\344\273\267\345\215\225\345\223\201.py" "b/air_case/cmdc_special_fresenius_group/\345\220\257\347\224\250_\346\211\271\351\207\217_\347\211\271\344\273\267\345\215\225\345\223\201.air/\345\220\257\347\224\250_\346\211\271\351\207\217_\347\211\271\344\273\267\345\215\225\345\223\201.py"
new file mode 100644
index 0000000000000000000000000000000000000000..e27a8e6986b44014f8771a80173c5d87f33c3375
--- /dev/null
+++ "b/air_case/cmdc_special_fresenius_group/\345\220\257\347\224\250_\346\211\271\351\207\217_\347\211\271\344\273\267\345\215\225\345\223\201.air/\345\220\257\347\224\250_\346\211\271\351\207\217_\347\211\271\344\273\267\345\215\225\345\223\201.py"
@@ -0,0 +1,102 @@
+# -*- encoding=utf8 -*-
+__author__ = "liguangyu"
+
+"""
+case_tag:cmdc_api,cmdc启用_批量_特价单品,2264,2264-63,sit,bs
+主数据平台:运营后台管理系统特价单品启用接口和导入接口
+"""
+
+from common.common_func import commonFuc
+from air_case.cmdc_login.后台管理系统登录.后台管理系统登录 import CmdcDoLogin
+from common.handle_excel import HandleExcel
+from common.db.db import mySql
+import requests
+import json
+import os
+
+module = "cmdc_special_fresenius_group"
+
+# 第一步登录后台运营平台获取cmdc_access_token
+# 获取登录所需账号密码
+username = commonFuc().get_business_data(module, "username1")
+password = commonFuc().get_business_data(module, "password1")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcDoLogin(username, password).get_token()
+headers = commonFuc().get_business_data(module, "json_headers2", cmdc_access_token)
+
+# 第二步特价单品列表查询
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url1")
+request_body = commonFuc().get_business_data(module, "payload_close")
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+
+# 获取特价单品对应的商品信息和客户信息
+product_code = result["data"]["list"][0]["freseniusProduct"]["productCode"]
+product_name = result["data"]["list"][0]["freseniusProduct"]["productName"]
+customer_code = result["data"]["list"][0]["customerCode"]
+customer_name = result["data"]["list"][0]["customerName"]
+
+# 获取文件
+BASE_DIR = os.path.dirname(os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))))
+file_path = BASE_DIR + "/data/cmdc_files/按条件启用单品与客户关系.xlsx"
+
+# 将商品信息和客户信息写入文件中
+excel = HandleExcel(file_path, "Sheet1")
+excel.write_data(row=2, column=1, value=product_code)
+excel.write_data(row=2, column=2, value=product_name)
+excel.write_data(row=2, column=3, value=customer_code)
+excel.write_data(row=2, column=4, value=customer_name)
+
+# 第二步文件导入
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url18")
+request_body = commonFuc().get_business_data(module, "payload18")
+
+# 获取文件
+file = open(file_path, "rb")
+files = {"file": file}
+# 发送请求
+result = requests.post(url, files=files, headers=headers, data=request_body)
+result = json.loads(result.content)
+print(result)
+# 导入成功后获取对应的套包id
+group_id = result["data"]["freseniusAgreementPrices"][0]["groupId"]
+fresenius_price_id = result["data"]["freseniusAgreementPrices"][0]["freseniusPriceId"]
+
+# 第三步进行特价单品删除操作
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url_open")
+request_body = {"freseniusPriceIds": [fresenius_price_id], "groupPriceStatus": 1, "remarks": "特价单品启用"}
+
+"""
+ 场景:启用_批量_特价单品
+ 用例名称:启用_批量_特价单品
+ 输出:{"groupPriceStatus": 1}
+"""
+
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+print(result)
+file.close()
+if result["success"]:
+ # 数据库操作
+ mysql_handle = mySql()
+ # 获取conf.ini文件中配置的数据库信息
+ host, port, user, pwd = mysql_handle.getConf(db="cmdc_db")
+
+ # 数据库查询特价单品数量
+ sql = "SELECT t.groupPriceStatus FROM `cmdc-order`.tc_fresenius_agreement_price t WHERE groupId = {};".format(
+ group_id)
+ print(sql)
+ result = {"groupPriceStatus": mysql_handle.selectSql(host, port, user, pwd, "cmdc-order", sql)[0][0]}
+ print(result)
+ # 获取预期结果
+ check_dict = commonFuc().get_business_data(module, "checkDict18")
+ # 断言实际结果中是否包含预期结果的内容
+ commonFuc().check_result(check_dict, result)
+else:
+ result = {"success": False, "code": "fresenius_agreement_price", "message": "客户【1071246】商品【14184540】存在效期冲突"}
+ # 获取预期结果
+ check_dict = commonFuc().get_business_data(module, "checkDict180")
+ # 断言实际结果中是否包含预期结果的内容
+ commonFuc().check_result(check_dict, result)
diff --git "a/air_case/cmdc_special_fresenius_group/\345\225\206\345\223\201\350\257\246\346\203\205\351\241\265_\345\245\227\345\214\205\345\215\217\350\256\256\344\273\267\346\230\276\347\244\272\351\252\214\350\257\201.air/\345\225\206\345\223\201\350\257\246\346\203\205\351\241\265_\345\245\227\345\214\205\345\215\217\350\256\256\344\273\267\346\230\276\347\244\272\351\252\214\350\257\201.py" "b/air_case/cmdc_special_fresenius_group/\345\225\206\345\223\201\350\257\246\346\203\205\351\241\265_\345\245\227\345\214\205\345\215\217\350\256\256\344\273\267\346\230\276\347\244\272\351\252\214\350\257\201.air/\345\225\206\345\223\201\350\257\246\346\203\205\351\241\265_\345\245\227\345\214\205\345\215\217\350\256\256\344\273\267\346\230\276\347\244\272\351\252\214\350\257\201.py"
new file mode 100644
index 0000000000000000000000000000000000000000..31cd66286d3622b16e024af5816a2db0859d39a1
--- /dev/null
+++ "b/air_case/cmdc_special_fresenius_group/\345\225\206\345\223\201\350\257\246\346\203\205\351\241\265_\345\245\227\345\214\205\345\215\217\350\256\256\344\273\267\346\230\276\347\244\272\351\252\214\350\257\201.air/\345\225\206\345\223\201\350\257\246\346\203\205\351\241\265_\345\245\227\345\214\205\345\215\217\350\256\256\344\273\267\346\230\276\347\244\272\351\252\214\350\257\201.py"
@@ -0,0 +1,70 @@
+# -*- encoding=utf8 -*-
+__author__ = "liguangyu"
+
+"""
+case_tag:cmdc_api,cmdc商品详情页_套包协议价显示验证,2252,2252-77,sit,bs
+涉及到接口:套包协议价列表查询、查询特殊套包详情接口
+"""
+
+from common.common_func import commonFuc
+from air_case.cmdc_login.后台管理系统登录.后台管理系统登录 import CmdcDoLogin
+from air_case.cmdc_login.多采商城登录.多采商城登录 import CmdcMaiiLogin
+import requests
+import json
+
+module = "cmdc_special_fresenius_group"
+# 第一步登录后台运营平台获取cmdc_access_token
+# 获取登录所需账号密码
+username = commonFuc().get_business_data(module, "username1")
+password = commonFuc().get_business_data(module, "password1")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcDoLogin(username, password).get_token()
+headers = commonFuc().get_business_data(module, "json_headers", cmdc_access_token)
+
+# 第二步套包协议价查询
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url3")
+request_body = commonFuc().get_business_data(module, "payload_10056821")
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+
+# 获取商品信息
+product_code = result["data"]["list"][0]["products"][0]["productCode"]
+company_code = result["data"]["list"][0]["companyCode"]
+document_no = result["data"]["list"][0]["documentNo"]
+group_price = result["data"]["list"][0]["groupPrice"]
+
+# 第三步登录多采商城获取token信息
+# 获取登录所需账号密码
+username = commonFuc().get_business_data(module, "username")
+password = commonFuc().get_business_data(module, "password")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcMaiiLogin(username, password).get_token()
+headers = commonFuc().get_business_data(module, "json_headers1", cmdc_access_token)
+
+# 进行站点切换
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url_website")
+request_body = commonFuc().get_business_data(module, "payload_website")
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+
+# 第四步获取商品对应的套包信息
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url47")
+request_body = commonFuc().get_business_data(module, "payload47", product_code, company_code)
+
+"""
+ 场景:商品详情页_套包协议价显示验证
+ 用例名称:商品详情页_套包协议价显示验证
+ 输出:{"groupPrice":"%s","documentNo":"%s"}
+"""
+
+# 发送请求
+result = requests.get(url, params=request_body, headers=headers)
+result = json.loads(result.content)
+# 获取商品详情页中套包正价信息
+result = {"groupPrice": result["data"][1]["groupPrice"], "documentNo": result["data"][1]["documentNo"]}
+print(result)
+# # 获取预期结果
+check_dict = commonFuc().get_business_data(module, "checkDict48", group_price, document_no)
+# # 断言实际结果中是否包含预期结果的内容
+commonFuc().check_result(check_dict, result)
diff --git "a/air_case/cmdc_special_fresenius_group/\345\225\206\345\223\201\350\257\246\346\203\205\351\241\265_\345\245\227\345\214\205\346\255\243\344\273\267\346\230\276\347\244\272\351\252\214\350\257\201.air/\345\225\206\345\223\201\350\257\246\346\203\205\351\241\265_\345\245\227\345\214\205\346\255\243\344\273\267\346\230\276\347\244\272\351\252\214\350\257\201.py" "b/air_case/cmdc_special_fresenius_group/\345\225\206\345\223\201\350\257\246\346\203\205\351\241\265_\345\245\227\345\214\205\346\255\243\344\273\267\346\230\276\347\244\272\351\252\214\350\257\201.air/\345\225\206\345\223\201\350\257\246\346\203\205\351\241\265_\345\245\227\345\214\205\346\255\243\344\273\267\346\230\276\347\244\272\351\252\214\350\257\201.py"
new file mode 100644
index 0000000000000000000000000000000000000000..194ce6f1e3bf4489484f7d7db299869ce206f399
--- /dev/null
+++ "b/air_case/cmdc_special_fresenius_group/\345\225\206\345\223\201\350\257\246\346\203\205\351\241\265_\345\245\227\345\214\205\346\255\243\344\273\267\346\230\276\347\244\272\351\252\214\350\257\201.air/\345\225\206\345\223\201\350\257\246\346\203\205\351\241\265_\345\245\227\345\214\205\346\255\243\344\273\267\346\230\276\347\244\272\351\252\214\350\257\201.py"
@@ -0,0 +1,70 @@
+# -*- encoding=utf8 -*-
+__author__ = "liguangyu"
+
+"""
+case_tag:cmdc_api,cmdc验证商品详情页面套包正价的展示,2252,2252-76,sit,bs
+涉及到接口:套包正价列表查询、查询特殊套包详情接口
+"""
+
+from common.common_func import commonFuc
+from air_case.cmdc_login.后台管理系统登录.后台管理系统登录 import CmdcDoLogin
+from air_case.cmdc_login.多采商城登录.多采商城登录 import CmdcMaiiLogin
+import requests
+import json
+
+module = "cmdc_special_fresenius_group"
+# 第一步登录后台运营平台获取cmdc_access_token
+# 获取登录所需账号密码
+username = commonFuc().get_business_data(module, "username1")
+password = commonFuc().get_business_data(module, "password1")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcDoLogin(username, password).get_token()
+headers = commonFuc().get_business_data(module, "json_headers", cmdc_access_token)
+
+# 第二步套包正价查询
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url2")
+request_body = commonFuc().get_business_data(module, "payload_10056821")
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+
+# 获取商品信息
+product_code = result["data"]["list"][0]["products"][0]["productCode"]
+company_code = result["data"]["list"][0]["companyCode"]
+group_name = result["data"]["list"][0]["groupName"]
+group_price = result["data"]["list"][0]["groupPrice"]
+
+# 第三步登录多采商城获取token信息
+# 获取登录所需账号密码
+username = commonFuc().get_business_data(module, "username")
+password = commonFuc().get_business_data(module, "password")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcMaiiLogin(username, password).get_token()
+headers = commonFuc().get_business_data(module, "json_headers1", cmdc_access_token)
+
+# 进行站点切换
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url_website")
+request_body = commonFuc().get_business_data(module, "payload_website")
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+
+# 第四步获取商品对应的套包信息
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url47")
+request_body = commonFuc().get_business_data(module, "payload47", product_code, company_code)
+
+"""
+ 场景:验证套包正价中商品详情页套包信息展示是否正确
+ 用例名称:验证商品详情页面套包信息的展示
+ 输出:{"groupPrice":"%d","groupName":"%s"}
+"""
+
+# 发送请求
+result = requests.get(url, params=request_body, headers=headers)
+result = json.loads(result.content)
+# 获取商品详情页中套包正价信息
+result = {"groupPrice": result["data"][2]["groupPrice"], "groupName": result["data"][2]["groupName"]}
+print(result)
+# # 获取预期结果
+check_dict = commonFuc().get_business_data(module, "checkDict47", group_price, group_name)
+# # 断言实际结果中是否包含预期结果的内容
+commonFuc().check_result(check_dict, result)
diff --git "a/air_case/cmdc_special_fresenius_group/\345\225\206\345\223\201\350\257\246\346\203\205\351\241\265_\347\211\271\344\273\267\345\215\225\345\223\201\346\230\276\347\244\272\351\252\214\350\257\201.air/\345\225\206\345\223\201\350\257\246\346\203\205\351\241\265_\347\211\271\344\273\267\345\215\225\345\223\201\346\230\276\347\244\272\351\252\214\350\257\201.py" "b/air_case/cmdc_special_fresenius_group/\345\225\206\345\223\201\350\257\246\346\203\205\351\241\265_\347\211\271\344\273\267\345\215\225\345\223\201\346\230\276\347\244\272\351\252\214\350\257\201.air/\345\225\206\345\223\201\350\257\246\346\203\205\351\241\265_\347\211\271\344\273\267\345\215\225\345\223\201\346\230\276\347\244\272\351\252\214\350\257\201.py"
new file mode 100644
index 0000000000000000000000000000000000000000..661051394848145fb3e195d6f0236e9c6569d538
--- /dev/null
+++ "b/air_case/cmdc_special_fresenius_group/\345\225\206\345\223\201\350\257\246\346\203\205\351\241\265_\347\211\271\344\273\267\345\215\225\345\223\201\346\230\276\347\244\272\351\252\214\350\257\201.air/\345\225\206\345\223\201\350\257\246\346\203\205\351\241\265_\347\211\271\344\273\267\345\215\225\345\223\201\346\230\276\347\244\272\351\252\214\350\257\201.py"
@@ -0,0 +1,69 @@
+# -*- encoding=utf8 -*-
+__author__ = "liguangyu"
+
+"""
+case_tag:cmdc_api,cmdc验证商品详情页面特价单品的展示,2252,2252-70,sit,bs
+涉及到接口:特价单品列表查询、查询特殊套包详情接口
+"""
+
+from common.common_func import commonFuc
+from air_case.cmdc_login.后台管理系统登录.后台管理系统登录 import CmdcDoLogin
+from air_case.cmdc_login.多采商城登录.多采商城登录 import CmdcMaiiLogin
+import requests
+import json
+
+module = "cmdc_special_fresenius_group"
+# 第一步登录后台运营平台获取cmdc_access_token
+# 获取登录所需账号密码
+username = commonFuc().get_business_data(module, "username1")
+password = commonFuc().get_business_data(module, "password1")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcDoLogin(username, password).get_token()
+headers = commonFuc().get_business_data(module, "json_headers", cmdc_access_token)
+
+# 第二步特价单品查询
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url1")
+request_body = commonFuc().get_business_data(module, "payload40")
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+
+# 获取商品信息
+product_code = result["data"]["list"][0]["freseniusProduct"]["productCode"]
+company_code = result["data"]["list"][0]["companyCode"]
+print(product_code)
+# 第三步登录多采商城获取token信息
+# 获取登录所需账号密码
+username = commonFuc().get_business_data(module, "username")
+password = commonFuc().get_business_data(module, "password")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcMaiiLogin(username, password).get_token()
+headers = commonFuc().get_business_data(module, "json_headers1", cmdc_access_token)
+
+# 进行站点切换
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url_website")
+request_body = commonFuc().get_business_data(module, "payload_website")
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+
+# 第四步获取商品对应的套包信息
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url41")
+request_body = commonFuc().get_business_data(module, "payload41", product_code, company_code)
+
+"""
+ 场景:验证特价单品详情页特价信息展示是否正确
+ 用例名称:验证商品详情页面特价单品的展示
+ 输出:{"activityName":"每只特价101元,有效期2023-11-09至2031-12-31"}
+"""
+
+# 发送请求
+result = requests.get(url, params=request_body, headers=headers)
+result = json.loads(result.content)
+
+# 获取活动信息
+result = {"activityName": result["data"][0]["activityName"]}
+
+# # 获取预期结果
+check_dict = commonFuc().get_business_data(module, "checkDict41")
+# # 断言实际结果中是否包含预期结果的内容
+commonFuc().check_result(check_dict, result)
diff --git "a/air_case/cmdc_special_fresenius_group/\345\245\227\345\214\205\345\201\234\347\224\250_\345\245\227\345\214\205\345\225\206\345\223\201\347\256\241\347\220\206.air/\345\245\227\345\214\205\345\201\234\347\224\250_\345\245\227\345\214\205\345\225\206\345\223\201\347\256\241\347\220\206.py" "b/air_case/cmdc_special_fresenius_group/\345\245\227\345\214\205\345\201\234\347\224\250_\345\245\227\345\214\205\345\225\206\345\223\201\347\256\241\347\220\206.air/\345\245\227\345\214\205\345\201\234\347\224\250_\345\245\227\345\214\205\345\225\206\345\223\201\347\256\241\347\220\206.py"
new file mode 100644
index 0000000000000000000000000000000000000000..7408774137bef7d0123df94b08c0290363019678
--- /dev/null
+++ "b/air_case/cmdc_special_fresenius_group/\345\245\227\345\214\205\345\201\234\347\224\250_\345\245\227\345\214\205\345\225\206\345\223\201\347\256\241\347\220\206.air/\345\245\227\345\214\205\345\201\234\347\224\250_\345\245\227\345\214\205\345\225\206\345\223\201\347\256\241\347\220\206.py"
@@ -0,0 +1,62 @@
+# -*- encoding=utf8 -*-
+__author__ = "liguangyu"
+
+"""
+case_tag:cmdc_api,cmdc套包停用验证_套包商品管理,2264,2264-40,sit,bs
+主数据平台:运营后台管理系统套包列表、套包停用等接口
+"""
+
+from common.common_func import commonFuc
+from air_case.cmdc_login.后台管理系统登录.后台管理系统登录 import CmdcDoLogin
+from common.db.db import mySql
+import requests
+import json
+
+module = "cmdc_special_fresenius_group"
+
+# 第一步登录后台运营平台获取cmdc_access_token
+# 获取登录所需账号密码
+username = commonFuc().get_business_data(module, "username1")
+password = commonFuc().get_business_data(module, "password1")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcDoLogin(username, password).get_token()
+headers = commonFuc().get_business_data(module, "json_headers", cmdc_access_token)
+
+# 套包状态-启用
+group_status = 1
+
+# 第二步获取套包列表
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "group_list")
+request_body = commonFuc().get_business_data(module, "group_payload", group_status)
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+
+# 获取套包列表中已启用套包的id
+group_id = result["data"]["list"][0]["products"][0]["groupId"]
+
+# 第三步进行套包的停用
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url7")
+request_body = {"groupIds": [group_id], "type": 1, "remarks": "验证套包停用功能"}
+"""
+ 场景:套包停用验证_套包商品管理
+ 用例名称:套包停用验证_套包商品管理
+ 输出:{"status":2}
+"""
+
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+# 数据库操作
+mysql_handle = mySql()
+# 获取conf.ini文件中配置的数据库信息
+host, port, user, pwd = mysql_handle.getConf(db="cmdc_db")
+
+# 数据库查询套包状态
+sql = "SELECT t.status FROM `cmdc-order`.tc_fresenius_group t WHERE groupId = {}".format(group_id)
+result = {"status": mysql_handle.selectSql(host, port, user, pwd, "cmdc-order", sql)[0][0]}
+
+# 获取
+# 获取预期结果
+check_dict = commonFuc().get_business_data(module, "checkDict7")
+# 断言实际结果中是否包含预期结果的内容
+commonFuc().check_result(check_dict, result)
diff --git "a/air_case/cmdc_special_fresenius_group/\345\245\227\345\214\205\345\215\217\350\256\256\347\211\271\344\273\267\346\237\245\350\257\242.air/\345\245\227\345\214\205\345\215\217\350\256\256\347\211\271\344\273\267\346\237\245\350\257\242.py" "b/air_case/cmdc_special_fresenius_group/\345\245\227\345\214\205\345\215\217\350\256\256\347\211\271\344\273\267\346\237\245\350\257\242.air/\345\245\227\345\214\205\345\215\217\350\256\256\347\211\271\344\273\267\346\237\245\350\257\242.py"
new file mode 100644
index 0000000000000000000000000000000000000000..1f7acf9c7e1d68703164ad687c1af54bd3d1140a
--- /dev/null
+++ "b/air_case/cmdc_special_fresenius_group/\345\245\227\345\214\205\345\215\217\350\256\256\347\211\271\344\273\267\346\237\245\350\257\242.air/\345\245\227\345\214\205\345\215\217\350\256\256\347\211\271\344\273\267\346\237\245\350\257\242.py"
@@ -0,0 +1,58 @@
+# -*- encoding=utf8 -*-
+__author__ = "liguangyu"
+
+"""
+case_tag:cmdc_api,cmdc套包协议特价查询,2264,2264-36,sit,bs
+主数据平台:后台运营系统套包协议特价查询接口
+"""
+
+from common.common_func import commonFuc
+from air_case.cmdc_login.后台管理系统登录.后台管理系统登录 import CmdcDoLogin
+from common.db.db import mySql
+import requests
+import json
+
+module = "cmdc_special_fresenius_group"
+
+# 第一步登录后台运营平台获取cmdc_access_token
+# 获取登录所需账号密码
+username = commonFuc().get_business_data(module, "username1")
+password = commonFuc().get_business_data(module, "password1")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcDoLogin(username, password).get_token()
+headers = commonFuc().get_business_data(module, "json_headers", cmdc_access_token)
+
+# 第二步套包协议特价查询
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url3")
+request_body = commonFuc().get_business_data(module, "payload03")
+"""
+ 场景:验证套包协议特价接口返回数据与数据库数据是否一致
+ 用例名称:套包协议价查询
+ 输出:{"total":"%s"}
+"""
+
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+
+# 获取套包协议特价总数量
+result = {"total": result["data"]["total"]}
+
+# 数据库操作
+mysql_handle = mySql()
+# 获取conf.ini文件中配置的数据库信息
+host, port, user, pwd = mysql_handle.getConf(db="cmdc_db")
+
+# 数据库查询协议价套包数量(套包存在且非停用下架状态,不是正价套包即isRegularPrice = 0)
+sql = "SELECT t.* FROM `cmdc-order`.tc_fresenius_agreement_price t " \
+ "WHERE companyCode = 00111 and isRegularPrice = 0 and " \
+ "groupId in (SELECT t.groupId FROM `cmdc-order`.tc_fresenius_group t " \
+ "WHERE status = 1 and groupType = 0);"
+print(sql)
+total = len(mysql_handle.selectSql(host, port, user, pwd, "cmdc-order", sql))
+print(total)
+
+# 获取预期结果
+check_dict = commonFuc().get_business_data(module, "checkDict3", total)
+# 断言实际结果中是否包含预期结果的内容
+commonFuc().check_result(check_dict, result)
diff --git "a/air_case/cmdc_special_fresenius_group/\345\245\227\345\214\205\345\220\257\347\224\250_\345\245\227\345\214\205\345\225\206\345\223\201\347\256\241\347\220\206.air/\345\245\227\345\214\205\345\220\257\347\224\250_\345\245\227\345\214\205\345\225\206\345\223\201\347\256\241\347\220\206.py" "b/air_case/cmdc_special_fresenius_group/\345\245\227\345\214\205\345\220\257\347\224\250_\345\245\227\345\214\205\345\225\206\345\223\201\347\256\241\347\220\206.air/\345\245\227\345\214\205\345\220\257\347\224\250_\345\245\227\345\214\205\345\225\206\345\223\201\347\256\241\347\220\206.py"
new file mode 100644
index 0000000000000000000000000000000000000000..86ebf2731c7b25270d8862c3850fab929ee595b6
--- /dev/null
+++ "b/air_case/cmdc_special_fresenius_group/\345\245\227\345\214\205\345\220\257\347\224\250_\345\245\227\345\214\205\345\225\206\345\223\201\347\256\241\347\220\206.air/\345\245\227\345\214\205\345\220\257\347\224\250_\345\245\227\345\214\205\345\225\206\345\223\201\347\256\241\347\220\206.py"
@@ -0,0 +1,63 @@
+# -*- encoding=utf8 -*-
+__author__ = "liguangyu"
+
+"""
+case_tag:cmdc_api,cmdc套包启用验证_套包商品管理,2264,2264-39,sit,bs
+主数据平台:运营后台管理系统套包列表、套包启用等接口
+"""
+
+from common.common_func import commonFuc
+from air_case.cmdc_login.后台管理系统登录.后台管理系统登录 import CmdcDoLogin
+from common.db.db import mySql
+import requests
+import json
+
+module = "cmdc_special_fresenius_group"
+
+# 第一步登录后台运营平台获取cmdc_access_token
+# 获取登录所需账号密码
+username = commonFuc().get_business_data(module, "username1")
+password = commonFuc().get_business_data(module, "password1")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcDoLogin(username, password).get_token()
+headers = commonFuc().get_business_data(module, "json_headers", cmdc_access_token)
+
+# 套包状态-草稿
+group_status = 0
+
+# 第二步获取套包列表
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "group_list")
+request_body = commonFuc().get_business_data(module, "group_payload", group_status)
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+
+# 获取套包列表中草稿套包的id
+group_id = result["data"]["list"][0]["products"][0]["groupId"]
+
+# 第三步进行草稿套包的启用
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url6")
+request_body = {"groupIds": [group_id], "type": 0, "remarks": ""}
+"""
+
+ 场景:套包启用验证_套包商品管理
+ 用例名称:套包启用验证_套包商品管理
+ 输出:{"status":1}
+"""
+
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+# 数据库操作
+mysql_handle = mySql()
+# 获取conf.ini文件中配置的数据库信息
+host, port, user, pwd = mysql_handle.getConf(db="cmdc_db")
+
+# 数据库查询套包状态
+sql = "SELECT t.status FROM `cmdc-order`.tc_fresenius_group t WHERE groupId = {}".format(group_id)
+result = {"status": mysql_handle.selectSql(host, port, user, pwd, "cmdc-order", sql)[0][0]}
+
+# 获取
+# 获取预期结果
+check_dict = commonFuc().get_business_data(module, "checkDict6")
+# 断言实际结果中是否包含预期结果的内容
+commonFuc().check_result(check_dict, result)
diff --git "a/air_case/cmdc_special_fresenius_group/\345\245\227\345\214\205\345\225\206\345\223\201\346\226\260\345\242\236.air/\345\245\227\345\214\205\345\225\206\345\223\201\346\226\260\345\242\236.py" "b/air_case/cmdc_special_fresenius_group/\345\245\227\345\214\205\345\225\206\345\223\201\346\226\260\345\242\236.air/\345\245\227\345\214\205\345\225\206\345\223\201\346\226\260\345\242\236.py"
new file mode 100644
index 0000000000000000000000000000000000000000..75c94380b9805c1e54934e8ff1b493ed58865655
--- /dev/null
+++ "b/air_case/cmdc_special_fresenius_group/\345\245\227\345\214\205\345\225\206\345\223\201\346\226\260\345\242\236.air/\345\245\227\345\214\205\345\225\206\345\223\201\346\226\260\345\242\236.py"
@@ -0,0 +1,54 @@
+# -*- encoding=utf8 -*-
+__author__ = "liguangyu"
+
+"""
+case_tag:cmdc_api,cmdc套包商品新增,2264,2264-38,sit,bs
+主数据平台:运营后台管理系统套包商品新增接口
+"""
+
+from common.common_func import commonFuc
+from air_case.cmdc_login.后台管理系统登录.后台管理系统登录 import CmdcDoLogin
+from common.db.db import mySql
+import requests
+import random
+
+module = "cmdc_special_fresenius_group"
+
+# 第一步登录后台运营平台获取cmdc_access_token
+# 获取登录所需账号密码
+username = commonFuc().get_business_data(module, "username1")
+password = commonFuc().get_business_data(module, "password1")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcDoLogin(username, password).get_token()
+headers = commonFuc().get_business_data(module, "json_headers", cmdc_access_token)
+
+# 随机生成套包内商品数量
+quantity = random.randint(1, 999999)
+# 随机生成套包名称
+group_name = "麦迪康套包{}".format(quantity)
+
+# 第二步套包商品创建
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url5")
+request_body = commonFuc().get_business_data(module, "payload5", group_name, quantity, quantity)
+
+"""
+ 场景:套包商品创建的验证
+ 用例名称:套包商品创建的验证
+ 输出:{"groupName":"%s"}
+"""
+
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+# 数据库操作
+mysql_handle = mySql()
+# 获取conf.ini文件中配置的数据库信息
+host, port, user, pwd = mysql_handle.getConf(db="cmdc_db")
+
+# 数据库查询套包正价数量
+sql = "SELECT t.groupName FROM `cmdc-order`.tc_fresenius_group t ORDER BY createTime DESC LIMIT 1"
+result = {"groupName": mysql_handle.selectSql(host, port, user, pwd, "cmdc-order", sql)[0][0]}
+# 获取
+# 获取预期结果
+check_dict = commonFuc().get_business_data(module, "checkDict5", group_name)
+# 断言实际结果中是否包含预期结果的内容
+commonFuc().check_result(check_dict, result)
diff --git "a/air_case/cmdc_special_fresenius_group/\345\245\227\345\214\205\345\225\206\345\223\201\347\256\241\347\220\206\346\237\245\350\257\242\346\235\241\344\273\266\351\252\214\350\257\201.air/\345\245\227\345\214\205\345\225\206\345\223\201\347\256\241\347\220\206\346\237\245\350\257\242\346\235\241\344\273\266\351\252\214\350\257\201.py" "b/air_case/cmdc_special_fresenius_group/\345\245\227\345\214\205\345\225\206\345\223\201\347\256\241\347\220\206\346\237\245\350\257\242\346\235\241\344\273\266\351\252\214\350\257\201.air/\345\245\227\345\214\205\345\225\206\345\223\201\347\256\241\347\220\206\346\237\245\350\257\242\346\235\241\344\273\266\351\252\214\350\257\201.py"
new file mode 100644
index 0000000000000000000000000000000000000000..b5ec7b8e8db5b1a2ca6daf853cf1e4e4d6a37d3f
--- /dev/null
+++ "b/air_case/cmdc_special_fresenius_group/\345\245\227\345\214\205\345\225\206\345\223\201\347\256\241\347\220\206\346\237\245\350\257\242\346\235\241\344\273\266\351\252\214\350\257\201.air/\345\245\227\345\214\205\345\225\206\345\223\201\347\256\241\347\220\206\346\237\245\350\257\242\346\235\241\344\273\266\351\252\214\350\257\201.py"
@@ -0,0 +1,80 @@
+# -*- encoding=utf8 -*-
+__author__ = "liguangyu"
+
+"""
+case_tag:cmdc_api,cmdc套包商品管理查询条件验证,2264,2264-43,sit,bs
+主数据平台:后台运营系统套包商品管理查询接口
+"""
+
+from common.common_func import commonFuc
+from air_case.cmdc_login.后台管理系统登录.后台管理系统登录 import CmdcDoLogin
+import requests
+import json
+
+module = "cmdc_special_fresenius_group"
+
+# 第一步登录后台运营平台获取cmdc_access_token
+# 获取登录所需账号密码
+username = commonFuc().get_business_data(module, "username1")
+password = commonFuc().get_business_data(module, "password1")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcDoLogin(username, password).get_token()
+headers = commonFuc().get_business_data(module, "json_headers", cmdc_access_token)
+
+# 套包状态-全部
+group_status = ""
+
+# 第二步获取套包列表
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "group_list")
+request_body = commonFuc().get_business_data(module, "group_payload", group_status)
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+
+
+# 此函数用于当x为none时,进行空字符串替换
+def func(x):
+ if x is None:
+ x = ""
+ return x
+ else:
+ return x
+
+
+# 获取套包相关信息
+group_code = result["data"]["list"][0]["groupCode"]
+group_name = result["data"]["list"][0]["groupName"]
+product_code = result["data"]["list"][0]["products"][0]["productCode"]
+material_code = result["data"]["list"][0]["products"][0]["materialCode"]
+manufacturer_list = result["data"]["list"][0]["products"][0]["manufacturer"]
+productLine_name = func(result["data"]["list"][0]["products"][0]["productLineName"])
+description = result["data"]["list"][0]["products"][0]["description"]
+manufacturer_product_desc = func(result["data"]["list"][0]["products"][0]["manufacturerProductDesc"])
+manufacturer_product_no = func(result["data"]["list"][0]["products"][0]["manufacturerProductNo"])
+product_info = result["data"]["list"][0]["products"][0]["productName"]
+status = result["data"]["list"][0]["status"]
+
+# 第三步套包商品管理查询条件验证
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "group_list")
+request_body = commonFuc().get_business_data(module, "payload9", group_code, group_name,
+ product_code, material_code, manufacturer_list,
+ productLine_name, description, manufacturer_product_desc,
+ manufacturer_product_no, product_info, status)
+
+"""
+ 场景:套包商品管理查询条件验证
+ 用例名称:套包商品管理查询条件验证
+ 输出:{"groupCode":"%s"}
+"""
+
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+
+# 获取套包code
+result = {"groupCode": result["data"]["list"][0]["groupCode"]}
+
+# 获取预期结果
+check_dict = commonFuc().get_business_data(module, "checkDict9", group_code)
+# 断言实际结果中是否包含预期结果的内容
+commonFuc().check_result(check_dict, result)
diff --git "a/air_case/cmdc_special_fresenius_group/\345\245\227\345\214\205\346\255\243\344\273\267_\346\214\207\345\256\232\345\256\242\346\210\267\346\237\245\350\257\242.air/\345\245\227\345\214\205\346\255\243\344\273\267_\346\214\207\345\256\232\345\256\242\346\210\267\346\237\245\350\257\242.py" "b/air_case/cmdc_special_fresenius_group/\345\245\227\345\214\205\346\255\243\344\273\267_\346\214\207\345\256\232\345\256\242\346\210\267\346\237\245\350\257\242.air/\345\245\227\345\214\205\346\255\243\344\273\267_\346\214\207\345\256\232\345\256\242\346\210\267\346\237\245\350\257\242.py"
new file mode 100644
index 0000000000000000000000000000000000000000..dce22c61855d934fde9a3fa3dacff1a608a17861
--- /dev/null
+++ "b/air_case/cmdc_special_fresenius_group/\345\245\227\345\214\205\346\255\243\344\273\267_\346\214\207\345\256\232\345\256\242\346\210\267\346\237\245\350\257\242.air/\345\245\227\345\214\205\346\255\243\344\273\267_\346\214\207\345\256\232\345\256\242\346\210\267\346\237\245\350\257\242.py"
@@ -0,0 +1,54 @@
+# -*- encoding=utf8 -*-
+__author__ = "liguangyu"
+
+"""
+case_tag:cmdc_api,cmdc套包正价_指定客户查询,2264,2264-37,sit,bs
+主数据平台:后台运营系统套包正价查询接口
+"""
+
+from common.common_func import commonFuc
+from air_case.cmdc_login.后台管理系统登录.后台管理系统登录 import CmdcDoLogin
+from common.db.db import mySql
+import requests
+import json
+
+module = "cmdc_special_fresenius_group"
+
+# 第一步登录后台运营平台获取cmdc_access_token
+# 获取登录所需账号密码
+username = commonFuc().get_business_data(module, "username1")
+password = commonFuc().get_business_data(module, "password1")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcDoLogin(username, password).get_token()
+headers = commonFuc().get_business_data(module, "json_headers", cmdc_access_token)
+
+# 第二步套包正价_指定客户查询
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url4")
+request_body = commonFuc().get_business_data(module, "payload4")
+"""
+ 场景:套包正价_指定客户查询
+ 用例名称:套包正价_指定客户查询
+ 输出:{"total":"%s"}
+"""
+
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+
+# 获取套包正价_指定客户总数量
+result = {"total": result["data"]["total"]}
+print(result)
+# 数据库操作
+mysql_handle = mySql()
+# 获取conf.ini文件中配置的数据库信息
+host, port, user, pwd = mysql_handle.getConf(db="cmdc_db")
+
+# 数据库查询套包正价_指定客户数量
+sql = "SELECT t.groupId FROM `cmdc-order`.tc_fresenius_agreement_price t " \
+ "WHERE isRegularPrice = 2 and groupPriceStatus = 1 and companyCode = 00111"
+total = len(mysql_handle.selectSql(host, port, user, pwd, "cmdc-order", sql))
+print(total)
+# 获取预期结果
+check_dict = commonFuc().get_business_data(module, "checkDict2", total)
+# 断言实际结果中是否包含预期结果的内容
+commonFuc().check_result(check_dict, result)
diff --git "a/air_case/cmdc_special_fresenius_group/\345\245\227\345\214\205\346\255\243\344\273\267\346\237\245\350\257\242.air/\345\245\227\345\214\205\346\255\243\344\273\267\346\237\245\350\257\242.py" "b/air_case/cmdc_special_fresenius_group/\345\245\227\345\214\205\346\255\243\344\273\267\346\237\245\350\257\242.air/\345\245\227\345\214\205\346\255\243\344\273\267\346\237\245\350\257\242.py"
new file mode 100644
index 0000000000000000000000000000000000000000..791180e6c16837dab97c3d035b77ac916619b481
--- /dev/null
+++ "b/air_case/cmdc_special_fresenius_group/\345\245\227\345\214\205\346\255\243\344\273\267\346\237\245\350\257\242.air/\345\245\227\345\214\205\346\255\243\344\273\267\346\237\245\350\257\242.py"
@@ -0,0 +1,54 @@
+# -*- encoding=utf8 -*-
+__author__ = "liguangyu"
+
+"""
+case_tag:cmdc_api,cmdc套包正价查询,2264,2264-35,sit,bs
+主数据平台:后台运营系统套包正价查询接口
+"""
+
+from common.common_func import commonFuc
+from air_case.cmdc_login.后台管理系统登录.后台管理系统登录 import CmdcDoLogin
+from common.db.db import mySql
+import requests
+import json
+
+module = "cmdc_special_fresenius_group"
+
+# 第一步登录后台运营平台获取cmdc_access_token
+# 获取登录所需账号密码
+username = commonFuc().get_business_data(module, "username1")
+password = commonFuc().get_business_data(module, "password1")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcDoLogin(username, password).get_token()
+headers = commonFuc().get_business_data(module, "json_headers", cmdc_access_token)
+
+# 第二步套包正价查询
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url2")
+request_body = commonFuc().get_business_data(module, "payload2")
+"""
+ 场景:套包正价查询
+ 用例名称:套包正价查询
+ 输出:{"total":"%s"}
+"""
+
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+
+# 获取套包正价总数量
+result = {"total": result["data"]["total"]}
+
+# 数据库操作
+mysql_handle = mySql()
+# 获取conf.ini文件中配置的数据库信息
+host, port, user, pwd = mysql_handle.getConf(db="cmdc_db")
+
+# 数据库查询套包正价数量
+sql = "SELECT t.groupId FROM `cmdc-order`.tc_fresenius_agreement_price t " \
+ "WHERE isRegularPrice = 1 and groupPriceStatus = 1 and companyCode = 00111"
+total = len(mysql_handle.selectSql(host, port, user, pwd, "cmdc-order", sql))
+
+# 获取预期结果
+check_dict = commonFuc().get_business_data(module, "checkDict2", total)
+# 断言实际结果中是否包含预期结果的内容
+commonFuc().check_result(check_dict, result)
diff --git "a/air_case/cmdc_special_fresenius_group/\345\256\241\346\240\270\350\212\202\347\202\271_\347\211\271\344\273\267\345\215\225\345\223\201_\351\231\220\350\264\255\346\213\246\346\210\252\351\252\214\350\257\201.air/\345\256\241\346\240\270\350\212\202\347\202\271_\347\211\271\344\273\267\345\215\225\345\223\201_\351\231\220\350\264\255\346\213\246\346\210\252\351\252\214\350\257\201.py" "b/air_case/cmdc_special_fresenius_group/\345\256\241\346\240\270\350\212\202\347\202\271_\347\211\271\344\273\267\345\215\225\345\223\201_\351\231\220\350\264\255\346\213\246\346\210\252\351\252\214\350\257\201.air/\345\256\241\346\240\270\350\212\202\347\202\271_\347\211\271\344\273\267\345\215\225\345\223\201_\351\231\220\350\264\255\346\213\246\346\210\252\351\252\214\350\257\201.py"
new file mode 100644
index 0000000000000000000000000000000000000000..c3562a6976c43ef6d2577e0c270edff32182af58
--- /dev/null
+++ "b/air_case/cmdc_special_fresenius_group/\345\256\241\346\240\270\350\212\202\347\202\271_\347\211\271\344\273\267\345\215\225\345\223\201_\351\231\220\350\264\255\346\213\246\346\210\252\351\252\214\350\257\201.air/\345\256\241\346\240\270\350\212\202\347\202\271_\347\211\271\344\273\267\345\215\225\345\223\201_\351\231\220\350\264\255\346\213\246\346\210\252\351\252\214\350\257\201.py"
@@ -0,0 +1,43 @@
+# -*- encoding=utf8 -*-
+__author__ = "liguangyu"
+
+"""
+case_tag:cmdc_api,cmdc审核节点_特价单品_限购拦截验证,2264,2264-74,sit,bs
+主数据平台:套包核验接口submitFreseniusCheck
+备注:此接口返回结果中success为true则代表限购拦截,否则未达到拦截标准,无其他判断字段
+"""
+
+from common.common_func import commonFuc
+from air_case.cmdc_login.后台管理系统登录.后台管理系统登录 import CmdcDoLogin
+import requests
+import json
+
+module = "cmdc_special_fresenius_group"
+
+# 第一步登录后台运营平台获取cmdc_access_token
+# 获取登录所需账号密码
+username = commonFuc().get_business_data(module, "username1")
+password = commonFuc().get_business_data(module, "password1")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcDoLogin(username, password).get_token()
+headers = commonFuc().get_business_data(module, "json_headers", cmdc_access_token)
+
+# 第二步进行套包限购验证
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url45")
+request_body = commonFuc().get_business_data(module, "payload45")
+
+"""
+
+ 场景:套包商品创建的验证
+ 用例名称:套包商品创建的验证
+ 输出:{"groupName":"%s"}
+"""
+
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+print(result)
+# 获取预期结果
+check_dict = commonFuc().get_business_data(module, "checkDict45")
+# 断言实际结果中是否包含预期结果的内容
+commonFuc().check_result(check_dict, result)
diff --git "a/air_case/cmdc_special_fresenius_group/\346\211\271\351\207\217\346\226\260\345\242\236_\345\245\227\345\214\205\345\225\206\345\223\201\347\256\241\347\220\206.air/\346\211\271\351\207\217\346\226\260\345\242\236_\345\245\227\345\214\205\345\225\206\345\223\201\347\256\241\347\220\206.py" "b/air_case/cmdc_special_fresenius_group/\346\211\271\351\207\217\346\226\260\345\242\236_\345\245\227\345\214\205\345\225\206\345\223\201\347\256\241\347\220\206.air/\346\211\271\351\207\217\346\226\260\345\242\236_\345\245\227\345\214\205\345\225\206\345\223\201\347\256\241\347\220\206.py"
new file mode 100644
index 0000000000000000000000000000000000000000..4812f2b2a541cbee4941a6445591e04f4a6e27a1
--- /dev/null
+++ "b/air_case/cmdc_special_fresenius_group/\346\211\271\351\207\217\346\226\260\345\242\236_\345\245\227\345\214\205\345\225\206\345\223\201\347\256\241\347\220\206.air/\346\211\271\351\207\217\346\226\260\345\242\236_\345\245\227\345\214\205\345\225\206\345\223\201\347\256\241\347\220\206.py"
@@ -0,0 +1,85 @@
+# -*- encoding=utf8 -*-
+__author__ = "liguangyu"
+
+"""
+case_tag:cmdc_api,cmdc批量新增_套包商品管理,2264,2264-47,sit,bs
+主数据平台:运营后台管理系统套包批量新增接口
+"""
+
+from common.common_func import commonFuc
+from air_case.cmdc_login.后台管理系统登录.后台管理系统登录 import CmdcDoLogin
+from common.handle_excel import HandleExcel
+import requests
+import json
+import os
+import random
+import uuid
+
+module = "cmdc_special_fresenius_group"
+
+# 第一步登录后台运营平台获取cmdc_access_token
+# 获取登录所需账号密码
+username = commonFuc().get_business_data(module, "username1")
+password = commonFuc().get_business_data(module, "password1")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcDoLogin(username, password).get_token()
+headers = commonFuc().get_business_data(module, "json_headers2", cmdc_access_token)
+
+# 获取文件
+BASE_DIR = os.path.dirname(os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))))
+file_path = BASE_DIR + "/data/cmdc_files/套包商品批量维护模板套包商品管理.xlsx"
+
+# 获取商品列表
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "product_list")
+request_body = commonFuc().get_business_data(module, "product_payload")
+result = requests.post(url, headers=headers, json=request_body)
+result = json.loads(result.content)
+
+# 随机获取不相同两个商品信息
+product_id_a = random.randint(1, len(result["data"]["list"]) - 1)
+product_code_a = result["data"]["list"][product_id_a]["productCode"]
+product_name_a = result["data"]["list"][product_id_a]["productName"]
+product_id_b = random.randint(product_id_a + 1, len(result["data"]["list"]))
+product_code_b = result["data"]["list"][product_id_b]["productCode"]
+product_name_b = result["data"]["list"][product_id_b]["productName"]
+
+# 随机生成套包名称
+group_name = "测试套包%s" % uuid.uuid4()
+print(group_name)
+# 随机生成商品数量
+product_num = random.randint(1, 1000)
+
+# 将商品信息写入文件中
+excel = HandleExcel(file_path, "Sheet1")
+excel.write_data(row=2, column=1, value=group_name)
+excel.write_data(row=3, column=1, value=group_name)
+excel.write_data(row=2, column=2, value=product_code_a)
+excel.write_data(row=2, column=3, value=product_name_a)
+excel.write_data(row=2, column=4, value=product_num)
+
+excel.write_data(row=3, column=2, value=product_code_b)
+excel.write_data(row=3, column=3, value=product_name_b)
+excel.write_data(row=3, column=4, value=product_num)
+
+# 第二步批量新增套包
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "import_url")
+
+# 获取文件
+file = open(file_path, "rb")
+files = {"file": file}
+
+"""
+ 场景:批量新增_套包商品管理
+ 用例名称:批量新增_套包商品管理
+ 输出:{"success":true,"code":"200","message":"OK","data":{"success":true},"freshToken":null}
+"""
+
+# 发送请求
+result = requests.post(url, files=files, headers=headers)
+result = json.loads(result.content)
+file.close()
+print(result)
+# 获取预期结果
+check_dict = commonFuc().get_business_data(module, "checkDict12")
+# 断言实际结果中是否包含预期结果的内容
+commonFuc().check_result(check_dict, result)
diff --git "a/air_case/cmdc_special_fresenius_group/\346\211\271\351\207\217\346\226\260\345\242\236_\345\245\227\345\214\205\346\255\243\344\273\267.air/\346\211\271\351\207\217\346\226\260\345\242\236_\345\245\227\345\214\205\346\255\243\344\273\267.py" "b/air_case/cmdc_special_fresenius_group/\346\211\271\351\207\217\346\226\260\345\242\236_\345\245\227\345\214\205\346\255\243\344\273\267.air/\346\211\271\351\207\217\346\226\260\345\242\236_\345\245\227\345\214\205\346\255\243\344\273\267.py"
new file mode 100644
index 0000000000000000000000000000000000000000..23b94420003850eb0d51049faa9ceb9111e38bf4
--- /dev/null
+++ "b/air_case/cmdc_special_fresenius_group/\346\211\271\351\207\217\346\226\260\345\242\236_\345\245\227\345\214\205\346\255\243\344\273\267.air/\346\211\271\351\207\217\346\226\260\345\242\236_\345\245\227\345\214\205\346\255\243\344\273\267.py"
@@ -0,0 +1,80 @@
+# -*- encoding=utf8 -*-
+__author__ = "liguangyu"
+
+"""
+case_tag:cmdc_api,cmdc批量新增_套包正价,2264,2264-51,sit,bs
+主数据平台:运营后台管理系统套包批量新增接口
+"""
+
+from common.common_func import commonFuc
+from air_case.cmdc_login.后台管理系统登录.后台管理系统登录 import CmdcDoLogin
+from common.handle_excel import HandleExcel
+import requests
+import json
+import os
+import random
+
+
+module = "cmdc_special_fresenius_group"
+
+# 第一步登录后台运营平台获取cmdc_access_token
+# 获取登录所需账号密码
+username = commonFuc().get_business_data(module, "username1")
+password = commonFuc().get_business_data(module, "password1")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcDoLogin(username, password).get_token()
+headers = commonFuc().get_business_data(module, "json_headers2", cmdc_access_token)
+
+# 获取文件
+BASE_DIR = os.path.dirname(os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))))
+file_path = BASE_DIR + "/data/cmdc_files/套包正价批量导入模板.xlsx"
+
+# 第二步获取套包列表
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url25")
+request_body = commonFuc().get_business_data(module, "payload25")
+# 发送请求
+result = requests.post(url, headers=headers, json=request_body)
+result = json.loads(result.content)
+
+# 随机获取套包信息
+group_id_a = random.randint(1, len(result["data"]["list"]) - 1)
+
+group_code = result["data"]["list"][group_id_a]["groupCode"]
+group_name = result["data"]["list"][group_id_a]["groupName"]
+print(group_name)
+# 初始值
+row = 2
+
+for i in result["data"]["list"][group_id_a]["products"]:
+ # 第三步,将商品信息写入文件中
+ excel = HandleExcel(file_path, "Sheet1")
+
+ excel.write_data(row, column=1, value=group_code)
+ excel.write_data(row, column=2, value=group_name)
+ excel.write_data(row, column=3, value=i["productCode"])
+ excel.write_data(row, column=4, value=i["productName"])
+ excel.write_data(row, column=5, value=group_id_a)
+ row = row + 1
+
+# 第四步,进行文件导入操作
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url26")
+print(url)
+# 获取文件
+file = open(file_path, "rb")
+files = {"file": file}
+
+"""
+场景:批量新增_套包商品管理
+用例名称:批量新增_套包商品管理
+输出:{"success":true,"code":"200","message":"OK","data":{"success":true},"freshToken":null}
+"""
+print(headers)
+# 发送请求
+result = requests.post(url, files=files, headers=headers)
+result = json.loads(result.content)
+file.close()
+print(result)
+# 获取预期结果
+check_dict = commonFuc().get_business_data(module, "checkDict12")
+# 断言实际结果中是否包含预期结果的内容
+commonFuc().check_result(check_dict, result)
diff --git "a/air_case/cmdc_special_fresenius_group/\346\214\211\346\235\241\344\273\266\345\201\234\347\224\250_\345\201\234\347\224\250\345\267\262\345\201\234\347\224\250\347\232\204\345\245\227\345\214\205_\345\245\227\345\214\205\345\225\206\345\223\201\347\256\241\347\220\206.air/\346\214\211\346\235\241\344\273\266\345\201\234\347\224\250_\345\201\234\347\224\250\345\267\262\345\201\234\347\224\250\347\232\204\345\245\227\345\214\205_\345\245\227\345\214\205\345\225\206\345\223\201\347\256\241\347\220\206.py" "b/air_case/cmdc_special_fresenius_group/\346\214\211\346\235\241\344\273\266\345\201\234\347\224\250_\345\201\234\347\224\250\345\267\262\345\201\234\347\224\250\347\232\204\345\245\227\345\214\205_\345\245\227\345\214\205\345\225\206\345\223\201\347\256\241\347\220\206.air/\346\214\211\346\235\241\344\273\266\345\201\234\347\224\250_\345\201\234\347\224\250\345\267\262\345\201\234\347\224\250\347\232\204\345\245\227\345\214\205_\345\245\227\345\214\205\345\225\206\345\223\201\347\256\241\347\220\206.py"
new file mode 100644
index 0000000000000000000000000000000000000000..4c4db666f5d3a08bfe3dd932371dd5f521528316
--- /dev/null
+++ "b/air_case/cmdc_special_fresenius_group/\346\214\211\346\235\241\344\273\266\345\201\234\347\224\250_\345\201\234\347\224\250\345\267\262\345\201\234\347\224\250\347\232\204\345\245\227\345\214\205_\345\245\227\345\214\205\345\225\206\345\223\201\347\256\241\347\220\206.air/\346\214\211\346\235\241\344\273\266\345\201\234\347\224\250_\345\201\234\347\224\250\345\267\262\345\201\234\347\224\250\347\232\204\345\245\227\345\214\205_\345\245\227\345\214\205\345\225\206\345\223\201\347\256\241\347\220\206.py"
@@ -0,0 +1,75 @@
+# -*- encoding=utf8 -*-
+__author__ = "liguangyu"
+
+"""
+case_tag:cmdc_api,cmdc验证按条件停用已停用的套包,2264,2264-46,sit,bs
+主数据平台:运营后台管理系统Excel导入接口
+"""
+
+from common.common_func import commonFuc
+from air_case.cmdc_login.后台管理系统登录.后台管理系统登录 import CmdcDoLogin
+from common.handle_excel import HandleExcel
+import requests
+import json
+import os
+
+
+module = "cmdc_special_fresenius_group"
+
+# 第一步登录后台运营平台获取cmdc_access_token
+# 获取登录所需账号密码
+username = commonFuc().get_business_data(module, "username1")
+password = commonFuc().get_business_data(module, "password1")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcDoLogin(username, password).get_token()
+headers = commonFuc().get_business_data(module, "json_headers2", cmdc_access_token)
+
+# 获取文件
+BASE_DIR = os.path.dirname(os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))))
+file_path = BASE_DIR + "/data/cmdc_files/套包按条件停用.xlsx"
+
+# 套包状态-停用状态
+group_status = 2
+
+# 获取套包列表
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "group_list")
+request_body = commonFuc().get_business_data(module, "group_payload", group_status)
+result = requests.post(url, headers=headers, json=request_body)
+result = json.loads(result.content)
+
+# 获取套包信息groupCode、groupName、groupId
+group_code = result["data"]["list"][0]["groupCode"]
+group_name = result["data"]["list"][0]["groupName"]
+group_id = result["data"]["list"][0]["groupId"]
+
+# 将套包信息写入文件中
+excel = HandleExcel(file_path, "Sheet1")
+excel.write_data(row=2, column=1, value=group_code)
+excel.write_data(row=2, column=2, value=group_name)
+
+# 第二步进行套包数据导入操作
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url10")
+request_body = commonFuc().get_business_data(module, "payload11")
+
+# 获取文件
+file = open(file_path, "rb")
+files = {"file": file}
+
+"""
+ 场景:验证按条件停用套包功能,是否可以停用已停用的套包
+ 用例名称:验证按条件停用已停用的套包
+ 输出:{"errList":["%s"]}
+"""
+
+# 发送请求
+result = requests.post(url, files=files, headers=headers, data=request_body)
+result = json.loads(result.content)
+file.close()
+# 截取结果中errList信息
+result = {"errList": result["data"]["errMsg"]["errList"]}
+print(result)
+# 获取预期结果
+err_list = "平台套包编号【{}】 在待停用记录里不存在!".format(group_code)
+check_dict = commonFuc().get_business_data(module, "checkDict11", err_list)
+# 断言实际结果中是否包含预期结果的内容
+commonFuc().check_result(check_dict, result)
diff --git "a/air_case/cmdc_special_fresenius_group/\346\214\211\346\235\241\344\273\266\345\201\234\347\224\250_\350\215\211\347\250\277\347\212\266\346\200\201\347\232\204\345\245\227\345\214\205_\345\245\227\345\214\205\345\225\206\345\223\201\347\256\241\347\220\206.air/\346\214\211\346\235\241\344\273\266\345\201\234\347\224\250_\350\215\211\347\250\277\347\212\266\346\200\201\347\232\204\345\245\227\345\214\205_\345\245\227\345\214\205\345\225\206\345\223\201\347\256\241\347\220\206.py" "b/air_case/cmdc_special_fresenius_group/\346\214\211\346\235\241\344\273\266\345\201\234\347\224\250_\350\215\211\347\250\277\347\212\266\346\200\201\347\232\204\345\245\227\345\214\205_\345\245\227\345\214\205\345\225\206\345\223\201\347\256\241\347\220\206.air/\346\214\211\346\235\241\344\273\266\345\201\234\347\224\250_\350\215\211\347\250\277\347\212\266\346\200\201\347\232\204\345\245\227\345\214\205_\345\245\227\345\214\205\345\225\206\345\223\201\347\256\241\347\220\206.py"
new file mode 100644
index 0000000000000000000000000000000000000000..4e74f46b747baa9e3764867e83ac162fe4ad15cf
--- /dev/null
+++ "b/air_case/cmdc_special_fresenius_group/\346\214\211\346\235\241\344\273\266\345\201\234\347\224\250_\350\215\211\347\250\277\347\212\266\346\200\201\347\232\204\345\245\227\345\214\205_\345\245\227\345\214\205\345\225\206\345\223\201\347\256\241\347\220\206.air/\346\214\211\346\235\241\344\273\266\345\201\234\347\224\250_\350\215\211\347\250\277\347\212\266\346\200\201\347\232\204\345\245\227\345\214\205_\345\245\227\345\214\205\345\225\206\345\223\201\347\256\241\347\220\206.py"
@@ -0,0 +1,75 @@
+# -*- encoding=utf8 -*-
+__author__ = "liguangyu"
+
+"""
+case_tag:cmdc_api,cmdc验证按条件停用草稿状态的套包,2264,2264-47,sit,bs
+主数据平台:运营后台管理系统Excel导入接口
+"""
+
+from common.common_func import commonFuc
+from air_case.cmdc_login.后台管理系统登录.后台管理系统登录 import CmdcDoLogin
+from common.handle_excel import HandleExcel
+import requests
+import json
+import os
+
+
+module = "cmdc_special_fresenius_group"
+
+# 第一步登录后台运营平台获取cmdc_access_token
+# 获取登录所需账号密码
+username = commonFuc().get_business_data(module, "username1")
+password = commonFuc().get_business_data(module, "password1")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcDoLogin(username, password).get_token()
+headers = commonFuc().get_business_data(module, "json_headers2", cmdc_access_token)
+
+# 获取文件
+BASE_DIR = os.path.dirname(os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))))
+file_path = BASE_DIR + "/data/cmdc_files/套包按条件停用.xlsx"
+
+# 套包状态-草稿状态
+group_status = 0
+
+# 获取套包列表
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "group_list")
+request_body = commonFuc().get_business_data(module, "group_payload", group_status)
+result = requests.post(url, headers=headers, json=request_body)
+result = json.loads(result.content)
+
+# 获取套包信息groupCode、groupName、groupId
+group_code = result["data"]["list"][0]["groupCode"]
+group_name = result["data"]["list"][0]["groupName"]
+group_id = result["data"]["list"][0]["groupId"]
+
+# 将套包信息写入文件中
+excel = HandleExcel(file_path, "Sheet1")
+excel.write_data(row=2, column=1, value=group_code)
+excel.write_data(row=2, column=2, value=group_name)
+
+# 第二步进行套包数据导入操作
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url10")
+request_body = commonFuc().get_business_data(module, "payload11")
+
+# 获取文件
+file = open(file_path, "rb")
+files = {"file": file}
+
+"""
+ 场景:验证按条件停用套包功能,是否可以停用草稿状态的套包
+ 用例名称:验证按条件停用草稿状态的套包
+ 输出:{"errList":["%s"]}
+"""
+
+# 发送请求
+result = requests.post(url, files=files, headers=headers, data=request_body)
+result = json.loads(result.content)
+file.close()
+# 截取结果中errList信息
+result = {"errList": result["data"]["errMsg"]["errList"]}
+
+# 获取预期结果
+err_list = "平台套包编号【{}】 在待停用记录里不存在!".format(group_code)
+check_dict = commonFuc().get_business_data(module, "checkDict11", err_list)
+# 断言实际结果中是否包含预期结果的内容
+commonFuc().check_result(check_dict, result)
diff --git "a/air_case/cmdc_special_fresenius_group/\346\214\211\346\235\241\344\273\266\345\201\234\347\224\250\345\212\237\350\203\275\351\252\214\350\257\201.air/\346\214\211\346\235\241\344\273\266\345\201\234\347\224\250\345\212\237\350\203\275\351\252\214\350\257\201.py" "b/air_case/cmdc_special_fresenius_group/\346\214\211\346\235\241\344\273\266\345\201\234\347\224\250\345\212\237\350\203\275\351\252\214\350\257\201.air/\346\214\211\346\235\241\344\273\266\345\201\234\347\224\250\345\212\237\350\203\275\351\252\214\350\257\201.py"
new file mode 100644
index 0000000000000000000000000000000000000000..8b95aad85ec309c671a9365a0f808bb052a83973
--- /dev/null
+++ "b/air_case/cmdc_special_fresenius_group/\346\214\211\346\235\241\344\273\266\345\201\234\347\224\250\345\212\237\350\203\275\351\252\214\350\257\201.air/\346\214\211\346\235\241\344\273\266\345\201\234\347\224\250\345\212\237\350\203\275\351\252\214\350\257\201.py"
@@ -0,0 +1,89 @@
+# -*- encoding=utf8 -*-
+__author__ = "liguangyu"
+
+"""
+case_tag:cmdc_api,cmdc按条件停用套包验证,2264,2264-45,sit,bs
+主数据平台:运营后台管理系统Excel导入接口和套包按条件停用接口
+"""
+
+from common.common_func import commonFuc
+from air_case.cmdc_login.后台管理系统登录.后台管理系统登录 import CmdcDoLogin
+from common.handle_excel import HandleExcel
+from common.db.db import mySql
+import requests
+import json
+import os
+
+
+module = "cmdc_special_fresenius_group"
+
+# 第一步登录后台运营平台获取cmdc_access_token
+# 获取登录所需账号密码
+username = commonFuc().get_business_data(module, "username1")
+password = commonFuc().get_business_data(module, "password1")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcDoLogin(username, password).get_token()
+headers = commonFuc().get_business_data(module, "json_headers2", cmdc_access_token)
+
+# 获取文件
+BASE_DIR = os.path.dirname(os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))))
+file_path = BASE_DIR + "/data/cmdc_files/套包按条件停用.xlsx"
+
+# 套包状态-启用状态
+group_status = 1
+
+# 获取套包列表
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "group_list")
+request_body = commonFuc().get_business_data(module, "group_payload", group_status)
+result = requests.post(url, headers=headers, json=request_body)
+result = json.loads(result.content)
+
+# 获取套包信息groupCode、groupName、groupId
+group_code = result["data"]["list"][0]["groupCode"]
+group_name = result["data"]["list"][0]["groupName"]
+group_id = result["data"]["list"][0]["groupId"]
+
+# 将套包信息写入文件中
+excel = HandleExcel(file_path, "Sheet1")
+excel.write_data(row=2, column=1, value=group_code)
+excel.write_data(row=2, column=2, value=group_name)
+
+# 第二步进行套包数据导入操作
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url10")
+request_body = commonFuc().get_business_data(module, "payload10")
+
+# 获取文件
+file = open(file_path, "rb")
+files = {"file": file}
+# 发送请求
+result = requests.post(url, files=files, headers=headers, data=request_body)
+result = json.loads(result.content)
+file.close()
+
+# 第三步按条件启用套包
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url7")
+request_body = {"groupIds": [group_id], "type": 1, "remarks": "验证套包停用功能"}
+
+"""
+ 场景:验证按条件停用套包功能
+ 用例名称:按条件停用套包验证
+ 输出:{"status":2}
+"""
+
+# 发送请求
+result = requests.post(url, headers=headers, json=request_body)
+result = json.loads(result.content)
+
+# 数据库操作
+mysql_handle = mySql()
+# 获取conf.ini文件中配置的数据库信息
+host, port, user, pwd = mysql_handle.getConf(db="cmdc_db")
+
+# 数据库查询套包状态
+sql = "SELECT t.status FROM `cmdc-order`.tc_fresenius_group t WHERE groupId = {}".format(group_id)
+result = {"status": mysql_handle.selectSql(host, port, user, pwd, "cmdc-order", sql)[0][0]}
+
+# 获取预期结果
+check_dict = commonFuc().get_business_data(module, "checkDict7")
+# 断言实际结果中是否包含预期结果的内容
+commonFuc().check_result(check_dict, result)
diff --git "a/air_case/cmdc_special_fresenius_group/\346\214\211\346\235\241\344\273\266\345\220\257\347\224\250_\345\220\257\347\224\250\345\267\262\345\201\234\347\224\250\347\232\204\345\245\227\345\214\205_\345\245\227\345\214\205\345\225\206\345\223\201\347\256\241\347\220\206.air/\346\214\211\346\235\241\344\273\266\345\220\257\347\224\250_\345\220\257\347\224\250\345\267\262\345\201\234\347\224\250\347\232\204\345\245\227\345\214\205_\345\245\227\345\214\205\345\225\206\345\223\201\347\256\241\347\220\206.py" "b/air_case/cmdc_special_fresenius_group/\346\214\211\346\235\241\344\273\266\345\220\257\347\224\250_\345\220\257\347\224\250\345\267\262\345\201\234\347\224\250\347\232\204\345\245\227\345\214\205_\345\245\227\345\214\205\345\225\206\345\223\201\347\256\241\347\220\206.air/\346\214\211\346\235\241\344\273\266\345\220\257\347\224\250_\345\220\257\347\224\250\345\267\262\345\201\234\347\224\250\347\232\204\345\245\227\345\214\205_\345\245\227\345\214\205\345\225\206\345\223\201\347\256\241\347\220\206.py"
new file mode 100644
index 0000000000000000000000000000000000000000..22c47770a6b7daf0446a52b43dafea5327b6e336
--- /dev/null
+++ "b/air_case/cmdc_special_fresenius_group/\346\214\211\346\235\241\344\273\266\345\220\257\347\224\250_\345\220\257\347\224\250\345\267\262\345\201\234\347\224\250\347\232\204\345\245\227\345\214\205_\345\245\227\345\214\205\345\225\206\345\223\201\347\256\241\347\220\206.air/\346\214\211\346\235\241\344\273\266\345\220\257\347\224\250_\345\220\257\347\224\250\345\267\262\345\201\234\347\224\250\347\232\204\345\245\227\345\214\205_\345\245\227\345\214\205\345\225\206\345\223\201\347\256\241\347\220\206.py"
@@ -0,0 +1,73 @@
+# -*- encoding=utf8 -*-
+__author__ = "liguangyu"
+
+"""
+case_tag:cmdc_api,cmdc验证按条件启用已停用的套包,2264,2264-45,sit,bs
+主数据平台:运营后台管理系统Excel导入接口
+"""
+
+from common.common_func import commonFuc
+from air_case.cmdc_login.后台管理系统登录.后台管理系统登录 import CmdcDoLogin
+from common.handle_excel import HandleExcel
+import requests
+import json
+import os
+
+module = "cmdc_special_fresenius_group"
+
+# 第一步登录后台运营平台获取cmdc_access_token
+# 获取登录所需账号密码
+username = commonFuc().get_business_data(module, "username1")
+password = commonFuc().get_business_data(module, "password1")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcDoLogin(username, password).get_token()
+headers = commonFuc().get_business_data(module, "json_headers2", cmdc_access_token)
+
+# 获取文件
+BASE_DIR = os.path.dirname(os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))))
+file_path = BASE_DIR + "/data/cmdc_files/套包按条件启用.xlsx"
+
+# 套包状态-停用状态
+group_status = 2
+
+# 获取套包列表
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "group_list")
+request_body = commonFuc().get_business_data(module, "group_payload", group_status)
+result = requests.post(url, headers=headers, json=request_body)
+result = json.loads(result.content)
+
+# 获取套包信息groupCode、groupName
+group_code = result["data"]["list"][0]["groupCode"]
+group_name = result["data"]["list"][0]["groupName"]
+
+# 将套包信息写入文件中
+excel = HandleExcel(file_path, "Sheet1")
+excel.write_data(row=2, column=1, value=group_code)
+excel.write_data(row=2, column=2, value=group_name)
+
+# 第二步进行套包数据导入操作
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url10")
+request_body = commonFuc().get_business_data(module, "payload10")
+
+# 获取文件
+file = open(file_path, "rb")
+files = {"file": file}
+
+"""
+ 场景:验证使用按条件启用功能,是否可以启用已经是停用状态下的套包
+ 用例名称:验证按条件启用已停用的套包
+ 输出:{"errList":["%s"]}
+"""
+
+# 发送请求
+result = requests.post(url, files=files, headers=headers, data=request_body)
+result = json.loads(result.content)
+file.close()
+# 截取结果中errList信息
+result = {"errList": result["data"]["errMsg"]["errList"]}
+
+# 获取预期结果
+err_list = "平台套包编号【{}】 在待启用记录里不存在!".format(group_code)
+check_dict = commonFuc().get_business_data(module, "checkDict11", err_list)
+# 断言实际结果中是否包含预期结果的内容
+commonFuc().check_result(check_dict, result)
diff --git "a/air_case/cmdc_special_fresenius_group/\346\214\211\346\235\241\344\273\266\345\220\257\347\224\250_\345\220\257\347\224\250\345\267\262\345\220\257\347\224\250\347\232\204\345\245\227\345\214\205_\345\245\227\345\214\205\345\225\206\345\223\201\347\256\241\347\220\206.air/\346\214\211\346\235\241\344\273\266\345\220\257\347\224\250_\345\220\257\347\224\250\345\267\262\345\220\257\347\224\250\347\232\204\345\245\227\345\214\205_\345\245\227\345\214\205\345\225\206\345\223\201\347\256\241\347\220\206.py" "b/air_case/cmdc_special_fresenius_group/\346\214\211\346\235\241\344\273\266\345\220\257\347\224\250_\345\220\257\347\224\250\345\267\262\345\220\257\347\224\250\347\232\204\345\245\227\345\214\205_\345\245\227\345\214\205\345\225\206\345\223\201\347\256\241\347\220\206.air/\346\214\211\346\235\241\344\273\266\345\220\257\347\224\250_\345\220\257\347\224\250\345\267\262\345\220\257\347\224\250\347\232\204\345\245\227\345\214\205_\345\245\227\345\214\205\345\225\206\345\223\201\347\256\241\347\220\206.py"
new file mode 100644
index 0000000000000000000000000000000000000000..cf671a016b2249f25ecb5afaad40e63aa075ac7a
--- /dev/null
+++ "b/air_case/cmdc_special_fresenius_group/\346\214\211\346\235\241\344\273\266\345\220\257\347\224\250_\345\220\257\347\224\250\345\267\262\345\220\257\347\224\250\347\232\204\345\245\227\345\214\205_\345\245\227\345\214\205\345\225\206\345\223\201\347\256\241\347\220\206.air/\346\214\211\346\235\241\344\273\266\345\220\257\347\224\250_\345\220\257\347\224\250\345\267\262\345\220\257\347\224\250\347\232\204\345\245\227\345\214\205_\345\245\227\345\214\205\345\225\206\345\223\201\347\256\241\347\220\206.py"
@@ -0,0 +1,73 @@
+# -*- encoding=utf8 -*-
+__author__ = "liguangyu"
+
+"""
+case_tag:cmdc_api,cmdc验证按条件启用已启用的套包,2264,2264-44,sit,bs
+主数据平台:运营后台管理系统Excel导入接口
+"""
+
+from common.common_func import commonFuc
+from air_case.cmdc_login.后台管理系统登录.后台管理系统登录 import CmdcDoLogin
+from common.handle_excel import HandleExcel
+import requests
+import json
+import os
+
+module = "cmdc_special_fresenius_group"
+
+# 第一步登录后台运营平台获取cmdc_access_token
+# 获取登录所需账号密码
+username = commonFuc().get_business_data(module, "username1")
+password = commonFuc().get_business_data(module, "password1")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcDoLogin(username, password).get_token()
+headers = commonFuc().get_business_data(module, "json_headers2", cmdc_access_token)
+
+# 获取文件
+BASE_DIR = os.path.dirname(os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))))
+file_path = BASE_DIR + "/data/cmdc_files/套包按条件启用.xlsx"
+
+# 套包状态-启用状态
+group_status = 1
+
+# 获取套包列表
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "group_list")
+request_body = commonFuc().get_business_data(module, "group_payload", group_status)
+result = requests.post(url, headers=headers, json=request_body)
+result = json.loads(result.content)
+
+# 获取套包信息groupCode、groupName
+group_code = result["data"]["list"][0]["groupCode"]
+group_name = result["data"]["list"][0]["groupName"]
+
+# 将套包信息写入文件中
+excel = HandleExcel(file_path, "Sheet1")
+excel.write_data(row=2, column=1, value=group_code)
+excel.write_data(row=2, column=2, value=group_name)
+
+# 第二步进行套包数据导入操作
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url10")
+request_body = commonFuc().get_business_data(module, "payload10")
+
+# 获取文件
+file = open(file_path, "rb")
+files = {"file": file}
+
+"""
+ 场景:验证使用按条件启用功能,是否可以启用已经是启用状态下的套包
+ 用例名称:验证按条件启用已启用的套包
+ 输出:{"errList":["%s"]}
+"""
+
+# 发送请求
+result = requests.post(url, files=files, headers=headers, data=request_body)
+result = json.loads(result.content)
+file.close()
+# 截取结果中errList信息
+result = {"errList": result["data"]["errMsg"]["errList"]}
+
+# 获取预期结果
+err_list = "平台套包编号【{}】 在待启用记录里不存在!".format(group_code)
+check_dict = commonFuc().get_business_data(module, "checkDict11", err_list)
+# 断言实际结果中是否包含预期结果的内容
+commonFuc().check_result(check_dict, result)
diff --git "a/air_case/cmdc_special_fresenius_group/\346\214\211\346\235\241\344\273\266\345\220\257\347\224\250\351\252\214\350\257\201.air/\346\214\211\346\235\241\344\273\266\345\220\257\347\224\250\351\252\214\350\257\201.py" "b/air_case/cmdc_special_fresenius_group/\346\214\211\346\235\241\344\273\266\345\220\257\347\224\250\351\252\214\350\257\201.air/\346\214\211\346\235\241\344\273\266\345\220\257\347\224\250\351\252\214\350\257\201.py"
new file mode 100644
index 0000000000000000000000000000000000000000..ccfe6b57774e08250f32210d9e2326a082867797
--- /dev/null
+++ "b/air_case/cmdc_special_fresenius_group/\346\214\211\346\235\241\344\273\266\345\220\257\347\224\250\351\252\214\350\257\201.air/\346\214\211\346\235\241\344\273\266\345\220\257\347\224\250\351\252\214\350\257\201.py"
@@ -0,0 +1,89 @@
+# -*- encoding=utf8 -*-
+__author__ = "liguangyu"
+
+"""
+case_tag:cmdc_api,cmdc按条件启用套包验证,2264,2264-43,sit,bs
+主数据平台:运营后台管理系统Excel导入接口和套包按条件启用接口
+"""
+
+from common.common_func import commonFuc
+from air_case.cmdc_login.后台管理系统登录.后台管理系统登录 import CmdcDoLogin
+from common.handle_excel import HandleExcel
+from common.db.db import mySql
+import requests
+import json
+import os
+
+
+module = "cmdc_special_fresenius_group"
+
+# 第一步登录后台运营平台获取cmdc_access_token
+# 获取登录所需账号密码
+username = commonFuc().get_business_data(module, "username1")
+password = commonFuc().get_business_data(module, "password1")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcDoLogin(username, password).get_token()
+headers = commonFuc().get_business_data(module, "json_headers2", cmdc_access_token)
+
+# 获取文件
+BASE_DIR = os.path.dirname(os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))))
+file_path = BASE_DIR + "/data/cmdc_files/套包按条件启用.xlsx"
+
+# 套包状态-草稿状态
+group_status = 0
+
+# 获取套包列表
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "group_list")
+request_body = commonFuc().get_business_data(module, "group_payload", group_status)
+result = requests.post(url, headers=headers, json=request_body)
+result = json.loads(result.content)
+
+# 获取套包信息groupCode、groupName、groupId
+group_code = result["data"]["list"][0]["groupCode"]
+group_name = result["data"]["list"][0]["groupName"]
+group_id = result["data"]["list"][0]["groupId"]
+
+# 将套包信息写入文件中
+excel = HandleExcel(file_path, "Sheet1")
+excel.write_data(row=2, column=1, value=group_code)
+excel.write_data(row=2, column=2, value=group_name)
+
+# 第二步进行套包数据导入操作
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url10")
+request_body = commonFuc().get_business_data(module, "payload10")
+
+# 获取文件
+file = open(file_path, "rb")
+files = {"file": file}
+# 发送请求
+result = requests.post(url, files=files, headers=headers, data=request_body)
+result = json.loads(result.content)
+file.close()
+
+# 第三步按条件启用套包
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url7")
+request_body = {"groupIds": [group_id], "type": 0, "remarks": ""}
+
+"""
+ 场景:按条件启用套包
+ 用例名称:按条件启用套包
+ 输出:{"status":1}
+"""
+
+# 发送请求
+result = requests.post(url, headers=headers, json=request_body)
+result = json.loads(result.content)
+
+# 数据库操作
+mysql_handle = mySql()
+# 获取conf.ini文件中配置的数据库信息
+host, port, user, pwd = mysql_handle.getConf(db="cmdc_db")
+
+# 数据库查询套包状态
+sql = "SELECT t.status FROM `cmdc-order`.tc_fresenius_group t WHERE groupId = {}".format(group_id)
+result = {"status": mysql_handle.selectSql(host, port, user, pwd, "cmdc-order", sql)[0][0]}
+
+# 获取预期结果
+check_dict = commonFuc().get_business_data(module, "checkDict6")
+# 断言实际结果中是否包含预期结果的内容
+commonFuc().check_result(check_dict, result)
diff --git "a/air_case/cmdc_special_fresenius_group/\346\226\260\350\200\201\345\225\206\345\223\201\345\205\263\347\263\273\347\274\226\347\240\201\347\273\264\346\212\244\346\226\260\345\242\236\351\252\214\350\257\201.air/\346\226\260\350\200\201\345\225\206\345\223\201\345\205\263\347\263\273\347\274\226\347\240\201\347\273\264\346\212\244\346\226\260\345\242\236\351\252\214\350\257\201.py" "b/air_case/cmdc_special_fresenius_group/\346\226\260\350\200\201\345\225\206\345\223\201\345\205\263\347\263\273\347\274\226\347\240\201\347\273\264\346\212\244\346\226\260\345\242\236\351\252\214\350\257\201.air/\346\226\260\350\200\201\345\225\206\345\223\201\345\205\263\347\263\273\347\274\226\347\240\201\347\273\264\346\212\244\346\226\260\345\242\236\351\252\214\350\257\201.py"
new file mode 100644
index 0000000000000000000000000000000000000000..f91cf50a8295ad0031074e9a58409b738b982cfb
--- /dev/null
+++ "b/air_case/cmdc_special_fresenius_group/\346\226\260\350\200\201\345\225\206\345\223\201\345\205\263\347\263\273\347\274\226\347\240\201\347\273\264\346\212\244\346\226\260\345\242\236\351\252\214\350\257\201.air/\346\226\260\350\200\201\345\225\206\345\223\201\345\205\263\347\263\273\347\274\226\347\240\201\347\273\264\346\212\244\346\226\260\345\242\236\351\252\214\350\257\201.py"
@@ -0,0 +1,61 @@
+# -*- encoding=utf8 -*-
+__author__ = "liguangyu"
+
+"""
+case_tag:cmdc_api,cmdc新老商品关系编码维护新增验证,2264,2264-65,sit,bs
+主数据平台:运营后台管理系统新老商品关系编码维护新增接口
+"""
+
+from common.common_func import commonFuc
+from air_case.cmdc_login.后台管理系统登录.后台管理系统登录 import CmdcDoLogin
+import requests
+import json
+import random
+
+module = "cmdc_special_fresenius_group"
+
+# 第一步登录后台运营平台获取cmdc_access_token
+# 获取登录所需账号密码
+username = commonFuc().get_business_data(module, "username1")
+password = commonFuc().get_business_data(module, "password1")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcDoLogin(username, password).get_token()
+headers = commonFuc().get_business_data(module, "json_headers2", cmdc_access_token)
+
+# 获取商品列表
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "product_list")
+request_body = commonFuc().get_business_data(module, "product_payload")
+result = requests.post(url, headers=headers, json=request_body)
+result = json.loads(result.content)
+
+# 随机获取不相同两个商品信息
+product_id_a = random.randint(1, len(result["data"]["list"]) - 2)
+product_a = result["data"]["list"][product_id_a]
+product_id_b = random.randint(product_id_a + 1, len(result["data"]["list"]))
+product_b = result["data"]["list"][product_id_b]
+
+# 第二步进行新老商品关系编码维护新增
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url19")
+request_body = {"manufacturerGroupName": "", "manufacturerGroupCode": "", "groupName": "", "limitPurchase": "",
+ "isLimit": 0, "products": [product_a, product_b]}
+
+"""
+ 场景:新老商品关系编码维护新增验证
+ 用例名称:新老商品关系编码维护新增验证
+ 输出:{"success":true,"code":"200","message":"OK"}
+"""
+
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+print(result)
+if result["success"]:
+ # 获取预期结果
+ check_dict = commonFuc().get_business_data(module, "checkDict20")
+ # 断言实际结果中是否包含预期结果的内容
+ commonFuc().check_result(check_dict, result)
+else:
+ # 获取预期结果
+ check_dict = commonFuc().get_business_data(module, "checkDict20_1")
+ # 断言实际结果中是否包含预期结果的内容
+ commonFuc().check_result(check_dict, result)
diff --git "a/air_case/cmdc_special_fresenius_group/\346\226\260\350\200\201\347\274\226\347\240\201\347\273\204\345\201\234\347\224\250.air/\346\226\260\350\200\201\347\274\226\347\240\201\347\273\204\345\201\234\347\224\250.py" "b/air_case/cmdc_special_fresenius_group/\346\226\260\350\200\201\347\274\226\347\240\201\347\273\204\345\201\234\347\224\250.air/\346\226\260\350\200\201\347\274\226\347\240\201\347\273\204\345\201\234\347\224\250.py"
new file mode 100644
index 0000000000000000000000000000000000000000..c1595cbf8eda536619c692edd69f1cae1c601ceb
--- /dev/null
+++ "b/air_case/cmdc_special_fresenius_group/\346\226\260\350\200\201\347\274\226\347\240\201\347\273\204\345\201\234\347\224\250.air/\346\226\260\350\200\201\347\274\226\347\240\201\347\273\204\345\201\234\347\224\250.py"
@@ -0,0 +1,62 @@
+# -*- encoding=utf8 -*-
+__author__ = "liguangyu"
+
+"""
+case_tag:cmdc_api,cmdc新老编码组停用验证,2264,2264-68,sit,bs
+主数据平台:运营后台管理系统新老编码组停用接口
+"""
+
+from common.common_func import commonFuc
+from air_case.cmdc_login.后台管理系统登录.后台管理系统登录 import CmdcDoLogin
+from common.db.db import mySql
+import requests
+import json
+
+module = "cmdc_special_fresenius_group"
+
+# 第一步登录后台运营平台获取cmdc_access_token
+# 获取登录所需账号密码
+username = commonFuc().get_business_data(module, "username1")
+password = commonFuc().get_business_data(module, "password1")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcDoLogin(username, password).get_token()
+headers = commonFuc().get_business_data(module, "json_headers2", cmdc_access_token)
+
+# 获取新老商品关系编码列表
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url_product_code")
+request_body = commonFuc().get_business_data(module, "payload_product_code_1")
+# 发送请求
+result = requests.post(url, headers=headers, json=request_body)
+result = json.loads(result.content)
+
+# 获取新老编码组信息
+group_id = result["data"]["list"][0]["groupId"]
+
+# 第二步进行新老商品关系编码维护停用操作
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module,
+ "url20") + "?" + "groupId={}&remarks=".format(
+ group_id)
+
+"""
+ 场景:新老编码组停用验证
+ 用例名称:新老编码组停用验证
+ 输出:{"status":2}
+"""
+
+# 发送请求
+result = requests.get(url, headers=headers)
+result = json.loads(result.content)
+
+# 数据库操作
+mysql_handle = mySql()
+# 获取conf.ini文件中配置的数据库信息
+host, port, user, pwd = mysql_handle.getConf(db="cmdc_db")
+
+# 数据库查询套包状态
+sql = "SELECT t.status FROM `cmdc-order`.tc_fresenius_group t WHERE groupId = {}".format(group_id)
+result = {"status": mysql_handle.selectSql(host, port, user, pwd, "cmdc-order", sql)[0][0]}
+
+# 获取预期结果
+check_dict = commonFuc().get_business_data(module, "checkDict21")
+# 断言实际结果中是否包含预期结果的内容
+commonFuc().check_result(check_dict, result)
diff --git "a/air_case/cmdc_special_fresenius_group/\347\211\271\344\273\267\345\215\225\345\223\201_\345\210\233\345\273\272\351\234\200\346\261\202\345\215\225.air/\347\211\271\344\273\267\345\215\225\345\223\201_\345\210\233\345\273\272\351\234\200\346\261\202\345\215\225.py" "b/air_case/cmdc_special_fresenius_group/\347\211\271\344\273\267\345\215\225\345\223\201_\345\210\233\345\273\272\351\234\200\346\261\202\345\215\225.air/\347\211\271\344\273\267\345\215\225\345\223\201_\345\210\233\345\273\272\351\234\200\346\261\202\345\215\225.py"
new file mode 100644
index 0000000000000000000000000000000000000000..f471a0b2a473e16144d2f90d555bd41ef6c5de65
--- /dev/null
+++ "b/air_case/cmdc_special_fresenius_group/\347\211\271\344\273\267\345\215\225\345\223\201_\345\210\233\345\273\272\351\234\200\346\261\202\345\215\225.air/\347\211\271\344\273\267\345\215\225\345\223\201_\345\210\233\345\273\272\351\234\200\346\261\202\345\215\225.py"
@@ -0,0 +1,57 @@
+# -*- encoding=utf8 -*-
+__author__ = "liguangyu"
+
+"""
+case_tag:cmdc_api,cmdc特价单品_创建需求单,2264,2264-75,sit,bs
+主数据平台:多采商城需求单创建接口
+"""
+
+from common.common_func import commonFuc
+from air_case.cmdc_login.多采商城登录.多采商城登录 import CmdcMaiiLogin
+from common.db.db import mySql
+import requests
+import json
+
+module = "cmdc_special_fresenius_group"
+
+# 获取登录所需账号密码
+username = commonFuc().get_business_data(module, "username")
+password = commonFuc().get_business_data(module, "password")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcMaiiLogin(username, password).get_token()
+headers = commonFuc().get_business_data(module, "json_headers1", cmdc_access_token)
+
+# 进行需求单创建
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url46")
+# print(url)
+request_body = commonFuc().get_business_data(module, "payload46")
+
+"""
+ 场景: 特价商品需求单创建验证
+ 用例名称:特价商品需求单创建验证
+ 输出:{"demandParentCode": "%s"}
+"""
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+# 获取创建需求成功后需求单信息
+demand_parent_code = result["data"]["国药集团上海医疗器械有限公司"]["demandParentCode"]
+demand_parent_id = result["data"]["国药集团上海医疗器械有限公司"]["demandParentId"]
+
+# 实际结果
+result = {"demandParentCode": demand_parent_code}
+
+# 数据库操作
+mysql_handle = mySql()
+# 获取conf.ini文件中配置的数据库信息
+host, port, user, pwd = mysql_handle.getConf(db="cmdc_db")
+
+# 数据库查询新增特价单品
+sql = "SELECT t.demandParentCode FROM `cmdc-order`.tc_demand t WHERE demandParentId = {};".format(demand_parent_id)
+
+# 获取预期结果
+check_dict = commonFuc().get_business_data(module, "checkDict46",
+ mysql_handle.selectSql(host, port, user, pwd, "cmdc-order", sql)[0][0])
+print(check_dict)
+# 断言实际结果中是否包含预期结果的内容
+commonFuc().check_result(check_dict, result)
diff --git "a/air_case/cmdc_special_fresenius_group/\347\211\271\344\273\267\345\215\225\345\223\201_\345\212\240\345\205\245\350\264\255\347\211\251\350\275\246_\350\264\255\347\211\251\350\275\246\345\261\225\347\244\272.air/\347\211\271\344\273\267\345\215\225\345\223\201_\345\212\240\345\205\245\350\264\255\347\211\251\350\275\246_\350\264\255\347\211\251\350\275\246\345\261\225\347\244\272.py" "b/air_case/cmdc_special_fresenius_group/\347\211\271\344\273\267\345\215\225\345\223\201_\345\212\240\345\205\245\350\264\255\347\211\251\350\275\246_\350\264\255\347\211\251\350\275\246\345\261\225\347\244\272.air/\347\211\271\344\273\267\345\215\225\345\223\201_\345\212\240\345\205\245\350\264\255\347\211\251\350\275\246_\350\264\255\347\211\251\350\275\246\345\261\225\347\244\272.py"
new file mode 100644
index 0000000000000000000000000000000000000000..32fa8150051cb888780f1cb4e08383008453bdf7
--- /dev/null
+++ "b/air_case/cmdc_special_fresenius_group/\347\211\271\344\273\267\345\215\225\345\223\201_\345\212\240\345\205\245\350\264\255\347\211\251\350\275\246_\350\264\255\347\211\251\350\275\246\345\261\225\347\244\272.air/\347\211\271\344\273\267\345\215\225\345\223\201_\345\212\240\345\205\245\350\264\255\347\211\251\350\275\246_\350\264\255\347\211\251\350\275\246\345\261\225\347\244\272.py"
@@ -0,0 +1,69 @@
+# -*- encoding=utf8 -*-
+__author__ = "liguangyu"
+
+"""
+case_tag:cmdc_api,cmdc验证特价单品_加入购物车_购物车列表展示,2252,2252-71,sit,bs
+涉及到接口:特价单品加入购物车接口
+"""
+
+from common.common_func import commonFuc
+from air_case.cmdc_login.多采商城登录.多采商城登录 import CmdcMaiiLogin
+import requests
+import json
+
+module = "cmdc_special_fresenius_group"
+
+# 第一步登录多采商城获取token信息
+# 获取登录所需账号密码
+username = commonFuc().get_business_data(module, "username")
+password = commonFuc().get_business_data(module, "password")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcMaiiLogin(username, password).get_token()
+headers = commonFuc().get_business_data(module, "json_headers1", cmdc_access_token)
+
+# 进行站点切换
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url_website")
+request_body = commonFuc().get_business_data(module, "payload_website")
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+
+# 第四步特价单品加入购物车
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url43")
+request_body = commonFuc().get_business_data(module, "payload43")
+
+"""
+ 场景:验证特价单品加入购物车功能,并且在购物车列表正常展示
+ 用例名称:验证特价单品_加入购物车_购物车列表展示
+ 输出:{"groupPrice": 101.0, "timeStr":"2023-11-09至2031-12-31", "documentNo":"特价单品验证毋动"}
+"""
+
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+print(result)
+# 获取预期结果
+check_dict = commonFuc().get_business_data(module, "checkDict43")
+# # 断言实际结果中是否包含预期结果的内容
+commonFuc().check_result(check_dict, result)
+
+# 查询购物车列表
+# 进行站点切换
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url_buyercart")
+request_body = commonFuc().get_business_data(module, "payload_buyercart")
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+print(result)
+
+# 过滤查找添加的单品
+for i in result["data"]["list"]:
+ if i["companyCode"] == "00111":
+ for j in i["list"]:
+ if j["buyerCartId"] == 19177:
+ result = {"groupPrice": j["groupPrice"], "timeStr": j["timeStr"], "documentNo": j["documentNo"],
+ "buyCartNum": 5}
+ print(result)
+ # 获取预期结果
+ check_dict = commonFuc().get_business_data(module, "checkDict_buyercart")
+ # # 断言实际结果中是否包含预期结果的内容
+ commonFuc().check_result(check_dict, result)
diff --git "a/air_case/cmdc_special_fresenius_group/\347\211\271\344\273\267\345\215\225\345\223\201_\351\231\220\350\264\255\351\252\214\350\257\201.air/\347\211\271\344\273\267\345\215\225\345\223\201_\351\231\220\350\264\255\351\252\214\350\257\201.py" "b/air_case/cmdc_special_fresenius_group/\347\211\271\344\273\267\345\215\225\345\223\201_\351\231\220\350\264\255\351\252\214\350\257\201.air/\347\211\271\344\273\267\345\215\225\345\223\201_\351\231\220\350\264\255\351\252\214\350\257\201.py"
new file mode 100644
index 0000000000000000000000000000000000000000..172cc458dec85c6eee919356de9b7e1e771b3b84
--- /dev/null
+++ "b/air_case/cmdc_special_fresenius_group/\347\211\271\344\273\267\345\215\225\345\223\201_\351\231\220\350\264\255\351\252\214\350\257\201.air/\347\211\271\344\273\267\345\215\225\345\223\201_\351\231\220\350\264\255\351\252\214\350\257\201.py"
@@ -0,0 +1,59 @@
+# -*- encoding=utf8 -*-
+__author__ = "liguangyu"
+
+"""
+case_tag:cmdc_api,cmdc特价单品_限购验证,2252,2252-73,sit,bs
+涉及到接口:特价单品列表查询、splitGroup等接口
+"""
+
+from common.common_func import commonFuc
+from air_case.cmdc_login.后台管理系统登录.后台管理系统登录 import CmdcDoLogin
+from air_case.cmdc_login.多采商城登录.多采商城登录 import CmdcMaiiLogin
+import requests
+import json
+
+module = "cmdc_special_fresenius_group"
+
+# 第一步登录后台运营平台获取cmdc_access_token
+# 获取登录所需账号密码
+username = commonFuc().get_business_data(module, "username1")
+password = commonFuc().get_business_data(module, "password1")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcDoLogin(username, password).get_token()
+headers = commonFuc().get_business_data(module, "json_headers", cmdc_access_token)
+
+# 第二步特价单品查询
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url1")
+request_body = commonFuc().get_business_data(module, "payload40")
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+
+# 获取商品信息
+fresenius_price_id = result["data"]["list"][0]["freseniusPriceId"]
+
+# 第三步进行限购验证
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url42")
+request_body = commonFuc().get_business_data(module, "payload42", fresenius_price_id)
+
+"""
+
+ 场景: 特价单品限购验证
+ 用例名称:特价单品限购验证
+ 输出:{"purchaseQuantity":5"}
+"""
+
+# 发送请求
+result = requests.get(url, params=request_body, headers=headers)
+result = json.loads(result.content)
+
+# 进行相应判断,当success为true时,说明超限额,否则未超限额
+if result["success"]:
+ # 获取结果中限购数量
+ result = {"purchaseQuantity": result["data"]["purchaseQuantity"]}
+ # 获取预期结果
+ check_dict = commonFuc().get_business_data(module, "checkDict42")
+ # 断言实际结果中是否包含预期结果的内容
+ commonFuc().check_result(check_dict, result)
+else:
+ print(result)
diff --git "a/air_case/cmdc_special_fresenius_group/\347\211\271\344\273\267\345\215\225\345\223\201\346\226\260\345\242\236\351\252\214\350\257\201.air/\347\211\271\344\273\267\345\215\225\345\223\201\346\226\260\345\242\236\351\252\214\350\257\201.py" "b/air_case/cmdc_special_fresenius_group/\347\211\271\344\273\267\345\215\225\345\223\201\346\226\260\345\242\236\351\252\214\350\257\201.air/\347\211\271\344\273\267\345\215\225\345\223\201\346\226\260\345\242\236\351\252\214\350\257\201.py"
new file mode 100644
index 0000000000000000000000000000000000000000..48f9bbcaea4aebc03a31fe66e49a3bf654134af5
--- /dev/null
+++ "b/air_case/cmdc_special_fresenius_group/\347\211\271\344\273\267\345\215\225\345\223\201\346\226\260\345\242\236\351\252\214\350\257\201.air/\347\211\271\344\273\267\345\215\225\345\223\201\346\226\260\345\242\236\351\252\214\350\257\201.py"
@@ -0,0 +1,103 @@
+# -*- encoding=utf8 -*-
+__author__ = "liguangyu"
+
+"""
+case_tag:cmdc_api,cmdc特价单品新增功能验证,2264,2264-60,sit,bs
+主数据平台:后台运营系统客户列表查询、商品列表查询、特价单品新增等接口
+"""
+
+from common.common_func import commonFuc
+from air_case.cmdc_login.后台管理系统登录.后台管理系统登录 import CmdcDoLogin
+from datetime import timedelta, date
+from common.db.db import mySql
+import random
+import requests
+import json
+import uuid
+
+module = "cmdc_special_fresenius_group"
+
+# 第一步登录后台运营平台获取cmdc_access_token
+# 获取登录所需账号密码
+username = commonFuc().get_business_data(module, "username1")
+password = commonFuc().get_business_data(module, "password1")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcDoLogin(username, password).get_token()
+headers = commonFuc().get_business_data(module, "json_headers", cmdc_access_token)
+
+# 第二步客户列表获取
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "customer_list_url")
+request_body = commonFuc().get_business_data(module, "customer_payload")
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+
+# 生成随机数
+customer_quantity = random.randint(1, len(result["data"]["list"])-1)
+# 随机生成唯一字符串用于ref
+ref_random = str(uuid.uuid4())
+# 客户信息获取
+customer_code = result["data"]["list"][customer_quantity]["customerCode"]
+customer_name = result["data"]["list"][customer_quantity]["customerName"]
+user_name = result["data"]["list"][customer_quantity]["userName"]
+
+# 第三步商品信息获取
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "product_list")
+request_body = commonFuc().get_business_data(module, "product_payload")
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+
+# 获取商品信息
+product_detail = result["data"]["list"][random.randint(1, len(result["data"]["list"]))]
+product_detail["activityUnitAmount"] = customer_quantity
+
+# 随机生成日期
+start_date = date(2000, 1, 1)
+end_date = date.today()
+
+
+def random_date(start, end):
+ delta = end - start
+ random_days = random.randint(0, delta.days)
+ return start + timedelta(days=random_days)
+
+
+random_date = random_date(start_date, end_date)
+# 第四步特价单品新增
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url17")
+request_body = {"manufacturerGroupName": "", "manufacturerGroupCode": "", "groupName": "", "limitPurchase": "",
+ "isLimit": 0, "products": [product_detail], "customerCode": customer_code, "userName": user_name,
+ "customerName": customer_name, "times": [str(start_date), str(random_date)],
+ "documentNo": ref_random,
+ "supplementNo": customer_quantity, "salesProvince": customer_quantity, "salesArea": customer_quantity,
+ "applicationType": customer_quantity, "effectiveTime": str(start_date),
+ "expirationTime": str(random_date),
+ "freseniusProduct": product_detail}
+
+"""
+ 场景: 特价单品新增功能验证
+ 用例名称:特价单品新增功能验证
+ 输出:{"total": 1}
+"""
+
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+print(result)
+# 数据库操作
+mysql_handle = mySql()
+# 获取conf.ini文件中配置的数据库信息
+host, port, user, pwd = mysql_handle.getConf(db="cmdc_db")
+
+# 数据库查询新增特价单品
+sql = "SELECT t.groupId FROM `cmdc-order`.tc_fresenius_agreement_price t " \
+ "WHERE customerCode = {} and documentNo = '{}';".format(customer_code, ref_random)
+print(sql)
+total = len(mysql_handle.selectSql(host, port, user, pwd, "cmdc-order", sql))
+result = {"total": total}
+
+# 获取预期结果
+check_dict = commonFuc().get_business_data(module, "checkDict17")
+# 断言实际结果中是否包含预期结果的内容
+commonFuc().check_result(check_dict, result)
diff --git "a/air_case/cmdc_special_fresenius_group/\347\211\271\344\273\267\345\215\225\345\223\201\346\237\245\350\257\242.air/\347\211\271\344\273\267\345\215\225\345\223\201\346\237\245\350\257\242.py" "b/air_case/cmdc_special_fresenius_group/\347\211\271\344\273\267\345\215\225\345\223\201\346\237\245\350\257\242.air/\347\211\271\344\273\267\345\215\225\345\223\201\346\237\245\350\257\242.py"
new file mode 100644
index 0000000000000000000000000000000000000000..35de927045d73a6c94d7084d860727f4ad9fad6e
--- /dev/null
+++ "b/air_case/cmdc_special_fresenius_group/\347\211\271\344\273\267\345\215\225\345\223\201\346\237\245\350\257\242.air/\347\211\271\344\273\267\345\215\225\345\223\201\346\237\245\350\257\242.py"
@@ -0,0 +1,56 @@
+# -*- encoding=utf8 -*-
+__author__ = "liguangyu"
+
+"""
+case_tag:cmdc_api,cmdc特价单品查询,2264,2264-34,sit,bs
+主数据平台:后台运营系统特价单品查询接口
+"""
+
+from common.common_func import commonFuc
+from air_case.cmdc_login.后台管理系统登录.后台管理系统登录 import CmdcDoLogin
+from common.db.db import mySql
+import requests
+import json
+
+module = "cmdc_special_fresenius_group"
+
+# 第一步登录后台运营平台获取cmdc_access_token
+# 获取登录所需账号密码
+username = commonFuc().get_business_data(module, "username1")
+password = commonFuc().get_business_data(module, "password1")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcDoLogin(username, password).get_token()
+headers = commonFuc().get_business_data(module, "json_headers", cmdc_access_token)
+
+# 第二步特价单品查询
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url1")
+
+request_body = commonFuc().get_business_data(module, "payload1")
+
+"""
+
+ 场景:特价单品查询
+ 用例名称:特价单品查询
+ 输出:{"total":"%s"}
+"""
+
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+
+# 获取特价单品总数量
+result = {"total": result["data"]["total"]}
+
+# 数据库操作
+mysql_handle = mySql()
+# 获取conf.ini文件中配置的数据库信息
+host, port, user, pwd = mysql_handle.getConf(db="cmdc_db")
+
+# 数据库查询特价单品数量
+sql = "SELECT t.groupId FROM `cmdc-order`.tc_fresenius_group t WHERE groupType = 1 and companyCode = 00111;"
+total = len(mysql_handle.selectSql(host, port, user, pwd, "cmdc-order", sql))
+
+# 获取预期结果
+check_dict = commonFuc().get_business_data(module, "checkDict1", total)
+# 断言实际结果中是否包含预期结果的内容
+commonFuc().check_result(check_dict, result)
diff --git "a/air_case/cmdc_special_fresenius_group/\350\216\267\345\217\226\345\256\242\346\210\267\345\210\227\350\241\250.air/\350\216\267\345\217\226\345\256\242\346\210\267\345\210\227\350\241\250.py" "b/air_case/cmdc_special_fresenius_group/\350\216\267\345\217\226\345\256\242\346\210\267\345\210\227\350\241\250.air/\350\216\267\345\217\226\345\256\242\346\210\267\345\210\227\350\241\250.py"
new file mode 100644
index 0000000000000000000000000000000000000000..4bf17b81570255a9741eb535229db35de62e23e6
--- /dev/null
+++ "b/air_case/cmdc_special_fresenius_group/\350\216\267\345\217\226\345\256\242\346\210\267\345\210\227\350\241\250.air/\350\216\267\345\217\226\345\256\242\346\210\267\345\210\227\350\241\250.py"
@@ -0,0 +1,40 @@
+# -*- encoding=utf8 -*-
+__author__ = "liguangyu"
+
+"""
+case_tag:cmdc_api,cmdc获取客户列表,2264,2264-54,sit,bs
+主数据平台:后台运营系统获取客户列表接口
+"""
+
+from common.common_func import commonFuc
+from air_case.cmdc_login.后台管理系统登录.后台管理系统登录 import CmdcDoLogin
+import requests
+import json
+
+module = "cmdc_special_fresenius_group"
+
+# 第一步登录后台运营平台获取cmdc_access_token
+# 获取登录所需账号密码
+username = commonFuc().get_business_data(module, "username1")
+password = commonFuc().get_business_data(module, "password1")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcDoLogin(username, password).get_token()
+headers = commonFuc().get_business_data(module, "json_headers", cmdc_access_token)
+
+# 第二步获取客户列表
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "customer_list_url")
+request_body = commonFuc().get_business_data(module, "customer_payload")
+"""
+ 场景:获取客户列表
+ 用例名称:获取客户列表
+ 输出:{"success":true,"code":"200","message":"OK"}
+"""
+
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+
+# 获取预期结果
+check_dict = commonFuc().get_business_data(module, "checkDict15")
+# 断言实际结果中是否包含预期结果的内容
+commonFuc().check_result(check_dict, result)
diff --git "a/air_case/cmdc_special_fresenius_group/\350\216\267\345\217\226\347\211\271\346\256\212\345\245\227\345\214\205\350\257\246\346\203\205.air/\350\216\267\345\217\226\347\211\271\346\256\212\345\245\227\345\214\205\350\257\246\346\203\205.py" "b/air_case/cmdc_special_fresenius_group/\350\216\267\345\217\226\347\211\271\346\256\212\345\245\227\345\214\205\350\257\246\346\203\205.air/\350\216\267\345\217\226\347\211\271\346\256\212\345\245\227\345\214\205\350\257\246\346\203\205.py"
new file mode 100644
index 0000000000000000000000000000000000000000..6a81d24c902637f54c7ad23f21d25883c0a17211
--- /dev/null
+++ "b/air_case/cmdc_special_fresenius_group/\350\216\267\345\217\226\347\211\271\346\256\212\345\245\227\345\214\205\350\257\246\346\203\205.air/\350\216\267\345\217\226\347\211\271\346\256\212\345\245\227\345\214\205\350\257\246\346\203\205.py"
@@ -0,0 +1,48 @@
+# -*- encoding=utf8 -*-
+__author__ = "liguangyu"
+
+"""
+case_tag:cmdc_api,cmdc获取特殊套包详情,2264,2264-69,sit,bs
+主数据平台:后台运营系统获取特殊套包详情接口
+"""
+
+from common.common_func import commonFuc
+from air_case.cmdc_login.多采商城登录.多采商城登录 import CmdcMaiiLogin
+import requests
+import json
+
+module = "cmdc_special_fresenius_group"
+
+# 第一步登录多采商城获取cmdc_access_token
+# 获取登录所需账号密码
+username = commonFuc().get_business_data(module, "username")
+password = commonFuc().get_business_data(module, "password")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcMaiiLogin(username, password).get_token()
+headers = commonFuc().get_business_data(module, "json_headers1", cmdc_access_token)
+
+# 第二步进行切换站点
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url_website")
+request_body = commonFuc().get_business_data(module, "payload_website")
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+
+# 第三步步获取特殊套包详情
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url38")
+request_body = commonFuc().get_business_data(module, "payload38")
+
+"""
+ 场景:获取特殊套包详情
+ 用例名称:获取特殊套包详情
+ 输出:{"productCode":"10056821"}
+"""
+
+# 发送请求
+result = requests.get(url, params=request_body, headers=headers)
+result = json.loads(result.content)
+result = {"productCode": result["data"][0]["productCode"]}
+# 获取预期结果
+check_dict = commonFuc().get_business_data(module, "checkDict38")
+# 断言实际结果中是否包含预期结果的内容
+commonFuc().check_result(check_dict, result)
+
diff --git "a/air_case/cmdc_special_fresenius_group/\351\252\214\350\257\201\345\201\234\347\224\250\350\215\211\347\250\277\347\212\266\346\200\201\347\232\204\345\245\227\345\214\205.air/\351\252\214\350\257\201\345\201\234\347\224\250\350\215\211\347\250\277\347\212\266\346\200\201\347\232\204\345\245\227\345\214\205.py" "b/air_case/cmdc_special_fresenius_group/\351\252\214\350\257\201\345\201\234\347\224\250\350\215\211\347\250\277\347\212\266\346\200\201\347\232\204\345\245\227\345\214\205.air/\351\252\214\350\257\201\345\201\234\347\224\250\350\215\211\347\250\277\347\212\266\346\200\201\347\232\204\345\245\227\345\214\205.py"
new file mode 100644
index 0000000000000000000000000000000000000000..1415d6df3c6336f40d187d28ec4670c5ab8dde3b
--- /dev/null
+++ "b/air_case/cmdc_special_fresenius_group/\351\252\214\350\257\201\345\201\234\347\224\250\350\215\211\347\250\277\347\212\266\346\200\201\347\232\204\345\245\227\345\214\205.air/\351\252\214\350\257\201\345\201\234\347\224\250\350\215\211\347\250\277\347\212\266\346\200\201\347\232\204\345\245\227\345\214\205.py"
@@ -0,0 +1,73 @@
+# -*- encoding=utf8 -*-
+__author__ = "liguangyu"
+
+"""
+case_tag:cmdc_api,cmdc验证停用草稿状态的套包_套包商品管理,2264,2264-41,sit,bs
+主数据平台:运营后台管理系统套包列表、套包停用等接口
+"""
+
+from common.common_func import commonFuc
+from air_case.cmdc_login.后台管理系统登录.后台管理系统登录 import CmdcDoLogin
+from common.db.db import mySql
+import requests
+import json
+import random
+
+module = "cmdc_special_fresenius_group"
+
+# 第一步登录后台运营平台获取cmdc_access_token
+# 获取登录所需账号密码
+username = commonFuc().get_business_data(module, "username1")
+password = commonFuc().get_business_data(module, "password1")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcDoLogin(username, password).get_token()
+headers = commonFuc().get_business_data(module, "json_headers", cmdc_access_token)
+
+# 第二步,进行草稿套包的创建
+# 随机生成套包内商品数量
+quantity = random.randint(1, 999999)
+
+# 套包商品创建
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url5")
+request_body = commonFuc().get_business_data(module, "payload8", quantity, quantity)
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+
+# 套包状态-草稿状态
+group_status = 0
+
+# 第二步获取套包列表
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "group_list")
+request_body = commonFuc().get_business_data(module, "group_payload", group_status)
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+
+# 获取套包列表中草稿状态的套包的id
+group_id = result["data"]["list"][0]["products"][0]["groupId"]
+
+# 第三步进行套包的停用
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url7")
+request_body = {"groupIds": [group_id], "type": 1}
+"""
+ 场景:验证是否可以停用草稿状态的套包
+ 用例名称:验证停用草稿状态的套包
+ 输出:{"status":2}
+"""
+
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+# 数据库操作
+mysql_handle = mySql()
+# 获取conf.ini文件中配置的数据库信息
+host, port, user, pwd = mysql_handle.getConf(db="cmdc_db")
+
+# 数据库查询套包状态
+sql = "SELECT t.status FROM `cmdc-order`.tc_fresenius_group t WHERE groupId = {}".format(group_id)
+result = {"status": mysql_handle.selectSql(host, port, user, pwd, "cmdc-order", sql)[0][0]}
+
+# 获取
+# 获取预期结果
+check_dict = commonFuc().get_business_data(module, "checkDict7")
+# 断言实际结果中是否包含预期结果的内容
+commonFuc().check_result(check_dict, result)
diff --git "a/air_case/cmdc_special_fresenius_group/\351\252\214\350\257\201\345\220\257\347\224\250\345\267\262\345\201\234\347\224\250\347\232\204\345\245\227\345\214\205_\345\245\227\345\214\205\345\225\206\345\223\201\347\256\241\347\220\206.air/\351\252\214\350\257\201\345\220\257\347\224\250\345\267\262\345\201\234\347\224\250\347\232\204\345\245\227\345\214\205_\345\245\227\345\214\205\345\225\206\345\223\201\347\256\241\347\220\206.py" "b/air_case/cmdc_special_fresenius_group/\351\252\214\350\257\201\345\220\257\347\224\250\345\267\262\345\201\234\347\224\250\347\232\204\345\245\227\345\214\205_\345\245\227\345\214\205\345\225\206\345\223\201\347\256\241\347\220\206.air/\351\252\214\350\257\201\345\220\257\347\224\250\345\267\262\345\201\234\347\224\250\347\232\204\345\245\227\345\214\205_\345\245\227\345\214\205\345\225\206\345\223\201\347\256\241\347\220\206.py"
new file mode 100644
index 0000000000000000000000000000000000000000..56d3f4a17568d3d61cde754a074c17bdae6a1724
--- /dev/null
+++ "b/air_case/cmdc_special_fresenius_group/\351\252\214\350\257\201\345\220\257\347\224\250\345\267\262\345\201\234\347\224\250\347\232\204\345\245\227\345\214\205_\345\245\227\345\214\205\345\225\206\345\223\201\347\256\241\347\220\206.air/\351\252\214\350\257\201\345\220\257\347\224\250\345\267\262\345\201\234\347\224\250\347\232\204\345\245\227\345\214\205_\345\245\227\345\214\205\345\225\206\345\223\201\347\256\241\347\220\206.py"
@@ -0,0 +1,63 @@
+# -*- encoding=utf8 -*-
+__author__ = "liguangyu"
+
+"""
+case_tag:cmdc_api,cmdc验证启用已停用的套包_套包商品管理,2264,2264-42,sit,bs
+主数据平台:运营后台管理系统套包列表、套包启用等接口
+"""
+
+from common.common_func import commonFuc
+from air_case.cmdc_login.后台管理系统登录.后台管理系统登录 import CmdcDoLogin
+from common.db.db import mySql
+import requests
+import json
+
+module = "cmdc_special_fresenius_group"
+
+# 第一步登录后台运营平台获取cmdc_access_token
+# 获取登录所需账号密码
+username = commonFuc().get_business_data(module, "username1")
+password = commonFuc().get_business_data(module, "password1")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcDoLogin(username, password).get_token()
+headers = commonFuc().get_business_data(module, "json_headers", cmdc_access_token)
+
+# 套包状态-已停用
+group_status = 2
+
+# 第二步获取套包列表
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "group_list")
+request_body = commonFuc().get_business_data(module, "group_payload", group_status)
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+
+# 获取套包列表中已停用套包的id
+group_id = result["data"]["list"][0]["products"][0]["groupId"]
+
+# 第三步进行套包的启用
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url7")
+request_body = {"groupIds": [group_id], "type": 0, "remarks": ""}
+"""
+ 场景:套包启用验证_套包商品管理
+ 用例名称:套包启用验证_套包商品管理
+ 输出:{"status":1}
+"""
+
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+# 数据库操作
+mysql_handle = mySql()
+# 获取conf.ini文件中配置的数据库信息
+host, port, user, pwd = mysql_handle.getConf(db="cmdc_db")
+
+# 数据库查询套包状态
+sql = "SELECT t.status FROM `cmdc-order`.tc_fresenius_group t WHERE groupId = {}".format(group_id)
+result = {"status": mysql_handle.selectSql(host, port, user, pwd, "cmdc-order", sql)[0][0]}
+
+# 获取
+# 获取预期结果
+check_dict = commonFuc().get_business_data(module, "checkDict6")
+
+# 断言实际结果中是否包含预期结果的内容
+commonFuc().check_result(check_dict, result)
diff --git "a/air_case/cmdc_userinfo_query/\347\224\250\346\210\267\344\277\241\346\201\257\346\237\245\350\257\242.air/\347\224\250\346\210\267\344\277\241\346\201\257\346\237\245\350\257\242.py" "b/air_case/cmdc_userinfo_query/\347\224\250\346\210\267\344\277\241\346\201\257\346\237\245\350\257\242.air/\347\224\250\346\210\267\344\277\241\346\201\257\346\237\245\350\257\242.py"
new file mode 100644
index 0000000000000000000000000000000000000000..6e1de437879050c98f14633e6e3eabed5594fea2
--- /dev/null
+++ "b/air_case/cmdc_userinfo_query/\347\224\250\346\210\267\344\277\241\346\201\257\346\237\245\350\257\242.air/\347\224\250\346\210\267\344\277\241\346\201\257\346\237\245\350\257\242.py"
@@ -0,0 +1,43 @@
+# -*- encoding=utf8 -*-
+__author__ = "liguangyu"
+
+"""
+case_tag:cmdc_api,cmdc用户信息查询,2252,2252-44,sit,bs
+主数据平台:多采商城用户信息查询接口
+"""
+
+from common.common_func import commonFuc
+from air_case.cmdc_login.多采商城登录.多采商城登录 import CmdcMaiiLogin
+import requests
+import json
+
+
+module = "cmdc_userinfo_query"
+
+
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url1")
+print(url)
+# 获取登录所需账号密码
+username = commonFuc().get_business_data(module, "username")
+password = commonFuc().get_business_data(module, "password")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcMaiiLogin(username, password).get_token()
+headers = commonFuc().get_business_data(module, "json_headers", cmdc_access_token)
+request_body = commonFuc().get_business_data(module, "payload1")
+
+"""
+ 场景:用户信息查询
+ 用例名称:用户信息查询
+ 输出:{"success":true,"code":"200","message":"OK"}
+"""
+
+# 发送请求
+result = requests.get(url, headers=headers)
+result = json.loads(result.content)
+# print(result)
+# 获取预期结果
+check_dict = commonFuc().get_business_data(module, "checkDict1")
+print(check_dict)
+# 断言实际结果中是否包含预期结果的内容
+commonFuc().check_result(check_dict, result)
+
diff --git "a/air_case/cmdc_website/\347\253\231\347\202\271\345\210\207\346\215\242.air/\347\253\231\347\202\271\345\210\207\346\215\242.py" "b/air_case/cmdc_website/\347\253\231\347\202\271\345\210\207\346\215\242.air/\347\253\231\347\202\271\345\210\207\346\215\242.py"
new file mode 100644
index 0000000000000000000000000000000000000000..e40496a0951900fc64bc138c4d295c25f605b42b
--- /dev/null
+++ "b/air_case/cmdc_website/\347\253\231\347\202\271\345\210\207\346\215\242.air/\347\253\231\347\202\271\345\210\207\346\215\242.py"
@@ -0,0 +1,42 @@
+# -*- encoding=utf8 -*-
+__author__ = "liguangyu"
+
+"""
+case_tag:cmdc_api,cmdc站点切换,2252345,2252-45,sit,bs
+主数据平台:多采商城站点切换接口
+"""
+
+from common.common_func import commonFuc
+from air_case.cmdc_login.多采商城登录.多采商城登录 import CmdcMaiiLogin
+import requests
+import json
+
+
+module = "cmdc_website"
+
+
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url2")
+# print(url)
+# 获取登录所需账号密码
+username = commonFuc().get_business_data(module, "username1")
+password = commonFuc().get_business_data(module, "password1")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcMaiiLogin(username, password).get_token()
+headers = commonFuc().get_business_data(module, "json_headers", cmdc_access_token)
+request_body = commonFuc().get_business_data(module, "payload2")
+
+"""
+ 场景:站点切换
+ 用例名称:站点切换
+ 输出:{"success":true,"code":"200","message":"操作成功"}
+"""
+
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+# print(result)
+# 获取预期结果
+check_dict = commonFuc().get_business_data(module, "checkDict2")
+print(check_dict)
+# 断言实际结果中是否包含预期结果的内容
+commonFuc().check_result(check_dict, result)
diff --git "a/air_case/cmdc_website/\350\216\267\345\217\226\347\253\231\347\202\271\344\277\241\346\201\257.air/\350\216\267\345\217\226\347\253\231\347\202\271\344\277\241\346\201\257.py" "b/air_case/cmdc_website/\350\216\267\345\217\226\347\253\231\347\202\271\344\277\241\346\201\257.air/\350\216\267\345\217\226\347\253\231\347\202\271\344\277\241\346\201\257.py"
new file mode 100644
index 0000000000000000000000000000000000000000..ec624dc5d0b0263da1ed0d08ab9c3e74c2fb5fcf
--- /dev/null
+++ "b/air_case/cmdc_website/\350\216\267\345\217\226\347\253\231\347\202\271\344\277\241\346\201\257.air/\350\216\267\345\217\226\347\253\231\347\202\271\344\277\241\346\201\257.py"
@@ -0,0 +1,44 @@
+# -*- encoding=utf8 -*-
+__author__ = "liguangyu"
+
+"""
+case_tag:cmdc_api,cmdc获取站点信息,2252,2252-46,sit,bs
+主数据平台:多采商城获取站点接口
+"""
+
+from common.common_func import commonFuc
+from air_case.cmdc_login.多采商城登录.多采商城登录 import CmdcMaiiLogin
+import requests
+import json
+
+
+module = "cmdc_website"
+
+
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url1")
+# print(url)
+# 获取登录所需账号密码
+username = commonFuc().get_business_data(module, "username")
+password = commonFuc().get_business_data(module, "password")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcMaiiLogin(username, password).get_token()
+headers = commonFuc().get_business_data(module, "json_headers", cmdc_access_token)
+request_body = commonFuc().get_business_data(module, "payload1")
+
+"""
+ 场景:获取站点信息
+ 用例名称:获取站点信息
+ 输出:{"success":true,"code":"200","message":"操作成功"}
+"""
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+# 判断是否获取到站点信息
+if result["data"]:
+ # 获取预期结果
+ check_dict = commonFuc().get_business_data(module, "checkDict1")
+ print(check_dict)
+ # 断言实际结果中是否包含预期结果的内容
+ commonFuc().check_result(check_dict, result)
+else:
+ print("站点信息获取失败")
diff --git "a/air_case/cmdc_website/\350\216\267\345\217\226\347\253\231\347\202\271\345\225\206\345\223\201.air/\350\216\267\345\217\226\347\253\231\347\202\271\345\225\206\345\223\201.py" "b/air_case/cmdc_website/\350\216\267\345\217\226\347\253\231\347\202\271\345\225\206\345\223\201.air/\350\216\267\345\217\226\347\253\231\347\202\271\345\225\206\345\223\201.py"
new file mode 100644
index 0000000000000000000000000000000000000000..c970049371f020d6228ad93597d1ba2081197ad5
--- /dev/null
+++ "b/air_case/cmdc_website/\350\216\267\345\217\226\347\253\231\347\202\271\345\225\206\345\223\201.air/\350\216\267\345\217\226\347\253\231\347\202\271\345\225\206\345\223\201.py"
@@ -0,0 +1,47 @@
+# -*- encoding=utf8 -*-
+__author__ = "liguangyu"
+
+"""
+case_tag:cmdc_api,cmdc切换站点并查询获取商品信息,2252,2252-47,sit,bs
+涉及到接口:多采商城站点切换接口、查询商品信息等接口
+"""
+
+from common.common_func import commonFuc
+from air_case.cmdc_login.多采商城登录.多采商城登录 import CmdcMaiiLogin
+import requests
+import json
+
+
+module = "cmdc_website"
+
+# 第一步登录多采商城获取token
+# 获取登录所需账号密码
+username = commonFuc().get_business_data(module, "username1")
+password = commonFuc().get_business_data(module, "password1")
+# 获取登录后Cmdc_access_token
+cmdc_access_token = CmdcMaiiLogin(username, password).get_token()
+headers = commonFuc().get_business_data(module, "json_headers", cmdc_access_token)
+# 第二步切换至子站点
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url2")
+request_body = commonFuc().get_business_data(module, "payload2")
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+
+"""
+ 场景:站点切换并查询对应站点商品
+ 用例名称:站点切换并查询对应站点商品
+ 输出:{"success":true,"code":"200","message":"OK"}
+"""
+
+# 第三步进行站点商品列表获取
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "url3")
+request_body = commonFuc().get_business_data(module, "payload3")
+# 发送请求
+result = requests.post(url, json=request_body, headers=headers)
+result = json.loads(result.content)
+# print(result)
+# 获取预期结果
+check_dict = commonFuc().get_business_data(module, "checkDict3")
+print(check_dict)
+# 断言实际结果中是否包含预期结果的内容
+commonFuc().check_result(check_dict, result)
diff --git a/air_case/demo-ui/demo-spd3-login.air/demo-spd3-login.py b/air_case/demo-ui/demo-spd3-login.air/demo-spd3-login.py
new file mode 100644
index 0000000000000000000000000000000000000000..b892b71b8e2fc8d62e690df5a8ad9715dd60fef7
--- /dev/null
+++ b/air_case/demo-ui/demo-spd3-login.air/demo-spd3-login.py
@@ -0,0 +1,33 @@
+# -*- encoding=utf8 -*-
+__author__ = "xiaohesheng"
+
+"""
+case_tag:spd3-web,10087
+spd登录的ui自动化例子1
+"""
+
+
+from common.common_func import commonFuc
+from airtest.core.api import *
+from airtest_selenium.proxy import *
+module = "demo-ui"
+url = commonFuc().get_api_url() + commonFuc().get_business_data(module, "spd3_login_url")
+print(url)
+chrome=WebChrome()
+chrome=commonFuc().openBrowser(url, chrome)
+chrome.maximize_window()
+chrome.implicitly_wait(20)
+username=commonFuc().get_business_data(module, "username")
+password=commonFuc().get_business_data(module, "password")
+login_button=commonFuc().get_business_data(module, "login_button")
+print(username,password)
+commonFuc().logIn(username,password,login_button,chrome)
+name1=commonFuc().get_business_data(module,"name1")
+print(name1)
+result=commonFuc().check_login_result(name1,chrome)
+print(result)
+#断言实际结果中是否包含预期的文本
+commonFuc().check_text_exist_result_text(name1,result)
+chrome.airtest_touch(Template(r"tpl1691374901526.png", record_pos=(12.3, 2.8), resolution=(100, 100)))
+commonFuc().quit_chrome(chrome)
+
diff --git a/air_case/demo-ui/demo-spd3-login.air/tpl1691374901526.png b/air_case/demo-ui/demo-spd3-login.air/tpl1691374901526.png
new file mode 100644
index 0000000000000000000000000000000000000000..c871b9ca684aae23d61a24ae9fa65ad87e9467a7
Binary files /dev/null and b/air_case/demo-ui/demo-spd3-login.air/tpl1691374901526.png differ
diff --git a/air_case/demo/baidu.air/baidu.py b/air_case/demo/baidu.air/baidu.py
new file mode 100644
index 0000000000000000000000000000000000000000..e40475a493b4d65dc2cfa4ab9f376de6e77b30b6
--- /dev/null
+++ b/air_case/demo/baidu.air/baidu.py
@@ -0,0 +1,29 @@
+# -*- encoding=utf8 -*-
+__author__ = "Administrator"
+
+
+"""
+case_tag:api,baidu,sit,on
+"""
+from airtest.core.api import *
+from selenium import webdriver
+from selenium.webdriver.common.keys import Keys
+from airtest_selenium.proxy import *
+driver = WebChrome()
+driver.implicitly_wait(20)
+driver.get("https://www.baidu.com")
+sleep(4)
+driver.find_element_by_id("kw").send_keys("airtest")
+sleep(4)
+
+driver.airtest_touch(Template(r"tpl1691374901526.png", record_pos=(12.3, 2.8), resolution=(100, 100)))
+
+
+
+
+
+
+
+
+
+
diff --git a/air_case/demo/baidu.air/tpl1691374901523.png b/air_case/demo/baidu.air/tpl1691374901523.png
new file mode 100644
index 0000000000000000000000000000000000000000..6ffd5af4c861fc8bbfb9766c4a5bd9819f2494b2
Binary files /dev/null and b/air_case/demo/baidu.air/tpl1691374901523.png differ
diff --git a/air_case/demo/baidu.air/tpl1691374901526.png b/air_case/demo/baidu.air/tpl1691374901526.png
new file mode 100644
index 0000000000000000000000000000000000000000..934889ce7271e6c611d50aa16fede484a7485b7c
Binary files /dev/null and b/air_case/demo/baidu.air/tpl1691374901526.png differ
diff --git a/air_case/demo/baidu.air/tpl1691375285206.png b/air_case/demo/baidu.air/tpl1691375285206.png
new file mode 100644
index 0000000000000000000000000000000000000000..7970a269177baa880b83a462fad289d9db62d2a7
Binary files /dev/null and b/air_case/demo/baidu.air/tpl1691375285206.png differ
diff --git a/air_case/demo/httpget-demo.air/httpget-demo.py b/air_case/demo/httpget-demo.air/httpget-demo.py
new file mode 100644
index 0000000000000000000000000000000000000000..274c8a0457dbcfc279f73bd05d672ded7ecfed8f
--- /dev/null
+++ b/air_case/demo/httpget-demo.air/httpget-demo.py
@@ -0,0 +1,55 @@
+# -*- encoding=utf8 -*-
+from common.common_func import commonFuc
+
+__author__ = "meimengting"
+
+"""
+case_tag:api,medical-web,sit,on
+"""
+
+from airtest.core.api import *
+import sys
+sys.path.append('..')
+from common.db.db import dbOP
+import time
+# using("common_steps.air")
+# import common_steps
+# result_db = dbOP().selectSql('exp_expert', [0, 20])
+
+"""
+enc_user_id可替换成接口实际所需要id,默认是u779700044448
+获取token和时间戳
+"""
+enc_user_id = 'u97969333801'
+# token = common_steps.check_token(enc_user_id)
+timestamp = str(int(time.time()))
+
+# "按照环境将url管理起来,更改api url后的接口名即可"
+# url = common_steps.get_api_url()
+# url = url + "/newapi/router/medical/expert/info"
+
+"""
+querystring: 业务参数
+headers: header参数
+"""
+# exId = result_db[0][0]
+# exName = result_db[0][1]
+# querystring = {"expertIds": exId}
+# headers = {
+# 'clientInfo': '{"birthday":"2018-11-18","screenwidth":"375","clientVersion":"2.4.2","screenheight":"667","partner":"meitunmama","clientip":"10.180.81.127","traderName":"iPhone 6S","clientAppVersion":"2.4.2","clientYunyuVersion":"7.9.6","clientSystem":"ios","nettype":"wifi","deviceCode":"1f4b3860acfa303bca0407f5128bc5ea0f529fec"}',
+# 'platform': "1",
+# 'signature': "144c6b3c78fc20ad57da1ebdb879615b",
+# 'token': token,
+# 'timestamp': timestamp,
+# }
+
+"""
+get方法
+"""
+# result = common_steps.get(url, headers, querystring)
+
+"""
+出参校验
+"""
+# check_dict = {"rtn_code": 0, "rtn_msg": "请求成功", "expertName": str(exName)}
+# commonFuc().check_result(check_dict, result)
\ No newline at end of file
diff --git a/common/aesUtils.py b/common/aesUtils.py
new file mode 100644
index 0000000000000000000000000000000000000000..7ccd3b65656b09270ec3024d7f205cb4035d3d41
--- /dev/null
+++ b/common/aesUtils.py
@@ -0,0 +1,48 @@
+import os
+from jpype import *
+import jpype
+
+curPath = os.path.abspath(os.path.dirname(__file__))
+rootPath = rootPath = os.path.split(curPath)[0]
+
+startJVM(jpype.getDefaultJVMPath(), "-ea", "-Djava.class.path=%s" % rootPath + os.sep + "jar" + os.sep + "utils.jar")
+jclass = JClass("com.babytree.AesUtils")
+
+
+class aesUtils:
+
+ def encrypt(self, content):
+ """
+ aes_ecb模式加密
+ :param content:
+ :return:
+ """
+ result = jclass.encrypt(content)
+ return result
+
+ def decrypt(self, content):
+ """
+ aes_ecb模式解密
+ :param content:
+ :return:
+ """
+ result = jclass.decrypt(content)
+ return result
+
+
+ def shutdown(self):
+ """
+ 关闭虚拟机
+ :return:
+ """
+ shutdownJVM()
+
+
+if __name__ == '__main__':
+ sign = aesUtils().encrypt("helloword")
+ print("加密:", sign)
+ sign2 = aesUtils().decrypt(sign)
+ print("解密: ", sign2)
+ aesUtils().shutdown()
+
+
diff --git a/common/case_tag_get.py b/common/case_tag_get.py
new file mode 100644
index 0000000000000000000000000000000000000000..10e35e9cb06c33c479360516dc4288c18dbc0e0c
--- /dev/null
+++ b/common/case_tag_get.py
@@ -0,0 +1,98 @@
+import re
+import os
+
+
+def get_message(case_path, case_name):
+ """
+ 从注释中获取某个文件的 case tag 信息
+ """
+ tags = []
+ pyfile = open(case_path + os.sep + case_name + '.py', 'r', encoding='utf-8')
+ lines = pyfile.readlines()
+ for line in lines:
+ if 'case_tag' in line:
+ line = line.split('case_tag')[-1]
+ #对不规范的写法做一些处理,如中文分号, 中文逗号,多空格等。。
+ line = re.sub(' ', '', line)
+ line = line.replace(',', ',').replace(':', '').replace(':', '')
+ line = line.strip().strip('\n')
+ tags = line.split(',')
+ pyfile.close()
+ return tags
+
+
+def get_case_tag_list(case_path, cases):
+ """
+ 遍历case目录下的文件,从文件中获取case tag,加入列表中
+ 再加个判断,判断是跑线上还是线下
+ """
+ tagList = cases.split('#')
+ env = os.environ['ENV']
+ case_list = []
+ for f in os.listdir(case_path):
+ nf_path = os.path.join(case_path, f)
+ if os.path.isdir(nf_path) and nf_path.endswith(".air") == False:
+ for nf in os.listdir(nf_path):
+ script = os.path.join(nf_path, nf)
+ if script.endswith(".air"):
+ air_name = nf.replace('.air', '')
+ case_tags = get_message(script, air_name)
+ flag = False
+ for con in tagList:
+ conList = con.split(',')
+ if list(set(case_tags) & set(conList)):
+ flag = True
+ else:
+ flag = False
+ break
+ if flag and (env in case_tags or env in ('sit', 'sita')):
+ case_hash = {}
+ case_hash["air_path"] = str(script)
+ case_hash["air_name"] = str(air_name)
+ case_hash["module"] = str(script.split(os.sep)[-2])
+ case_list.append(case_hash)
+ else:
+ script = os.path.join(case_path, f)
+ if f.endswith(".air"):
+ air_name = f.replace('.air', '')
+ case_tags = get_message(script, air_name)
+ flag = False
+ for con in tagList:
+ conList = con.split(',')
+ if list(set(case_tags) & set(conList)):
+ flag = True
+ else:
+ flag = False
+ break
+ if flag and (env in case_tags or env in ('sit', 'sita')):
+ case_hash = {}
+ case_hash["air_path"] = str(script)
+ case_hash["air_name"] = str(air_name)
+ case_hash["module"] = str(script.split(os.sep)[-2])
+ case_list.append(case_hash)
+ return case_list
+
+
+def get_case_tag_list_2(case_path, cases):
+ """
+ 遍历case目录下的文件,从文件中获取case tag,加入列表中
+ """
+ tagList = cases.split('#')
+ case_list = []
+ for f in os.listdir(case_path):
+ script = os.path.join(case_path, f)
+ air_name = f.replace('.air', '')
+ case_tags = get_message(script, air_name)
+ flag = False
+ for con in tagList:
+ conList = con.split(',')
+ if list(set(case_tags) & set(conList)):
+ flag = True
+ else:
+ flag = False
+ break
+ if flag:
+ case_list.append(air_name)
+ return case_list
+
+
diff --git a/common/cli/runner.py b/common/cli/runner.py
new file mode 100644
index 0000000000000000000000000000000000000000..83099cf2ed74871e830689c26b2cc92dfc715538
--- /dev/null
+++ b/common/cli/runner.py
@@ -0,0 +1,142 @@
+# -*- coding: utf-8 -*-
+
+import unittest
+import os
+import sys
+import six
+import re
+import shutil
+import traceback
+import warnings
+from io import open
+from airtest.core.api import G, auto_setup, log
+from airtest.core.settings import Settings as ST
+from airtest.utils.compat import decode_path, script_dir_name, script_log_dir
+from copy import copy
+
+
+class AirtestCase(unittest.TestCase):
+
+ PROJECT_ROOT = "."
+ SCRIPTEXT = ".air"
+ TPLEXT = ".png"
+
+ @classmethod
+ def setUpClass(cls):
+ cls.args = args
+
+ setup_by_args(args)
+
+ # setup script exec scope
+ cls.scope = copy(globals())
+ cls.scope["exec_script"] = cls.exec_other_script
+
+ def setUp(self):
+ if self.args.log and self.args.recording:
+ for dev in G.DEVICE_LIST:
+ try:
+ dev.start_recording()
+ except:
+ traceback.print_exc()
+
+ def tearDown(self):
+ if self.args.log and self.args.recording:
+ for k, dev in enumerate(G.DEVICE_LIST):
+ try:
+ output = os.path.join(self.args.log, "recording_%d.mp4" % k)
+ dev.stop_recording(output)
+ except:
+ traceback.print_exc()
+
+ def runTest(self):
+ scriptpath, pyfilename = script_dir_name(self.args.script)
+ pyfilepath = os.path.join(scriptpath, pyfilename)
+ pyfilepath = os.path.abspath(pyfilepath)
+ self.scope["__file__"] = pyfilepath
+ with open(pyfilepath, 'r', encoding="utf8") as f:
+ code = f.read()
+ pyfilepath = pyfilepath.encode(sys.getfilesystemencoding())
+
+ try:
+ exec(compile(code.encode("utf-8"), pyfilepath, 'exec'), self.scope)
+ except Exception as err:
+ tb = traceback.format_exc()
+ log("Final Error", tb)
+ six.reraise(*sys.exc_info())
+
+ @classmethod
+ def exec_other_script(cls, scriptpath):
+ """run other script in test script"""
+
+ warnings.simplefilter("always")
+ warnings.warn("please use using() api instead.", PendingDeprecationWarning)
+
+ def _sub_dir_name(scriptname):
+ dirname = os.path.splitdrive(os.path.normpath(scriptname))[-1]
+ dirname = dirname.strip(os.path.sep).replace(os.path.sep, "_").replace(cls.SCRIPTEXT, "_sub")
+ return dirname
+
+ def _copy_script(src, dst):
+ if os.path.isdir(dst):
+ shutil.rmtree(dst, ignore_errors=True)
+ os.mkdir(dst)
+ for f in os.listdir(src):
+ srcfile = os.path.join(src, f)
+ if not (os.path.isfile(srcfile) and f.endswith(cls.TPLEXT)):
+ continue
+ dstfile = os.path.join(dst, f)
+ shutil.copy(srcfile, dstfile)
+
+ # find script in PROJECT_ROOT
+ scriptpath = os.path.join(ST.PROJECT_ROOT, scriptpath)
+ # copy submodule's images into sub_dir
+ sub_dir = _sub_dir_name(scriptpath)
+ sub_dirpath = os.path.join(cls.args.script, sub_dir)
+ _copy_script(scriptpath, sub_dirpath)
+ # read code
+ pyfilename = os.path.basename(scriptpath).replace(cls.SCRIPTEXT, ".py")
+ pyfilepath = os.path.join(scriptpath, pyfilename)
+ pyfilepath = os.path.abspath(pyfilepath)
+ with open(pyfilepath, 'r', encoding='utf8') as f:
+ code = f.read()
+ # replace tpl filepath with filepath in sub_dir
+ code = re.sub("[\'\"](\w+.png)[\'\"]", "\"%s/\g<1>\"" % sub_dir, code)
+ exec(compile(code.encode("utf8"), pyfilepath, 'exec'), cls.scope)
+
+
+def setup_by_args(args):
+ # init devices
+ if isinstance(args.device, list):
+ devices = args.device
+ elif args.device:
+ devices = [args.device]
+ else:
+ devices = []
+
+ # set base dir to find tpl
+ dirpath, _ = script_dir_name(args.script)
+
+ # set log dir
+ if args.log:
+ args.log = script_log_dir(dirpath, args.log)
+ print("save log in '%s'" % args.log)
+ else:
+ print("do not save log")
+
+ # guess project_root to be basedir of current .air path
+ project_root = os.path.dirname(args.script) if not ST.PROJECT_ROOT else None
+ try:
+ auto_setup(dirpath, devices, args.log, project_root)
+ except:
+ os.system('adb devices')
+ auto_setup(dirpath, devices, args.log, project_root)
+
+
+def run_script(parsed_args, testcase_cls=AirtestCase):
+ global args # make it global deliberately to be used in AirtestCase & test scripts
+ args = parsed_args
+ suite = unittest.TestSuite()
+ suite.addTest(testcase_cls())
+ result = unittest.TextTestRunner(verbosity=0).run(suite)
+ if not result.wasSuccessful():
+ sys.exit(-1)
diff --git a/common/common_func.py b/common/common_func.py
new file mode 100644
index 0000000000000000000000000000000000000000..060daba858fbabfa1663384758b65ef23a5a0fdc
--- /dev/null
+++ b/common/common_func.py
@@ -0,0 +1,542 @@
+import base64
+import json
+
+import requests
+from airtest.core.api import *
+
+from common.confop import confOP
+from common.dubboUtils import GetDubboService2, InvokeDubboApi
+from common.rw import Rw
+
+workspace = os.path.abspath(".")
+business_path = workspace + os.sep + "data" + os.sep
+
+
+class commonFuc(object):
+
+ def find_path(self, module=""):
+ if module == "":
+ return business_path
+ else:
+ return business_path + module + os.sep
+
+ def get_business_data(self, module, key, *args):
+ env = os.environ['ENV']
+ data_list = confOP().getBusiYamlValue(self.find_path(module), "data")
+ if args is not None and len(args) > 0:
+ if isinstance(data_list[key], dict):
+ result = json.loads(json.dumps(data_list[key]) % args)
+ else:
+ if str(data_list[key]) == "":
+ result = data_list[key]
+ else:
+ result = data_list[key] % args
+ else:
+ result = data_list[key]
+ if "_sit_" in str(result) and "_on_" in str(result):
+ if env == "on":
+ return result["_on_"]
+ else:
+ return result["_sit_"]
+ else:
+ return result
+
+ def get_message(self, module, key):
+ message_list = confOP().getBusiYamlValue(self.find_path(module), "message")
+ return message_list[key]
+
+ def get_openauth_url(self):
+ return "http://openauth.meitun.com/tools/sign/create"
+
+ def get_api_url(self):
+ """
+ 接口类型的请求
+ :return:
+ """
+ env = os.environ['ENV']
+ print(env)
+ if env == 'on':
+ url = 'https://m.meitun.com'
+ elif env == 'pre':
+ url = 'http://pre-m.meitun.com'
+ elif env == 'sita':
+ url = 'http://sita-m.meitun.com'
+ elif env == "spd3": # spd3.0
+ # url = 'http://sit-m.meitun.com'
+ url = 'http://spddev.cmic.com.cn'
+ elif env == "spd2": # spd2.0
+ url = ""
+ elif env == "od": # 骨科
+ url = ""
+ elif env == "bs": # 电商
+ url = "https://service-uat.gyqxmall.com"
+ # url = "https://service-slb.cmic.com.cn"
+ else:
+ url = 'http://spddev.cmic.com.cn'
+
+ return url
+
+ def get_token(self, module, enc_user_id="enc_user_id"):
+ enc_user_id = self.get_business_data(module, enc_user_id)
+ token = self.check_token(enc_user_id)
+ return token
+
+ def check_token(self, enc_user_id='u779700044448'):
+ """
+ 多个case同一个token不用一直查数据库
+ :param enc_user_id:
+ :return:
+ """
+ env = os.environ['ENV']
+ result = Rw().r_token(enc_user_id, env)
+ if result is None:
+ return Rw().w_token(enc_user_id, env)
+ else:
+ return result["token"]
+
+ def http_get(self, url, headers="", params=""):
+ """
+ 一个get请求,返回json
+ """
+ result = requests.request("GET", url, headers=headers, params=params)
+ result = json.loads(result.text)
+ return result
+
+ def http_post(self, url, postdata=None, header=None):
+ """
+ 一个post请求,返回json
+ """
+ # result = requests.post(url, data=postdata, headers=header)
+ result = requests.post(url, data=json.dumps(postdata), headers=header)
+ result = json.loads(result.content)
+ return result
+
+ def check_result(self, check_dict, result):
+ """
+ 结果检查,要检查的字段及值放在字典里, 结果是完全匹配
+ result 是json
+ """
+ assert_not_equal(result, [], "只想看下result的值")
+ for k, v in check_dict.items():
+ actual_value = self.analysis_json(k, result)
+ assert_equal(str(v).replace(" ", ""), str(actual_value).replace(" ", ""))
+
+ def analysis_json(self, key, result):
+ """
+ 解析json
+ """
+ res = None
+ if self.typeof(result) == 'dict':
+ if key in result.keys():
+ return result[key]
+ else:
+ for k, v in result.items():
+ res = self.analysis_json(key, v)
+ if res is not None:
+ break
+ elif self.typeof(result) == 'list':
+ for value in result:
+ res = self.analysis_json(key, value)
+ if res is not None:
+ break
+ else:
+ pass
+ return res
+
+
+ def typeof(self, variate):
+ """
+ 变量类型
+ :param variate:
+ :return:
+ """
+ if isinstance(variate, int):
+ return "int"
+ elif isinstance(variate, str):
+ return "str"
+ elif isinstance(variate, float):
+ return "float"
+ elif isinstance(variate, list):
+ return "list"
+ elif isinstance(variate, tuple):
+ return "tuple"
+ elif isinstance(variate, dict):
+ return "dict"
+ elif isinstance(variate, set):
+ return "set"
+ else:
+ return None
+
+ def get_openApi_url(self):
+ """
+ 获取openapi的接口
+ """
+ env = os.environ['ENV']
+ print(env)
+ if env == 'on':
+ url = 'https://openapi.meitun.com'
+ elif env == 'pre':
+ url = 'http://pre-openapi.meitun.com'
+ elif env == 'sita':
+ url = 'http://sita-openapi.meitun.com'
+ else:
+ url = 'http://sit-openapi.meitun.com'
+ return url
+
+ def get_ip_by_pool(self, poolName, type='sit'):
+ """
+ 根据hostname获取ip地址
+ :param poolName: ip:端口/应用名:端口
+ :param type: local/sit
+ :return:
+ """
+ if str(type).lower() == 'local':
+ return poolName
+ else:
+ pool = str(poolName).split(":")[0]
+ print("pool: ", pool)
+ port = str(poolName).split(":")[1]
+ result = self.http_get(
+ "http://apollo.baobaoshu.com/apiv1/united_devices/?stage=%s&application=%s&usage=SERVER" % (type, pool))
+ ip = result["results"][0]["ip"]
+ return str(ip) + ":" + port
+
+ def run_local_dubbo(self, content, dubbo_service, dubbo_method, *args):
+ """
+ 运行本地dubbo接口
+ :param dubbo_service: dubbo中 服务名 如:com.zl.mall.api.IItemService
+ :param dubbo_method: 服务中的方法 如:updateItem
+ :param args: 方法请求需要的参数
+ :return:
+ """
+ dubbo_info = GetDubboService2().get_dubbo_info2(content)
+ invokeDubboApi = InvokeDubboApi(server_host=dubbo_info.get("server_host"),
+ server_post=dubbo_info.get("server_post"))
+ return invokeDubboApi.invoke_dubbo_api(dubbo_service, dubbo_method, *args)
+
+ def get_open_url(self):
+ """
+ 获取openapi的接口
+ """
+ env = os.environ['ENV']
+ print(env)
+ if env == 'on':
+ url = 'https://openapi.meitun.com'
+ elif env == 'pre':
+ url = 'http://pre-openapi.meitun.com'
+ elif env == 'sita':
+ url = 'http://sita-openapi.meitun.com'
+ else:
+ url = 'http://sit-openapi.meitun.com'
+ return url
+
+ def get_openapi_signature(self, module, params):
+ """
+ 获取openapi的验签
+ :param module:
+ :param params:
+ :return:
+ """
+ private_key = self.get_business_data(module, "private_key")
+ app_secret = self.get_business_data(module, "app_secret")
+ openauth_url = self.get_openauth_url()
+ data = self.get_business_data(module, "openapi_data", private_key, app_secret, params)
+ result = commonFuc().http_post(openauth_url, data)
+ signature = result['signature']
+ return signature
+
+ def get_url(self, pool=None):
+ """
+ 根据环境或者url
+ :return:
+ """
+ env = os.environ['ENV']
+ print(env)
+ if pool == "bid":
+ if env == 'on':
+ url = 'http://bid.babytree.com'
+ else:
+ url = 'https://bid.babytree-test.com'
+ elif pool == "advertise-go-web":
+ url = 'http://g.kexin001.com'
+ elif pool == "ad_Delivery":
+ url = 'http://go.kexin001.com'
+ elif pool == "search-platform-index":
+ if env == 'on':
+ url = 'http://search-index.babytree.com/index/build'
+ else:
+ url = 'http://search-index.babytree-test.com/index/build'
+ elif pool == "search-platform-web":
+ if env == 'on':
+ url = 'http://search-query.babytree.com/search/query'
+ else:
+ url = 'http://search-query.babytree-test.com/search/query'
+ elif pool == "search-merger":
+ if env == 'on':
+ url = 'http://merger.babytree.com/search'
+ else:
+ url = 'http://merger.babytree-test.com/search'
+ elif pool == "search-suggest":
+ if env == 'on':
+ url = 'http://suggest.babytree.com'
+ else:
+ url = 'http://suggest.babytree-test.com'
+ else:
+ if env == 'on':
+ url = 'https://backend.meitunmama.com/'
+ elif env == 'pre':
+ url = 'http://pre-backend.meitunmama.com'
+ elif env == 'sita':
+ url = 'http://sita-backend.meitunmama.com'
+ else:
+ url = 'http://sit-backend.meitunmama.com'
+
+ return url
+
+ def login_backend(self, driver):
+ driver.get(self.get_url())
+ sleep(3)
+ # driver.assert_template(Template(r"tpl1580989830894.png", record_pos=(3.27, 2.99), resolution=(100, 100)),
+ # "请填写测试点")
+ driver.set_window_size(1366, 868)
+ if os.environ['ENV'] == 'on' or os.environ['ENV'] == 'pre':
+ es = 'aG9uZ2xp'
+ driver.find_element_by_id("loginName").send_keys(base64.b64decode(es.encode('utf-8')).decode("utf-8"))
+ sleep(1)
+ es = 'aGxiYjEyMTA5Mg=='
+ driver.find_element_by_xpath("//input[@type='password']").send_keys(
+ base64.b64decode(es.encode('utf-8')).decode("utf-8"))
+ sleep(1)
+ driver.find_element_by_id("smsCode").send_keys("111111")
+ sleep(1)
+ else:
+ driver.find_element_by_id("loginName").send_keys('autotest')
+ driver.find_element_by_xpath("//input[@type='password']").send_keys('123@qwe')
+ driver.find_element_by_id("smsCode").send_keys("111111")
+ driver.find_element_by_id("sub_btn").click()
+ sleep(2)
+ # driver.assert_template(Template(r"tpl1579258499558.png", record_pos=(0.47, 0.975), resolution=(100, 100)),
+ # "验证登录成功了")
+
+ # 选择打开页面的路径,如: 大健康-课程包-课程包管理
+ def enter_channel_manage(self, driver, title, classfy, content):
+ driver.find_element_by_xpath("//a[@title='%s']" % title).click()
+ driver.find_element_by_id("east").find_element_by_xpath("//*[text()='%s']" % classfy).click()
+ driver.find_element_by_xpath("//a[@title='%s']" % content).click()
+
+ def enter_album_check(self, driver):
+ """
+ 进入专辑审核页
+ """
+ driver.get(
+ self.get_url() + "/bighealth-service/outcourse/list.htm?source=1&linkId=big_health_audit_sync_btn1_link&tabId=big_health_audit_sync_btn1")
+
+ def remove_readonly(self, driver):
+ """
+ 去除input的只读属性
+ """
+ inputs = driver.find_elements_by_tag_name("input")
+ for input in inputs:
+ driver.execute_script('arguments[0].removeAttribute(\"readonly\")', input)
+ driver.execute_script('arguments[0].removeAttribute(\"autocomplete\")', input)
+
+ def check_variable_exist(self, check_list, result):
+ """
+ 结果检查,检查字段值存在
+ """
+ Flag = False
+ for variable in check_list:
+ if variable in result.keys():
+ Flag = True
+ assert_equal(Flag, True, '验证参数' + variable + "存在")
+
+ def check_text_exist(self, check_text, result):
+ """
+ 结果检查,检查文本内容是否存在于返回结果中
+ """
+ Flag = False
+ check_text=str(check_text)
+ # print('bbbbbbbbbbbbbbbbbbbbbbbbb'+str(result.values()))
+ if check_text in str(result.values()):
+ Flag = True
+ # print('aaaaaaaaaaaaaaaaaaaaaaaaaaaaa',Flag)
+ assert_equal(Flag, True, '验证文本' + check_text + "存在")
+ def check_text_no_exist(self, check_text, result):
+ """
+ 结果检查,检查文本内容是否存在于返回结果中
+ """
+ Flag = False
+ # print('bbbbbbbbbbbbbbbbbbbbbbbbb'+str(result.values()))
+ if check_text not in str(result.values()):
+ Flag = True
+ # print('aaaaaaaaaaaaaaaaaaaaaaaaaaaaa',Flag)
+ assert_equal(Flag, True, '验证文本' + check_text + "不存在")
+
+ def check_text_exist_result_text(self, check_text, result_text):
+ """
+ 结果检查,检查文本内容是否存在于返回结果中,返回结果也是文本
+ """
+ Flag = False
+ check_text=str(check_text)
+ # print('bbbbbbbbbbbbbbbbbbbbbbbbb'+str(result.values()))
+ if check_text in result_text:
+ Flag = True
+ # print('aaaaaaaaaaaaaaaaaaaaaaaaaaaaa',Flag)
+ assert_equal(Flag, True, '验证文本' + check_text + "存在")
+
+ def enter_h5_page(self, driver, params):
+ """
+ :param driver:
+ :param params: 请求的URL
+ :return:
+ """
+ url = self.get_api_url()
+ driver.get(url + params)
+
+ def get_start(self, pageno, pagesize):
+ """
+ 获取limit的start数
+ :param pageno:
+ :param pagesize:
+ :return:
+ """
+ return (pageno - 1) * pagesize
+
+ def click_iterm(self, driver, el_list, name):
+ """
+ 点击对应元素
+ """
+ for el in el_list:
+ print(el.text)
+ if el.text == name:
+ driver.execute_script("arguments[0].scrollIntoView();", el)
+ el.click()
+ break
+
+ def get_mapi_babytree_url(self):
+ """
+ 接口mapi_babytree类型的请求
+ :return:
+ """
+ env = os.environ['ENV']
+ print(env)
+ if env == 'on':
+ url = 'http://mapiweb.babytree.com'
+ elif env == 'pre':
+ url = 'http://pre-mapiweb.babytree.com'
+ else:
+ url = 'http://mapiweb.babytree-test.com'
+ return url
+
+ def get_localhome_babytree_url(self):
+ """
+ 接口mapi_babytree类型的请求
+ :return:
+ """
+ env = os.environ['ENV']
+ print(env)
+ if env == 'on':
+ url = 'http://localhome.babytree.com'
+ elif env == 'pre':
+ url = 'http://pre-localhome.babytree.com'
+ else:
+ url = 'http://localhome.babytree-test.com'
+ return url
+
+ def get_go_babytree_url(self):
+ """
+ 接口go_babytree类型的请求
+ :return:
+ """
+ env = os.environ['ENV']
+ print(env)
+ if env == 'on':
+ url = 'http://go.babytree.com'
+ elif env == 'pre':
+ url = 'http://go.babytree.com'
+ else:
+ url = 'http://go-1.babytree-test.com'
+ return url
+
+ def get_inno_babytree_url(self):
+ """
+ 接口mapi_babytree类型的请求
+ :return:
+ """
+ env = os.environ['ENV']
+ print(env)
+ if env == 'on':
+ url = 'http://apilocal.babytree.com'
+ elif env == 'pre':
+ url = 'http://pre-apilocal.babytree.com'
+ else:
+ url = 'http://apilocal.babytree-test.com'
+ return url
+
+ def get_localfront_babytree_url(self):
+ """
+ 接口mapi_babytree类型的请求
+ :return:
+ """
+ env = os.environ['ENV']
+ print(env)
+ if env == 'on':
+ url = 'http://localfront.babytree.com'
+ elif env == 'pre':
+ url = 'http://pre-localfront.babytree.com'
+ else:
+ url = 'http://localfront.babytree-test.com'
+ return url
+
+ def get_search_platform_hz_index_url(self):
+ """
+ 接口类型的请求
+ :return:
+ """
+ env = os.environ['ENV']
+ if env == 'on':
+ url = 'http://search-index.babytree.com'
+ else:
+ url = 'http://sit-search-index.babytree.com'
+ return url
+
+ # 随机n位字符串,返回n位字符串
+ def randomString(self, n):
+ import string
+ import random
+ s = "".join(random.sample(string.ascii_letters + string.digits + "!@#$%^&*()", n))
+ return s
+
+ # 打开网页
+ def openBrowser(self, url, chrome):
+
+ chrome.implicitly_wait(10) # 隐式等待 10秒
+ chrome.get(url)
+ return chrome
+
+ def logIn(self, username, password, login_button,chrome):
+ chrome.find_element_by_xpath(username).clear()
+ chrome.find_element_by_xpath(username).send_keys('xhs')
+ chrome.find_element_by_xpath(password).clear()
+ chrome.find_element_by_xpath(password).send_keys('a123456!')
+ chrome.find_element_by_xpath(login_button).click()
+ def check_login_result(self,username,chrome):
+ for i in range(10000):
+ sleep(1)
+ try:
+ if (chrome.find_element_by_xpath('//div[text()=" %s "]' % username)).is_displayed():
+ print('看看这里显示了没有',username)
+ break
+ except:
+ continue
+ return chrome.find_element_by_xpath('//div[text()=" %s "]' % username).text
+ def quit_chrome(self,chrome):
+ chrome.quit()
+
+ # 获取当前项目的根目录的路径
+ def get_pro_path(self):
+ import os
+ curPath = os.path.abspath(os.path.dirname(__file__)) # 获取当前文件的所在目录的绝对路径
+ # print(os.path.split(curPath))
+ rootPath = os.path.split(curPath)[0]
+ return rootPath
\ No newline at end of file
diff --git a/common/config/module_name.py b/common/config/module_name.py
new file mode 100644
index 0000000000000000000000000000000000000000..6c50dec9e786f0145a1bcc4e6b56145970278fce
--- /dev/null
+++ b/common/config/module_name.py
@@ -0,0 +1,8 @@
+
+class ModuleName(object):
+
+ SEARCH_MERGER = "search-merger"
+ SEARCH_SUGGEST = "search-suggest"
+
+ SEARCH_PLATFORM_INDEX = "search-platform-index"
+ SEARCH_PLATFORM_WEB = "search-platform-web"
diff --git a/common/confop.py b/common/confop.py
new file mode 100644
index 0000000000000000000000000000000000000000..87f02a71e66c6b4effbee524d744793678f3596f
--- /dev/null
+++ b/common/confop.py
@@ -0,0 +1,47 @@
+import configparser
+import os
+import yaml
+
+cf = configparser.ConfigParser()
+curPath = os.path.abspath(os.path.dirname(__file__))
+rootPath = rootPath = os.path.split(curPath)[0]
+
+class confOP:
+ def getConfValue(self, filename, section, option, type='string'):
+ cf.read(filename)
+ if (type == 'string'):
+ value = cf.get(section, option)
+ else:
+ value = cf.getint(section, option)
+ return value
+
+ def getYamlValue(self, filename):
+ """
+ 获取公共sql中的sql
+ :param filename:
+ :return:
+ """
+ file = os.path.join(rootPath, "data" + os.sep + filename)
+ f = open(file, 'r', encoding='utf-8')
+ cont = f.read()
+ value = yaml.load(cont, Loader=yaml.FullLoader)
+ f.close()
+ return value
+
+ def getBusiYamlValue(self, path, filename):
+ """
+ 获取业务中的yaml文件数据
+ :param path:
+ :param filename:
+ :return:
+ """
+ file = os.path.join(path, filename)
+ f = open(file, 'r', encoding='utf-8')
+ cont = f.read()
+ value = yaml.load(cont, Loader=yaml.FullLoader)
+ f.close()
+ return value
+
+
+
+
diff --git a/common/data b/common/data
new file mode 100644
index 0000000000000000000000000000000000000000..7fa420f82ed9af236e52f4e530d98a3c85f1e17d
--- /dev/null
+++ b/common/data
@@ -0,0 +1,3 @@
+loginusername1:
+ loginusername: 国药集团公司!n0d(
+ goodsname: 一次性注射器NbfHr
diff --git a/common/dateUtils.py b/common/dateUtils.py
new file mode 100644
index 0000000000000000000000000000000000000000..09f31633fda21bc256545710d3160b2cecac18ce
--- /dev/null
+++ b/common/dateUtils.py
@@ -0,0 +1,150 @@
+import datetime
+import calendar
+
+
+
+
+class dateUtils:
+
+ def get_current_start_end(self):
+ """
+ 获取当日的开始时间和结束时间
+ :return:
+ """
+ start, end = datetime.datetime.now().replace(hour=0, minute=0, second=0).strftime(
+ "%Y-%m-%d %H:%M:%S"), datetime.datetime.now().replace(hour=23, minute=59, second=59).strftime(
+ "%Y-%m-%d %H:%M:%S")
+ return start, end
+
+
+ def get_week_start_end(self):
+ """
+ 获取本周的第一天和最后一天
+ :return:
+ """
+ monday, sunday = datetime.date.today(), datetime.date.today()
+ one_day = datetime.timedelta(days=1)
+ while monday.weekday() != 0:
+ monday -= one_day
+ while sunday.weekday() != 6:
+ sunday += one_day
+ # 返回当前的星期一和星期天的日期
+ monday, sunday = monday.strftime("%Y-%m-%d %H:%M:%S"), sunday.strftime("%Y-%m-%d %H:%M:%S").replace("00:00:00", "23:59:59")
+ return monday, sunday
+
+ def get_current_time(self):
+ """
+ 获取当前时间,返回格式是yyyy-mm-dd hh:mm:ss
+ :return:
+ """
+ curr_time = datetime.datetime.now()
+ time = datetime.datetime.strftime(curr_time, '%Y-%m-%d %H:%M:%S')
+ return time
+
+ def get_current_date(self):
+ """
+ 获取当前日期,返回格式是yyyy-mm-dd
+ :return:
+ """
+ curr_time = datetime.datetime.now()
+ date = datetime.datetime.strftime(curr_time, '%Y-%m-%d')
+ return date
+
+ def get_week_of_date(self, date):
+ """
+ 获取传入的日期是星期几
+ :param date:
+ :return:
+ """
+ week_day_dict = {
+ 0: '星期一',
+ 1: '星期二',
+ 2: '星期三',
+ 3: '星期四',
+ 4: '星期五',
+ 5: '星期六',
+ 6: '星期日',
+ }
+ day = datetime.datetime.strptime(date, "%Y-%m-%d").weekday()
+ return week_day_dict[day]
+
+ def add_days(self, date, days):
+ """
+ 获取新的日期
+ :param date: 日期
+ :param days: 天数(可正数,可负数)
+ :return:
+ """
+ dt = datetime.datetime.strptime(date, "%Y-%m-%d")
+ out_date = (dt + datetime.timedelta(days=days)).strftime("%Y-%m-%d")
+ return out_date
+
+ def add_hours(self, date, hours):
+ """
+ 获取新的时间
+ :param date:
+ :param hours:
+ :return:
+ """
+ dt = datetime.datetime.strptime(date, "%Y-%m-%d %H:%M:%S")
+ out_date = (dt + datetime.timedelta(hours=hours)).strftime("%Y-%m-%d %H:%M:%S")
+ return out_date
+
+ def get_month_start_end(self, year, month):
+ """
+ 获取本月的第一天和最后一天
+ :return:
+ """
+ weekDay, monthCountDay = calendar.monthrange(year, month)
+ firstDay = datetime.date(year, month, day=1)
+ lastDay = datetime.date(year, month, day=monthCountDay)
+ return firstDay, lastDay
+
+ def get_every_month_start_end(self, year):
+ """
+ 获取某年的每个月的第一天和最后一天
+ :param year:
+ :return:
+ """
+ start = []
+ end = []
+ for x in range(1, 13):
+ dt_start = (datetime.datetime(int(year), x, 1)).strftime("%Y%m%d")
+ if 12 == x:
+ dt_end = (datetime.datetime(int(year), 12, 31)).strftime("%Y%m%d")
+ else:
+ dt_end = (datetime.datetime(int(year), x + 1, 1) - datetime.timedelta(days=1)).strftime("%Y%m%d")
+ start.append(dt_start)
+ end.append(dt_end)
+ return start, end
+
+ def get_year_month(self, time):
+ """
+ 获取某个时间的年、月份
+ :param time:
+ :return:
+ """
+ dt = datetime.datetime.strptime(time, "%Y-%m-%d %H:%M:%S")
+ return dt.year, dt.month
+
+
+
+
+
+if __name__ == '__main__':
+ print(dateUtils().get_current_date())
+ print(" \n ")
+ print(dateUtils().get_current_start_end())
+ print(" \n ")
+ print(dateUtils().add_days("2020-10-18", 10))
+ print(" \n ")
+ print(dateUtils().add_hours("2020-10-18 00:00:00", 3))
+ print(" \n ")
+ print(dateUtils().get_current_time())
+ print(" \n ")
+ print(dateUtils().get_every_month_start_end("2020"))
+ print(" \n ")
+ print(dateUtils().get_week_of_date("2020-10-18"))
+
+
+
diff --git a/common/db/conf.ini b/common/db/conf.ini
new file mode 100644
index 0000000000000000000000000000000000000000..78f8475c83c1bd5097fea86834e9749870b3a704
--- /dev/null
+++ b/common/db/conf.ini
@@ -0,0 +1,35 @@
+[meitun_db]
+host = rm-bp18as20m3solyi69.mysql.rds.aliyuncs.com
+port = 3306
+user = test_admin
+password = ahdp0b.cr76_Pje1
+
+[bj_db]
+host = 172.25.1.6
+port = 3320
+user = local_rw
+password = baidugoogleyahoo
+
+[promotion]
+livedb = 19
+liveenv = 4
+liveserver = 129
+predb = 19
+preenv = 2
+preserver = 58
+
+[mongo]
+ip = 127.0.0.1
+port = 27017
+
+[redis]
+redis_host=192.168.24.31
+
+
+[cmdc_db]
+host = 39.106.226.158
+port = 3306
+user = root
+password = @^2DMfIYt1%%6OVT8
+
+
diff --git a/common/db/db.py b/common/db/db.py
new file mode 100644
index 0000000000000000000000000000000000000000..6dfd8e746f14c096d1a738bcec5570d54c4eb3a8
--- /dev/null
+++ b/common/db/db.py
@@ -0,0 +1,135 @@
+import pymysql
+import os
+import sys
+from common.confop import confOP
+from common.db.sql.sqlByIdb import sqlByIdb
+import pymongo
+curPath = os.path.abspath(os.path.dirname(__file__))
+rootPath = os.path.split(curPath)[0]
+sys.path.append(rootPath)
+
+class dbOP():
+ def __init__(self, path=rootPath):
+ self.path = path
+
+ def selectSql(self, schema, param=[], db="bj_db"):
+ host = mySql().getConf(db)[0]
+ port = mySql().getConf(db)[1]
+ user = mySql().getConf(db)[2]
+ pwd = mySql().getConf(db)[3]
+ value = confOP().getYamlValue("sql")
+ if schema not in value:
+ value = confOP().getBusiYamlValue(self.path, "sql")
+ env = os.environ["ENV"]
+ if env == "on" or env == "pre":
+ database = value[schema][0]
+ sql = value[schema][1]
+ param = param
+ result = sqlByIdb().selectSql(database, sql, param, env)
+ else:
+ result = mySql().selectSql(host, port, user, pwd, value[schema][0], value[schema][1], param)
+ return result
+
+ def ddlSql(self, schema, param=[], db="bj_db"):
+ host = mySql().getConf(db)[0]
+ port = mySql().getConf(db)[1]
+ user = mySql().getConf(db)[2]
+ pwd = mySql().getConf(db)[3]
+ value = confOP().getYamlValue("sql")
+ if schema not in value:
+ value = confOP().getBusiYamlValue(self.path, "sql")
+ result = mySql().executeUpdate(host, port, user, pwd, value[schema][0], value[schema][1], param)
+ return result
+
+
+class mySql:
+ def __init__(self):
+ pass
+
+ def getConf(self, db="bj_db"):
+ host = confOP().getConfValue(curPath + "/conf.ini", db, "host")
+ port = confOP().getConfValue(curPath + "/conf.ini", db, "port", "int")
+ user = confOP().getConfValue(curPath + "/conf.ini", db, "user")
+ pwd = confOP().getConfValue(curPath + "/conf.ini", db, "password")
+ return host,port,user,pwd
+
+ def connection(self, host, port, user, pwd, database):
+ return pymysql.connect(host=host, port=port,user=user,passwd=pwd,db=database)
+
+ def selectSql(self, host, port, user, pwd, database, sql, param=[]):
+ conn = self.connection(host, port, user, pwd, database)
+ cursor = conn.cursor()
+ try:
+ cursor.execute(sql, param)
+ data = cursor.fetchall()
+ cols = cursor.description
+ col = []
+ for i in cols:
+ col.append(i[0])
+ data = list(map(list, data))
+ return data
+ except Exception as e:
+ print(e)
+ conn.rollback()
+ cursor.close()
+ conn.close()
+
+ def executeUpdate(self, host, port, user, pwd, database, sql, param=[]):
+ conn = self.connection(host, port, user, pwd, database)
+ cursor = conn.cursor()
+ try:
+ ret = cursor.execute(sql, param)
+ conn.commit()
+ return ret
+ except Exception as e:
+ print(e)
+ conn.rollback()
+ cursor.close()
+ conn.close()
+
+
+
+class mongodb:
+ def connection(self,db,collect):
+ ip = confOP().getConfValue(curPath + "/conf.ini", "mongo", "ip")
+ port = confOP().getConfValue(curPath + "/conf.ini", "mongo", "port")
+ path = "mongodb://" + ip + ":" + port + "/"
+ myclient = pymongo.MongoClient(path)
+ mydb = myclient[db]
+ mycol = mydb[collect]
+ return mycol
+
+ #查询所有的值
+ def findALl(self, db, collect):
+ result = []
+ mycol = self.connection(db, collect)
+ for x in mycol.find():
+ result.append(x)
+ return result
+
+ #按照条件查询:条件为{}类型
+ def findByCon(self, db, collect, condition):
+ result = []
+ mycol = self.connection(db, collect)
+ for x in mycol.find(condition):
+ result.append(x)
+ return result
+
+
+
+
+
+if __name__ == '__main__':
+ env = 'sit'
+ os.environ['ENV'] = env.lower()
+ path = "D:\\myCode\\autotest-airtest-local\\data\\月嫂"
+ #mysql的例子
+ result = dbOP(path).selectSql("local_worker_info")
+ print(result[0])
+ #monggdb的例子
+ #mongodb().findByCon("yapi","user", {"role": "admin"})
+ #redis的例子
+ #redisClass().connect()
+
+
+
diff --git a/common/db/redis.py b/common/db/redis.py
new file mode 100644
index 0000000000000000000000000000000000000000..e03c865fc8b8a8166c997478299ad695c76aa402
--- /dev/null
+++ b/common/db/redis.py
@@ -0,0 +1,921 @@
+import redis
+import os
+curPath = os.path.abspath(os.path.dirname(__file__))
+rootPath = os.path.split(curPath)[0]
+import sys
+sys.path.append(rootPath)
+from common.confop import confOP
+
+class redisClass:
+ def connect(self):
+ redis_host = confOP.getConfValue(curPath + "/conf.ini", "redis", "redis_host")
+ pool = redis.ConnectionPool(host=redis_host)
+ r = redis.Redis(connection_pool=pool)
+ return r
+
+ def randomkey(self):
+ """
+ 获取随机的一个键
+ :return: b'name'
+ """
+ r = redisClass().connect()
+ return r.randomkey()
+
+ def exists(self, name):
+ """
+ 判断一个键是否存在
+ :param name:键名
+ :return: True
+ 例子: .exists('name')
+ 是否存在name这个键
+ """
+ r = redisClass().connect()
+ return r.exists(name)
+
+ def delete(self, name):
+ """
+ 删除一个键
+ :param name:键名
+ :return: 1
+ 例子: .delete('name')
+ 删除name这个键
+ """
+ r = redisClass().connect()
+ return r.delete(name)
+
+ def type(self, name):
+ """
+ 判断键类型
+ :param name:
+ :return:b'string'
+ 例子:.type('name')
+ 判断name这个键类型
+ """
+ r = redisClass().connect()
+ return r.type(name)
+
+ def keys(self, pattern):
+ """
+ 获取所有符合规则的键
+ :param pattern:匹配规则
+ :return:[b'name']
+ 例子:.keys('n*')
+ 获取所有以n开头的键
+ """
+ r = redisClass().connect()
+ return r.keys(pattern)
+
+ def rename(self, src, dst):
+ """
+ 重命名键
+ :param src: 原键名;
+ :param dst: 新键名
+ :return:True
+ 例子:.rename('name', 'nickname')
+ 将name重命名为nickname
+ """
+ r = redisClass().connect()
+ return r.rename(src, dst)
+
+ def dbsize(self):
+ """
+ 获取当前数据库中键的数目
+ :return: 100
+ """
+ r = redisClass().connect()
+ return r.dbsize()
+
+ def expire(self, name, time):
+ """
+ 设定键的过期时间,单位为秒
+ :param name:键名;
+ :param time:秒数
+ :return:True
+ 例子:.expire('name', 2)
+ 将name键的过期时间设置为2秒
+ """
+ r = redisClass().connect()
+ return r.expire(name, time)
+
+ def ttl(self, name):
+ """
+ 获取键的过期时间,单位为秒,-1表示永久不过期
+ :param name: 键名
+ :return: -1
+ 例子:.ttl('name')
+ 获取name这个键的过期时间
+ """
+ r = redisClass().connect()
+ return r.ttl(name)
+
+ def move(self, name, db):
+ """
+ 将键移动到其他数据库
+ :param name: 键名;
+ :param db: 数据库代号
+ :return: True
+ 例子: .move('name', 2)
+ 将name移动到2号数据库
+ """
+ r = redisClass().connect()
+ return r.move(name, db)
+
+ def flushdb(self):
+ """
+ 删除当前选择数据库中的所有键
+ :return: True
+ """
+ r = redisClass().connect()
+ return r.flushdb()
+
+ def flushall(self):
+ """
+ 删除所有数据库中的所有键
+ :return: True
+ """
+ r = redisClass().connect()
+ return r.flushall()
+
+ def set(self, name, value):
+ """
+ 给数据库中键为name的string赋予值value
+ :param name: 键名;
+ :param value:值
+ :return: True
+ 例子: .set('name', 'Bob')
+ 给name这个键的value赋值为Bob
+ """
+ r = redisClass().connect()
+ return r.set(name, value)
+
+ def get(self, name):
+ """
+ 返回数据库中键为name的string的value
+ :param name: 键名
+ :return: b'Bob'
+ 例子: .get('name')
+ 返回name这个键的value
+ """
+ r = redisClass().connect()
+ return r.get(name)
+
+ def getset(self, name, value):
+ """
+ 给数据库中键为name的string赋予值value并返回上次的value
+ :param name: 键名;
+ :param value: 新值
+ :return: b'Bob'
+ 例子: .getset('name', 'Mike')
+ 赋值name为Mike并得到上次的value
+ """
+ r = redisClass().connect()
+ return r.getset(name, value)
+
+ def mget(self, keys, *args):
+ """
+ 返回多个键对应的value
+ :param keys: 键的列表
+ :param args:
+ :return: [b'Mike', b'Miker']
+ 例子: .mget(['name', 'nickname'])
+ 返回name和nickname的value
+ """
+ r = redisClass().connect()
+ return r.mget(keys, *args)
+
+ def setnx(self, name, value):
+ """
+ 如果不存在这个键值对,则更新value,否则不变
+ :param name: 键名
+ :param value:
+ :return: 第一次运行结果是True,第二次运行结果是False
+ 例子: .setnx('newname', 'James')
+ 如果newname这个键不存在,则设置值为James
+ """
+ r = redisClass().connect()
+ return r.setnx(name, value)
+
+ def setex(self, name, time, value):
+ """
+ 设置可以对应的值为string类型的value,并指定此键值对应的有效期
+ :param name: 键名;
+ :param time: 有效期;
+ :param value: 值
+ :return: True
+ 例子: .setex('name', 1, 'James')
+ 将name这个键的值设为James,有效期为1秒
+ """
+ r = redisClass().connect()
+ return r.setex(name, time, value)
+
+ def setrange(self, name, offset, value):
+ """
+ 设置指定键的value值的子字符串
+ :param name: 键名;
+ :param offset: 偏移量;
+ :param value: 值
+ :return:xx,修改后的字符串长度
+ 例子:
+ .set('name', 'Hello')
+ .setrange('name', 6, 'World')
+ 设置name为Hello字符串,并在index为6的位置补World
+ """
+ r = redisClass().connect()
+ return r.setrange(name, offset, value)
+
+ def mset(self, mapping):
+ """
+ 批量赋值
+ :param mapping: 字典
+ :return: True
+ 例子: .mset({'name1': 'Durant', 'name2': 'James'})
+ 将name1设为Durant,name2设为James
+ """
+ r = redisClass().connect()
+ return r.mset(mapping)
+
+ def msetnx(self, mapping):
+ """
+ 键均不存在时才批量赋值
+ :param mapping: 字典
+ :return: True
+ 例子: .msetnx({'name3': 'Smith', 'name4': 'Curry'})
+ 在name3和name4均不存在的情况下才设置二者值
+ """
+ r = redisClass().connect()
+ return r.msetnx(mapping)
+
+ def incr(self, name, amount=1):
+ """
+ 键为name的value增值操作,默认为1,键不存在则被创建并设为amount
+ :param name: 键名;
+ :param amount: 增长的值
+ :return: 1,即修改后的值
+ 例子: .incr('age', 1)
+ age对应的值增1,若不存在,则会创建并设置为1
+ """
+ r = redisClass().connect()
+ return r.incr(name, amount)
+
+ def decr(self, name, amount=1):
+ """
+ 键为name的value减值操作,默认为1,键不存在则被创建并将value设置为-amount
+ :param name: 键名;
+ :param amount: 减少的值
+ :return: -1,即修改后的值
+ 例子: .decr('age', 1)
+ age对应的值减1,若不存在,则会创建并设置为-1
+ """
+ r = redisClass().connect()
+ return r.decr(name, amount)
+
+ def append(self, key, value):
+ """
+ 键为name的string的值附加value
+ :param key: 键名
+ :param value:
+ :return: 13,即修改后的字符串长度
+ 例子: .append('nickname', 'OK')
+ 向键为nickname的值后追加OK
+ """
+ r = redisClass().connect()
+ return r.append(key, value)
+
+ def substr(self, name, start, end=-1):
+ """
+ 返回键为name的string的子串
+ :param name: 键名;
+ :param start: 起始索引;
+ :param end: 终止索引,默认为-1,表示截取到末尾
+ :return: b'ello'
+ 例子:.substr('name', 1, 4)
+ 返回键为name的值的字符串,截取索引为1~4的字符
+ """
+ r = redisClass().connect()
+ return r.substr(name, start, end)
+
+ def getrange(self, key, start, end):
+ """
+ 获取键的value值从start到end的子字符串
+ :param key: 键名;
+ :param start: 起始索引;
+ :param end: 终止索引
+ :return: b'ello'
+ 例子: .getrange('name', 1, 4)
+ 返回键为name的值的字符串,截取索引为1~4的字符
+ """
+ r = redisClass().connect()
+ return r.getrange(key, start, end)
+
+ def rpush(self, name, *values):
+ """
+ 在键为name的列表末尾添加值为value的元素,可以传多个
+ :param name: 键名;
+ :param values: 值
+ :return: 3,列表大小
+ 例子: .rpush('list', 1, 2, 3)
+ 向键为list的列表尾添加1、2、3
+ """
+ r = redisClass().connect()
+ return r.rpush(name, *values)
+
+ def lpush(self, name, *values):
+ """
+ 在键为name的列表头添加值为value的元素,可以传多个
+ :param name: 键名;
+ :param values: 值
+ :return: 4,列表大小
+ 例子:.lpush('list', 0)
+ 向键为list的列表头部添加0
+ """
+ r = redisClass().connect()
+ return r.lpush(name, *values)
+
+ def llen(self, name):
+ """
+ 返回键为name的列表的长度
+ :param name: 键名
+ :return: 4
+ 例子:.llen('list')
+ 返回键为list的列表的长度
+ """
+ r = redisClass().connect()
+ return r.llen(name)
+
+ def lrange(self, name, start, end):
+ """
+ 返回键为name的列表中start至end之间的元素
+ :param name: 键名;
+ :param start: 起始索引;
+ :param end: 终止索引
+ :return: [b'3', b'2', b'1']
+ 例子:.lrange('list', 1, 3)
+ 返回起始索引为1终止索引为3的索引范围对应的列表
+ """
+ r = redisClass().connect()
+ return r.lrange(name, start, end)
+
+ def ltrim(self, name, start, end):
+ """
+ 截取键为name的列表,保留索引为start到end的内容
+ :param name: 键名;
+ :param start: 起始索引;
+ :param end: 终止索引
+ :return: True
+ 例子:ltrim('list', 1, 3)
+ 保留键为list的索引为1到3的元素
+ """
+ r = redisClass().connect()
+ return r.ltrim(name, start, end)
+
+ def lindex(self, name, index):
+ """
+ 返回键为name的列表中index位置的元素
+ :param name: 键名;
+ :param index: 索引
+ :return: b’2’
+ 例子:.lindex('list', 1)
+ 返回键为list的列表索引为1的元素
+ """
+ r = redisClass().connect()
+ return r.lindex(name, index)
+
+ def lset(self, name, index, value):
+ """
+ 给键为name的列表中index位置的元素赋值,越界则报错
+ :param name: 键名;
+ :param index: 索引位置;
+ :param value: 值
+ :return: True
+ 例子:.lset('list', 1, 5)
+ 将键为list的列表中索引为1的位置赋值为5
+ """
+ r = redisClass().connect()
+ return r.lset(name, index, value)
+
+ def lrem(self, name, count, value):
+ """
+ 删除count个键的列表中值为value的元素
+ :param name: 键名;
+ :param count: 删除个数;
+ :param value: 值
+ :return: 1,即删除的个数
+ 例子:.lrem('list', 2, 3)
+ 将键为list的列表删除两个3
+ """
+ r = redisClass().connect()
+ return r.lrem(name, count, value)
+
+ def lpop(self, name):
+ """
+ 返回并删除键为name的列表中的首元素
+ :param name: 键名
+ :return: b'5'
+ 例子:.lpop('list')
+ 返回并删除名为list的列表中的第一个元素
+ """
+ r = redisClass().connect()
+ return r.lpop(name)
+
+ def rpop(self, name):
+ """
+ 返回并删除键为name的列表中的尾元素
+ :param name: 键名
+ :return: b'2'
+ 例子:.rpop('list')
+ 返回并删除名为list的列表中的最后一个元素
+ """
+ r = redisClass().connect()
+ return r.rpop(name)
+
+ def blpop(self, keys, timeout=0):
+ """
+ 返回并删除名称在keys中的list中的首个元素,如果列表为空,则会一直阻塞等待
+ :param keys: 键列表;
+ :param timeout: 超时等待时间,0为一直等待
+ :return: [b'5']
+ 例子:.blpop('list')
+ 返回并删除键为list的列表中的第一个元素
+ """
+ r = redisClass().connect()
+ return r.blpop(keys, timeout)
+
+ def brpop(self, keys, timeout=0):
+ """
+ 返回并删除键为name的列表中的尾元素,如果list为空,则会一直阻塞等待
+ :param keys: 键列表;
+ :param timeout: 超时等待时间,0为一直等待
+ :return: [b'2']
+ 例子:.brpop('list')
+ 返回并删除名为list的列表中的最后一个元素
+ """
+ r = redisClass().connect()
+ return r.brpop(keys, timeout)
+
+ def rpoplpush(self, src, dst):
+ """
+ 返回并删除名称为src的列表的尾元素,并将该元素添加到名称为dst的列表头部
+ :param src: 源列表的键;
+ :param dst: 目标列表的key
+ :return: b'2'
+ 例子:.rpoplpush('list', 'list2')
+ 将键为list的列表尾元素删除并将其添加到键为list2的列表头部,然后返回
+ """
+ r = redisClass().connect()
+ return r.rpoplpush(src, dst)
+
+ def sadd(self, name, *values):
+ """
+ 向键为name的集合中添加元素
+ :param name: 键名;
+ :param values: 值,可为多个
+ :return: 3,即插入的数据个数
+ 例子: .sadd('tags', 'Book', 'Tea', 'Coffee')
+ 向键为tags的集合中添加Book、Tea和Coffee这3个内容
+ """
+ r = redisClass().connect()
+ return r.sadd(name, *values)
+
+ def srem(self, name, *values):
+ """
+ 从键为name的集合中删除元素
+ :param name: 键名;
+ :param values: 值,可为多个
+ :return: 1,即删除的数据个数
+ 例子: .srem('tags', 'Book')
+ 从键为tags的集合中删除Book
+ """
+ r = redisClass().connect()
+ return r.srem(name, *values)
+
+ def spop(self, name):
+ """
+ 随机返回并删除键为name的集合中的一个元素
+ :param name: 键名
+ :return:b'Tea'
+ 例子:.spop('tags')
+ 从键为tags的集合中随机删除并返回该元素
+ """
+ r = redisClass().connect()
+ return r.spop(name)
+
+ def smove(self, src, dst, value):
+ """
+ 从src对应的集合中移除元素并将其添加到dst对应的集合中
+ :param src: 源集合;
+ :param dst: 目标集合;
+ :param value: 元素值
+ :return: True
+ 例子:.smove('tags', 'tags2', 'Coffee')
+ 从键为tags的集合中删除元素Coffee并将其添加到键为tags2的集合
+ """
+ r = redisClass().connect()
+ return r.smove(src, dst, value)
+
+ def scard(self, name):
+ """
+ 返回键为name的集合的元素个数
+ :param name:
+ :return: 3
+ 例子:.scard('tags')
+ 获取键为tags的集合中的元素个数
+ """
+ r = redisClass().connect()
+ return r.scard(name)
+
+ def sismember(self, name, value):
+ """
+ 测试member是否是键为name的集合的元素
+ :param name: 键值
+ :param value:
+ :return: True
+ 例子:.sismember('tags', 'Book')
+ 判断Book是否是键为tags的集合元素
+ """
+ r = redisClass().connect()
+ return r.sismember(name, value)
+
+ def sinter(self, keys, *args):
+ """
+ 返回所有给定键的集合的交集
+ :param keys: 键列表
+ :param args:
+ :return: {b'Coffee'}
+ 例子:.sinter(['tags', 'tags2'])
+ 返回键为tags的集合和键为tags2的集合的交集
+ """
+ r = redisClass().connect()
+ return r.sinter(keys, *args)
+
+ def sinterstore(self, dest, keys, *args):
+ """
+ 求交集并将交集保存到dest的集合
+ :param dest: 结果集合;
+ :param keys: 键列表
+ :param args:
+ :return: 1
+ 例子:.sinterstore('inttag', ['tags', 'tags2'])
+ 求键为tags的集合和键为tags2的集合的交集并将其保存为inttag
+ """
+ r = redisClass().connect()
+ return r.sinterstore(dest, keys, *args)
+
+ def sunion(self, keys, *args):
+ """
+ 返回所有给定键的集合的并集
+ :param keys: 键列表
+ :param args:
+ :return: {b'Coffee', b'Book', b'Pen'}
+ 例子:.sunion(['tags', 'tags2'])
+ 返回键为tags的集合和键为tags2的集合的并集
+ """
+ r = redisClass().connect()
+ return r.sunion(keys, *args)
+
+ def sunionstore(self, dest, keys, *args):
+ """
+ 求并集并将并集保存到dest的集合
+ :param dest: 结果集合;
+ :param keys: 键列表
+ :param args:
+ :return: 3
+ 例子:.sunionstore('inttag', ['tags', 'tags2'])
+ 求键为tags的集合和键为tags2的集合的并集并将其保存为inttag
+ """
+ r = redisClass().connect()
+ return r.sunionstore(dest, keys, *args)
+
+ def sdiff(self, keys, *args):
+ """
+ 返回所有给定键的集合的差集
+ :param keys: 键列表
+ :param args:
+ :return: {b'Book', b'Pen'}
+ 例子:.sdiff(['tags', 'tags2'])
+ 返回键为tags的集合和键为tags2的集合的差集
+ """
+ r = redisClass().connect()
+ return r.sdiff(keys, *args)
+
+ def sdiffstore(self, dest, keys, *args):
+ """
+ 求差集并将差集保存到dest集合
+ :param dest: 结果集合;
+ :param keys: 键列表
+ :param args:
+ :return: 3
+ 例子:.sdiffstore('inttag', ['tags', 'tags2'])
+ 求键为tags的集合和键为tags2的集合的差集并将其保存为inttag
+ """
+ r = redisClass().connect()
+ return r.sdiffstore(dest, keys, *args)
+
+ def smembers(self, name):
+ """
+ 返回键为name的集合的所有元素
+ :param name: 键名
+ :return: {b'Pen', b'Book', b'Coffee'}
+ 例子:.smembers('tags')
+ 返回键为tags的集合的所有元素
+ """
+ r = redisClass().connect()
+ return r.smembers(name)
+
+ def srandmember(self, name):
+ """
+ 随机返回键为name的集合中的一个元素,但不删除元素
+ :param name: 键值
+ :return:
+ 例子:.srandmember('tags')
+ 随机返回键为tags的集合中的一个元素
+ """
+ r = redisClass().connect()
+ return r.srandmember(name)
+
+ def zadd(self, name, *args, **kwargs):
+ """
+ 向键为name的zset中添加元素member,score用于排序。如果该元素存在,则更新其顺序
+ :param name: 键名;
+ :param args: 可变参数
+ :param kwargs:
+ :return: 2,即添加的元素个数
+ 例子:.zadd('grade', 100, 'Bob', 98, 'Mike')
+ 向键为grade的zset中添加Bob(其score为100),并添加Mike(其score为98)
+ """
+ r = redisClass().connect()
+ return r.zadd(name, *args, **kwargs)
+
+ def zrem(self, name, *values):
+ """
+ 删除键为name的zset中的元素
+ :param name: 键名;
+ :param values: 元素
+ :return: 1,即删除的元素个数
+ 例子:.zrem('grade', 'Mike')
+ 从键为grade的zset中删除Mike
+ """
+ r = redisClass().connect()
+ return r.zrem(name, *values)
+
+ def zincrby(self, name, value, amount=1):
+ """
+ 如果在键为name的zset中已经存在元素value,则将该元素的score增加amount;否则向该集合中添加该元素,其score的值为amount
+ :param name: key名;
+ :param value: 元素;
+ :param amount: 增长的score值
+ :return: 98.0,即修改后的值
+ 例子:.zincrby('grade', 'Bob', -2)
+ 键为grade的zset中Bob的score减2
+ """
+ r = redisClass().connect()
+ return r.zincrby(name, value, amount)
+
+ def zrank(self, name, value):
+ """
+ 返回键为name的zset中元素的排名,按score从小到大排序,即名次
+ :param name: 键名;
+ :param value: 元素值
+ :return: 1
+ 例子:.zrank('grade', 'Amy')
+ 得到键为grade的zset中Amy的排名
+ """
+ r = redisClass().connect()
+ return r.zrank(name, value)
+
+ def zrevrank(self, name, value):
+ """
+ 返回键为name的zset中元素的倒数排名(按score从大到小排序),即名次
+ :param name: 键名;
+ :param value: 元素值
+ :return: 2
+ 例子:.zrevrank('grade', 'Amy')
+ 得到键为grade的zset中Amy的倒数排名
+ """
+ r = redisClass().connect()
+ return r.zrevrank(name, value)
+
+ def zrevrange(self, name, start, end, withscores=False):
+ """
+ 返回键为name的zset(按score从大到小排序)中index从start到end的所有元素
+ :param name: 键值;
+ :param start: 开始索引;
+ :param end: 结束索引;
+ :param withscores: 是否带score
+ :return: [b'Bob', b'Mike', b'Amy', b'James']
+ 例子:.zrevrange('grade', 0, 3)
+ 返回键为grade的zset中前四名元素
+ """
+ r = redisClass().connect()
+ return r.zrevrange(name, start, end, withscores)
+
+ def zrangebyscore(self, name, min, max, start=None, num=None, withscores=False):
+ """
+ 返回键为name的zset中score在给定区间的元素
+ :param name: 键名;
+ :param min: 最低score;
+ :param max: 最高score;
+ :param start: 起始索引;
+ :param num: 个数;
+ :param withscores: 是否带score
+ :return: [b'Bob', b'Mike', b'Amy', b'James']
+ 例子:.zrangebyscore('grade', 80, 95)
+ 返回键为grade的zset中score在80和95之间的元素
+ """
+ r = redisClass().connect()
+ return r.zrangebyscore(name, min, max, start, num, withscores)
+
+ def zcount(self, name, min, max):
+ """
+ 返回键为name的zset中score在给定区间的数量
+ :param name: 键名;
+ :param min: 最低score;
+ :param max: 最高score
+ :return: 2
+ 例子:.zcount('grade', 80, 95)
+ 返回键为grade的zset中score在80到95的元素个数
+ """
+ r = redisClass().connect()
+ return r.zcount(name, min, max)
+
+ def zcard(self, name):
+ """
+ 返回键为name的zset的元素个数
+ :param name: 键名
+ :return: 3
+ 例子:.zcard('grade')
+ 获取键为grade的zset中元素的个数
+ """
+ r = redisClass().connect()
+ return r.zcard(name)
+
+ def zremrangebyrank(self, name, min, max):
+ """
+ 删除键为name的zset中排名在给定区间的元素
+ :param name: 键名;
+ :param min: 最低位次;
+ :param max: 最高位次
+ :return: 1,即删除的元素个数
+ 例子:.zremrangebyrank('grade', 0, 0)
+ 删除键为grade的zset中排名第一的元素
+ """
+ r = redisClass().connect()
+ return r.zremrangebyrank(name, min, max)
+
+ def zremrangebyscore(self, name, min, max):
+ """
+ 删除键为name的zset中score在给定区间的元素
+ :param name: 键名;
+ :param min: 最低score;
+ :param max: 最高score
+ :return: 1,即删除的元素个数
+ 例子:.zremrangebyscore('grade', 80, 90)
+ 删除score在80到90之间的元素
+ """
+ r = redisClass().connect()
+ return r.zremrangebyscore(name, min, max)
+
+ def hset(self, name, key, value):
+ """
+ 向键为name的散列表中添加映射
+ :param name: 键名;
+ :param key: 映射键名;
+ :param value: 映射键值
+ :return: 1,即添加的映射个数
+ 例子:.hset('price', 'cake', 5)
+ 向键为price的散列表中添加映射关系,cake的值为5
+ """
+ r = redisClass().connect()
+ return r.hset(name, key, value)
+
+ def hsetnx(self, name, key, value):
+ """
+ 如果映射键名不存在,则向键为name的散列表中添加映射
+ :param name: 键名;
+ :param key: 映射键名;
+ :param value: 映射键值
+ :return: 1,即添加的映射个数
+ 例子:.hsetnx('price', 'book', 6)
+ 向键为price的散列表中添加映射关系,book的值为6
+ """
+ r = redisClass().connect()
+ return r.hsetnx(name, key, value)
+
+ def hget(self, name, key):
+ """
+ 返回键为name的散列表中key对应的值
+ :param name: 键名;
+ :param key: 映射键名;
+ :return: 5
+ 例子:.hget('price', 'cake')
+ 获取键为price的散列表中键名为cake的值
+ """
+ r = redisClass().connect()
+ return r.hget(name, key)
+
+ def hmget(self, name, keys, *args):
+ """
+ 返回键为name的散列表中各个键对应的值
+ :param name: 键名;
+ :param keys: 映射键名列表
+ :param args:
+ :return: [b'3', b'7']
+ 例子:.hmget('price', ['apple', 'orange'])
+ 获取键为price的散列表中apple和orange的值
+ """
+ r = redisClass().connect()
+ return r.hmget(name, keys, *args)
+
+ def hmset(self, name, mapping):
+ """
+ 向键为name的散列表中批量添加映射
+ :param name: 键名;
+ :param mapping: 映射字典
+ :return: True
+ 例子:.hmset('price', {'banana': 2, 'pear': 6})
+ 向键为price的散列表中批量添加映射
+ """
+ r = redisClass().connect()
+ return r.hmset(name, mapping)
+
+ def hincrby(self, name, key, amount=1):
+ """
+ 将键为name的散列表中映射的值增加amount
+ :param name: 键名;
+ :param key: 映射键名;
+ :param amount: 增长量
+ :return: 6,修改后的值
+ 例子:.hincrby('price', 'apple', 3)
+ key为price的散列表中apple的值增加3
+ """
+ r = redisClass().connect()
+ return r.hincrby(name, key, amount)
+
+ def hexists(self, name, key):
+ """
+ 键为name的散列表中是否存在键名为键的映射
+ :param name: 键名;
+ :param key: 映射键名;
+ :return: True
+ 例子:.hexists('price', 'banana')
+ 键为price的散列表中banana的值是否存在
+ """
+ r = redisClass().connect()
+ return r.hexists(name, key)
+
+ def hdel(self, name, *keys):
+ """
+ 在键为name的散列表中,删除键名为键的映射
+ :param name: 键名;
+ :param key: 映射键名;
+ :return: True
+ 例子:.hdel('price', 'banana')
+ 从键为price的散列表中删除键名为banana的映射
+ """
+ r = redisClass().connect()
+ return r.hdel(name, *keys)
+
+ def hlen(self, name):
+ """
+ 从键为name的散列表中获取映射个数
+ :param name: 键名
+ :return: 6
+ 例子:.hlen('price')
+ 从键为price的散列表中获取映射个数
+ """
+ r = redisClass().connect()
+ return r.hlen(name)
+
+ def hkeys(self, name):
+ """
+ 从键为name的散列表中获取所有映射键名
+ :param name: 键名
+ :return: [b'cake', b'book', b'banana', b'pear']
+ 例子:.hkeys('price')
+ 从键为price的散列表中获取所有映射键名
+ """
+ r = redisClass().connect()
+ return r.hkeys(name)
+
+ def hvals(self, name):
+ """
+ 从键为name的散列表中获取所有映射键值
+ :param name: 键名
+ :return:[b'5', b'6', b'2', b'6']
+ 例子:.hvals('price')
+ 从键为price的散列表中获取所有映射键值
+ """
+ r = redisClass().connect()
+ return r.hvals(name)
+
+ def hgetall(self, name):
+ """
+ 从键为name的散列表中获取所有映射键值对
+ :param name: 键名
+ :return:{b'cake': b'5', b'book': b'6', b'orange': b'7', b'pear': b'6'}
+ 例子:.hgetall('price')
+ 从键为price的散列表中获取所有映射键值对
+ """
+ r = redisClass().connect()
+ return r.hgetall(name)
+
+
diff --git a/common/db/sql/sqlByIdb.py b/common/db/sql/sqlByIdb.py
new file mode 100644
index 0000000000000000000000000000000000000000..535e1f9ca9e97519fab1424adb695e597eeb6575
--- /dev/null
+++ b/common/db/sql/sqlByIdb.py
@@ -0,0 +1,51 @@
+# -*- encoding=utf8 -*-
+
+import base64
+import requests
+import json
+from common.confop import confOP
+
+class sqlByIdb:
+
+ # 登录
+ def login(self):
+ url = "http://docp.plt.babytree-inc.com/api/v1/passport/login/"
+ header = {
+ 'Content-Type': 'application/json'
+ }
+ username = "dGVzdF9jbG91ZA=="
+ password = "eDZpbkRITnJVRWRl"
+ postdata = json.dumps({
+ "username": base64.b64decode(username.encode('utf-8')).decode("utf-8"),
+ "password": base64.b64decode(password.encode('utf-8')).decode("utf-8")
+ })
+ response = requests.request("POST", url, headers=header, data=postdata)
+ result = json.loads(response.text.encode('utf8'))
+ return result
+
+ def selectSql(self, database, sql, param, env):
+ login_result = sqlByIdb().login()
+ sql = sql.replace('%d', '%s')
+ for pa in param:
+ pa = "'" + str(pa) + "'"
+ sql = sql.replace('%s', pa, 1)
+ print(sql)
+ value = confOP().getYamlValue("idbSet")
+ if env == "on":
+ env = "live"
+ instance_id = value[database][env]
+ url = "http://docp.plt.babytree-inc.com/api/v1/sql/mysql/query/query/"
+ payload = json.dumps({
+ "instance_id": instance_id,
+ "db_name": database,
+ "tb_name": database,
+ "limit_num": 3000,
+ "sqlContent": sql
+ })
+ headers = {
+ 'Authorization': login_result["sid"],
+ 'Content-Type': 'application/json'
+ }
+ response = requests.request("POST", url, headers=headers, data=payload)
+ result = json.loads(response.text.encode('utf8'))
+ return result["results"][0]["rows"]
diff --git a/common/dubboUtils.py b/common/dubboUtils.py
new file mode 100644
index 0000000000000000000000000000000000000000..9ddfb04f170447cf71ca37ec480d5c92044d4039
--- /dev/null
+++ b/common/dubboUtils.py
@@ -0,0 +1,93 @@
+import time
+import telnetlib
+import re
+
+
+class TelnetClient(object):
+ """通过telnet连接dubbo服务, 执行shell命令, 可用来调用dubbo接口
+ """
+ def __init__(self, server_host, server_post):
+ self.tn = telnetlib.Telnet()
+ self.server_host = server_host
+ self.server_port = server_post
+
+ # 此函数实现telnet登录主机
+ def connect_dubbo(self):
+ try:
+ print("telent连接dubbo服务端: telnet {} {} ……".format(self.server_host, self.server_port))
+ self.tn.open(self.server_host, port=self.server_port)
+ return True
+ except Exception as e:
+ print('连接失败, 原因是: {}'.format(str(e)))
+ return False
+
+ # 此函数实现执行传过来的命令,并输出其执行结果
+ def execute_some_command(self, command):
+ # 执行命令
+ cmd = (command + '\n').encode("gbk")
+ self.tn.write(cmd)
+
+ # 获取命令结果,字符串类型
+ retry_count = 0
+ # 如果响应未及时返回,则等待后重新读取,并记录重试次数
+ result = self.tn.read_very_eager().decode(encoding='gbk')
+ while result == '':
+ time.sleep(1)
+ result = self.tn.read_very_eager().decode(encoding='gbk')
+ retry_count += 1
+ return result
+
+ # 退出telnet
+ def logout_host(self):
+ self.tn.write(b"exit\n")
+ print("登出成功")
+
+
+class InvokeDubboApi(object):
+
+ def __init__(self, server_host, server_post):
+ try:
+ self.telnet_client = TelnetClient(server_host, server_post)
+ self.login_flag = self.telnet_client.connect_dubbo()
+ except Exception as e:
+ print("invokedubboapi init error" + str(e))
+
+
+
+ def invoke_dubbo_api(self, dubbo_service, dubbor_method, args):
+ api_name = dubbo_service + "." + dubbor_method + "({})"
+ cmd = "invoke " + api_name.format(args)
+ # print("调用命令是:{}".format(cmd))
+ resp0 = None
+ try:
+ if self.login_flag:
+ resp0 = self.telnet_client.execute_some_command(cmd)
+ # print("接口响应是,resp={}".format(resp0))
+ # dubbo接口返回的数据中有 elapsed: 4 ms. 耗时,需要使用elapsed 进行切割
+ return str(re.compile(".+").findall(resp0).pop(0)).split("elapsed").pop(0).strip()
+ else:
+ print("登陆失败!")
+ except Exception as e:
+ raise Exception("调用接口异常, 接口响应是resp={}, 异常信息为:{}".format(resp0, str(e)))
+ self.logout()
+
+ def logout(self):
+ self.telnet_client.logout_host()
+
+class GetDubboService2(object):
+ def __init__(self):
+ pass
+
+ def get_dubbo_info2(self,content):
+ try:
+ dubbore = re.compile(r"([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+:[0-9]+)", re.I)
+ result = dubbore.search(str(content)).group()
+ print("获取到dubbo部署信息" + result)
+ return {"server_host": result.split(":")[0], "server_post": result.split(":")[1]}
+ except Exception as e:
+ raise Exception("获取dubbo部署信息失败:{}".format(str(e)))
+
+
+
+
+
diff --git a/common/fileUtls.py b/common/fileUtls.py
new file mode 100644
index 0000000000000000000000000000000000000000..53ffb1911d358a7c3a4344dc9e9f5edc3fc9410c
--- /dev/null
+++ b/common/fileUtls.py
@@ -0,0 +1,54 @@
+import os
+from ruamel import yaml
+
+from common.db.db import dbOP
+import datetime
+curpath = os.path.dirname(os.path.realpath(__file__))
+rootPath = os.path.split(curpath)[0]
+
+# 数据读入和写入文件
+class FileUtils(object):
+ def w_info(self, info,keyname):
+ module=info[2]
+ dict = {}
+ value = {}
+ value['username'] = info[0]
+ value['goodsname'] = info[1]
+ key=keyname
+ dict[key] = value
+ w_path=rootPath+os.sep+'data'+os.sep+module
+ # print(w_path)
+ yamlpath = os.path.join(w_path, "message")
+ # 写入到yaml文件
+ with open(yamlpath, "w", encoding="utf-8") as f:
+ yaml.dump(dict, f, Dumper=yaml.RoundTripDumper,allow_unicode=True)
+
+ def r_info(self, module,keyname):
+ w_path = rootPath + os.sep + 'data' + os.sep + module
+ yamlpath = os.path.join(w_path, "message")
+ file_value = open(yamlpath, 'r',encoding='utf-8')
+ result = yaml.load(file_value.read(), Loader=yaml.Loader)
+ if result is not None:
+ key = keyname
+ if key in result:
+ return result[key]
+ else:
+ return None
+ else:
+ return None
+if __name__ == '__main__':
+ # info=("aaaa","bbbbbb","mdm3-pim")
+ # FileUtils().w_info(info,"产品新增")
+ aa=FileUtils().r_info("mdm3-pim","产品新增")
+ print(aa['username'])
+
+
+
+
+
+
+
+
+
+
+
diff --git a/common/handle_excel.py b/common/handle_excel.py
new file mode 100644
index 0000000000000000000000000000000000000000..58ef3b614389b6276e8459c82b6f5f99cdedd942
--- /dev/null
+++ b/common/handle_excel.py
@@ -0,0 +1,59 @@
+import openpyxl
+
+
+class HandleExcel:
+ """用来操作excel文件的类="""
+
+ def __init__(self, filename, sheetname):
+ """
+ 初始化对象属性
+ :param filename: excel文件路径
+ :param sheetname: 表单名
+ """
+ self.filename = filename
+ self.sheetname = sheetname
+
+ def read_data(self):
+ """读取excel中的数据"""
+ # 获取工作簿对象
+ wb = openpyxl.load_workbook(self.filename)
+ # 选择表单
+ sh = wb[self.sheetname]
+ # 按行获取所有的数据,转换为列表
+ rows_data = list(sh.rows)
+ # 创建一个空列表用来保存所有的用例数据
+ cases_data = []
+ # 获取表单中的表头数据,放入title这个列表中
+ title = []
+ for i in rows_data[0]:
+ title.append(i.value)
+
+ # 获取除表头之外的其他行数据
+ for item in rows_data[1:]:
+ # 每遍历出来一行数据,就创建一个空列表,来存放该行数据
+ values = []
+ for i in item:
+ values.append(i.value)
+ # 将该行的数据和表头进行打包,转换为字典
+ case = dict(zip(title, values))
+ # 将该行数据打包的字典,放入cases_data中
+ cases_data.append(case)
+ # 返回读取出来的所有数据
+ return cases_data
+
+ def write_data(self, row, column, value):
+ """
+ 写入数据
+ :param row: 行
+ :param column: 列表
+ :param value: 写入的值
+ :return:
+ """
+ # 获取工作簿对象
+ wb = openpyxl.load_workbook(self.filename)
+ # 选择表单
+ sh = wb[self.sheetname]
+ # 根据行、列去写入内容
+ sh.cell(row=row, column=column, value=value)
+ # 把工作簿保存为文件
+ wb.save(self.filename)
diff --git a/common/message b/common/message
new file mode 100644
index 0000000000000000000000000000000000000000..520cec2ad8b93e70d4b0e9935d112fd7a669e01f
--- /dev/null
+++ b/common/message
@@ -0,0 +1,3 @@
+loginusername1:
+ aaaa: aaaa
+ bbbbbb: bbbbbb
diff --git a/common/passwordUtils.py b/common/passwordUtils.py
new file mode 100644
index 0000000000000000000000000000000000000000..d86cf32114058a0e3c53d47fcf93589cbd3f641e
--- /dev/null
+++ b/common/passwordUtils.py
@@ -0,0 +1,59 @@
+import hashlib
+
+
+from Crypto.Cipher import AES
+
+
+class PasswordEncrypt(object):
+ """通过对密码进行加密,方便spd系统登录之后获取token
+ spd项目token不存于数据库中,token只存在于内存中
+ """
+
+ def __init__(self, username, userpwd, verifyCodeId):
+ self.username = username # 用户名
+ self.userpwd = userpwd # 密码
+ self.verifyCodeId = verifyCodeId # 验证码id
+
+ # 此函数实现密码加密
+ def pwd_Encrypt(self):
+
+ '''
+ {"username":"gyqxadmin",
+ "passwd":"af5d87060df01ce434e4a397b51a0b9bd960416aa873177889f6a0104b28e450acc980ab8d6391931a8470a91c37c94fad5d14f4925d860fb3314aca9bc4677a3ade29e23fb469b8710680995f8e218f",
+ "verifyCodeId":"512cdfebc1a042fa89d0f5a56d744f4d","verifyCode":"ece6","projectCode":"warehouse.pc"}
+ '''
+
+ # verifyCodeId = b'512cdfebc1a042fa89d0f5a56d744f4d'
+ verifyCodeId = self.verifyCodeId
+ verifyCode = bytes(verifyCodeId[0:16])
+ # print("verifyCode:", verifyCode)
+ username_and_pwd = self.username + self.userpwd
+ sha256EncodeStr = hashlib.sha256(username_and_pwd.encode("utf-8"))
+ # print("sha256EncodeStr:", sha256EncodeStr.hexdigest())
+ # print("encode sha256EncodeStr:", sha256EncodeStr.hexdigest().encode("utf-8"))
+
+ aes = AES.new(key=bytes(verifyCodeId), iv=verifyCode, mode=AES.MODE_CBC)
+ en_text = aes.encrypt(self.pad(sha256EncodeStr.hexdigest()).encode("utf-8")) # 加密明文
+
+ # print("en_text:", en_text)
+ # print("base64 de_text2:", en_text.hex())
+ # print('en_text',en_text)
+ return en_text.hex()
+
+ def pad(slef, text):
+ # print(type(text))
+ text_length = len(text)
+ amount_to_pad = AES.block_size - (text_length % AES.block_size)
+ # print('amount_to_pad',amount_to_pad)
+ # print(type(amount_to_pad))
+ if amount_to_pad == 0:
+ amount_to_pad = AES.block_size
+ pad = chr(amount_to_pad)
+ # print('pad',pad)
+ # print(text+pad * amount_to_pad)
+ return text + pad * amount_to_pad
+
+
+if __name__ == '__main__':
+ aa = PasswordEncrypt('1679886114521', 'a123456!', b'7382a248d0e94645ba8b5b0cd942370d')
+ print(aa.pwd_Encrypt())
diff --git a/common/run_case_conditions.py b/common/run_case_conditions.py
new file mode 100644
index 0000000000000000000000000000000000000000..548c7a170c032eb98ae3922874572d82804b8713
--- /dev/null
+++ b/common/run_case_conditions.py
@@ -0,0 +1,865 @@
+# -*- encoding=utf8 -*-
+from common.cli.runner import AirtestCase, run_script
+from argparse import *
+import jinja2
+import shutil
+import os
+import io
+import time
+import re
+import report.report.report as report
+import logging
+from airtest.utils.logger import get_logger
+from multiprocessing import Pool
+import math
+import requests
+import json
+import random
+from common.confop import confOP
+
+
+class CustomAirTestCase(AirtestCase):
+ # @classMethod
+ # def setUpClass(cls):
+ # super(CustomAirTestCase,cls).setUpClass()
+ #
+ # 类变量,多进程跑任务的时候用到
+ summary_message = {}
+ summary_message["caseNum"] = 0
+ summary_message["passNum"] = 0
+ summary_message['passRate'] = 0.0
+ case_results = []
+ log_list = []
+
+ def __init__(self, work_space, case_path, log_path, runtime_log, log_level):
+ """
+ 初始化一些环境变量
+ :param work_space:
+ :param case_path:
+ :param log_path:
+ :param runtime_log:
+ """
+ self.workspace = work_space
+ self.case_path = case_path
+ self.log_path = log_path
+ self.runtime_log = runtime_log
+
+ level = self.get_log_level(log_level)
+ logger = get_logger("airtest")
+ logger.setLevel(level)
+
+ def get_phone_by_user(self, user):
+ url = "http://cloud.baobaoshu.com/cloud/groupUser/findPhoneByUser?name=%s" % user
+ payload = {}
+ headers = {
+ 'Content-Type': 'application/json'
+ }
+ response = requests.request("GET", url, headers=headers, data=payload)
+ result = json.loads(response.text)
+ return result["data"]
+
+ def dingding_send_markdown(self, env, title, content, job_url, author, token):
+ at_phones = "@"
+ at = {
+ "atMobiles": [
+ # 需要填写自己的手机号,钉钉通过手机号@对应人
+ ],
+ "isAtAll": True # 是否@所有人,默认否
+ }
+ if author in ["zhangaizhen", "caiyubing", "hongli", "lihong", "wuchenlong"]:
+ at_phones = "@ALL"
+ else:
+ phones = self.get_phone_by_user(author)
+ if phones.isdigit():
+ at_phones = at_phones + phones
+ at["isAtAll"] = False
+ else:
+ at_phones = "@ALL"
+ at["isAtAll"] = True
+ phoneArr = []
+ phoneArr.append(str(phones))
+ at["atMobiles"] = phoneArr
+
+ """
+ 报错的用例以markdown的格式发钉钉群
+ :param title: 消息主题
+ :param content: 消息内容
+ :return:
+ """
+ url = 'https://oapi.dingtalk.com/robot/send?access_token=%s' % token
+ pagrem = {
+ "msgtype": "markdown",
+ "markdown": {
+ "title": "自动化执行结果",
+ "text": "#### **[" + str(env) + "环境]" + str(title) + " 用例报错** \n> ##### 执行链接: " + str(
+ job_url) + "\n> ##### 接口返回值: " + str(content) + " " + str(at_phones)
+ },
+ "at": at
+ }
+ headers = {
+ 'Content-Type': 'application/json'
+ }
+ response = requests.post(url, data=json.dumps(pagrem), headers=headers)
+ return response.text
+
+ def get_error_log_info(self, log):
+ """
+ 获取报错的日志
+ :param log:
+ :return:
+ """
+ txt_log = os.path.join(log, 'log.txt')
+ f = open(txt_log, 'r', encoding='utf-8')
+ lines = f.readlines()
+ f.close()
+ for line in lines:
+ if "assert_not_equal" in line:
+ expect_val = json.loads(line)["data"]["call_args"]["first"]
+ return expect_val
+ else:
+ return ""
+
+ def get_log_level(self, log_level):
+ if log_level == 'warn':
+ return logging.WARN
+ elif log_level == 'debug':
+ return logging.DEBUG
+ elif log_level == 'info':
+ return logging.INFO
+ else:
+ print("输入日志信息不对")
+ return logging.DEBUG
+
+ def setUp(self):
+ print("custom setup")
+ super(CustomAirTestCase, self).setUp()
+
+ def tearDown(self):
+ print("custom tearDown")
+ super(CustomAirTestCase, self).tearDown()
+
+ def get_author(self, case_name, filepath):
+ """
+ 获取case是谁写的
+ :return:
+ """
+ name = 'Unknown'
+ pyfile = open(filepath + os.sep + case_name + '.air' + os.sep + case_name + '.py', 'r', encoding='utf-8')
+ lines = pyfile.readlines()
+ for line in lines:
+ line = line.replace(" ", "")
+ if '__author__' in line:
+ line = line.split('__author__=')[-1]
+ name = line.replace('"', '')
+ name = name.strip().strip('\n')
+ pyfile.close()
+ return name
+
+ def create_log(self, log_path, air_name):
+ """
+ 创建对应case的log 文件
+ :return:
+ """
+ if os.path.isdir(log_path):
+ pass
+ else:
+ os.makedirs(log_path)
+ log = os.path.join(log_path, air_name)
+ if os.path.isdir(log):
+ shutil.rmtree(log)
+ else:
+ os.makedirs(log)
+ return log
+
+ def get_case_runtime(self, log):
+ """
+ 读取case运行日志,获取case执行开始时间,结束时间
+ :param log:
+ :return:
+ """
+ txt_log = os.path.join(log, 'log.txt')
+ f = open(txt_log, 'r', encoding='utf-8')
+ lines = f.readlines()
+
+ f.close()
+ start_time = float(re.findall('.*"start_time": (.*), "ret".*', lines[0])[0])
+ start_time = int(start_time * 1000)
+ try:
+ end_time = float(re.findall('.*"end_time": (.*)}}.*', lines[-1])[0])
+ except:
+ # case执行失败的话没打end_time
+ end_time = float(re.findall('.*"time": (.*), "data".*', lines[-2])[0])
+ end_time = int(end_time * 1000)
+ return start_time, end_time
+
+ def assign_tasks(self, task_list, num):
+ """
+ 将任务平均分配给num个设备跑
+ :param task_list: 待分配任务列表
+ :param num: num个设备
+ :return:
+ """
+ all_list = []
+ length = len(task_list)
+ for i in range(num):
+ one_list = task_list[math.floor(i / num * length):math.floor((i + 1) / num * length)]
+ all_list.append(one_list)
+ return all_list
+
+ def get_device(self, case_dict, script):
+ """
+ 根据之间跑case时候记录的设备对应执行的case,获取某个脚本是在哪个设备上执行的
+ :param case_dict:
+ :param script:
+ :return: devie
+ """
+ for k in case_dict:
+ if script in case_dict[k]:
+ return k
+
+ def get_cases_and_log(self, case_name, device_list):
+ """
+ :return: 获得需要执行的所有air的文件夹,同时对每个设备创建log目录
+ """
+ dirs_ls = []
+ for dirs in os.listdir(self.case_path):
+ isdir = os.path.join(self.case_path, dirs)
+ if os.path.isdir(isdir) and isdir.endswith(".air"):
+ air_name = dirs.replace('.air', '')
+ if case_name == 'all' or air_name in case_name:
+ script = os.path.join(self.case_path, isdir)
+ dirs_ls.append(script)
+ for device in device_list:
+ self.create_log(os.path.join(self.log_path, device), air_name)
+ return dirs_ls
+
+ def get_all_dir(self, case_name):
+ """
+ :return: 获得需要执行的所有air的文件夹,同时创建单个log目录
+ """
+ dirs_ls = []
+ for dirs in os.listdir(self.case_path):
+ isdir = os.path.join(self.case_path, dirs)
+ if os.path.isdir(isdir) and isdir.endswith(".air"):
+ air_name = dirs.replace('.air', '')
+ if 'all' in case_name or air_name in case_name:
+ script = os.path.join(self.case_path, isdir)
+ dirs_ls.append(script)
+ log = self.create_log(self.log_path, air_name)
+ CustomAirTestCase.log_list.append(log)
+ return dirs_ls
+
+ def do_run_by_pool(self, run_device, cases, log_path):
+ """
+ 在指定设备上跑指定脚本
+ :param run_device:
+ :param script:
+ :param log:
+ :return:
+ """
+ run_device = 'Android:///' + run_device
+ for script in cases:
+ air_name = script.split(os.sep)[-1].replace('.air', '')
+ log = os.path.join(log_path, air_name)
+ print(run_device + ' run ' + script + ' ---->start')
+ args = Namespace(device=run_device, log=log, recording=None, script=script)
+ try:
+ run_script(args, AirtestCase)
+ except:
+ pass
+ print(run_device + ' run ' + script + ' ---->end')
+
+ def doReport(self, results, total, report_name):
+ """
+ 输出具体报告
+ :param case_results:
+ :param summary_message:
+ :param device:
+ :return:
+ """
+ report_path = os.path.join(self.workspace, 'report')
+ if len(results) == 0:
+ print("没有执行case")
+ return
+ else:
+ env = jinja2.Environment(
+ loader=jinja2.FileSystemLoader(os.path.join(self.workspace, 'templates')),
+ extensions=(),
+ autoescape=True
+ )
+ total["passRate"] = round(total["passNum"]*100/total["caseNum"], 2)
+ template = env.get_template("summary_template.html")
+ # log_path必须传相对路径,要不在jenkins上展示报告会报错
+ log_path = '../log'
+ # report_name 是根据设备命名的,如果report_name里有设备名的话,那log_path得加一层设备名
+ if '_' in report_name:
+ log_path = '../log/' + report_name.split('_')[-1].replace('.html', '')
+ html = template.render({"case_results": results, "summary_message": total, "log_path": log_path})
+ output_file = os.path.join(report_path, report_name)
+ with io.open(output_file, 'w', encoding="utf-8") as f:
+ f.write(html)
+ print("报告文件: " + output_file)
+
+ def delWithLogToReportByDevice(self, script_list, device):
+ """
+ 根据日志信息产出报告,一个设备出一份日志
+ :param workspace:
+ :param script_list:
+ :param log_path:
+ :param device:
+ :return:
+ """
+ summary_message = {}
+ summary_message["caseNum"] = 0
+ summary_message["passNum"] = 0
+ log_path = os.path.join(self.log_path, device)
+ case_results = []
+ count = len(script_list)
+ for i in range(count):
+ script = script_list[i]
+ air_name = script.split(os.sep)[-1].replace('.air', '')
+ log = os.path.join(log_path, air_name)
+ rpt = report.LogToHtml(script, log)
+ output_file = log + os.sep + 'log.html'
+ report_dir = '../../../report/report/'
+ case_image_dir = '../../../air_case'
+ rpt.report("log_template.html", report_dir, case_image_dir, output_file=output_file)
+ result = {}
+ result["name"] = air_name
+ result["result"] = rpt.test_result
+ if result["result"]:
+ summary_message["passNum"] += 1
+ start, end = self.get_case_runtime(log)
+ result["time"] = (end - start)/1000 if end > start else 0
+ case_results.append(result)
+ summary_message["caseNum"] = count
+ report_name = 'summary_' + device + '.html'
+ self.doReport(case_results, summary_message, report_name)
+
+ def delWithLogToReport(self, case_list):
+ """
+ 读取运行case的日志,获取case数,case运行成功数等信息,生成html 报告
+ :return:
+ """
+ count = len(CustomAirTestCase.log_list)
+ for i in range(count):
+ script = case_list[i]
+ log = CustomAirTestCase.log_list[i]
+ air_name = script.split(os.sep)[-1].replace('.air', '')
+ rpt = report.LogToHtml(script, log)
+ output_file = os.path.join(log, 'log.html')
+ report_dir = '../../report/report/'
+ case_image_dir = '../../air_case'
+ try:
+ rpt.report("log_template.html", report_dir, case_image_dir, output_file=output_file)
+ except:
+ pass
+ result = {}
+ result["name"] = air_name
+ result["result"] = rpt.test_result
+ if result["result"]:
+ CustomAirTestCase.summary_message["passNum"] += 1
+ try:
+ start, end = self.get_case_runtime(log)
+ except:
+ start = 1
+ end = 60
+ result["time"] = (end - start) / 1000 if end > start else 0
+ author = self.get_author(air_name, self.case_path)
+ result["author"] = author
+ CustomAirTestCase.case_results.append(result)
+ CustomAirTestCase.summary_message["caseNum"] = count
+ CustomAirTestCase.summary_message["passRate"] = round(CustomAirTestCase.summary_message["passNum"] \
+ * 100 / CustomAirTestCase.summary_message["caseNum"], 2)
+ self.doReport(CustomAirTestCase.case_results, CustomAirTestCase.summary_message, 'summary.html')
+
+ def run_case(self, run_case, case_name, job_url, case_scenario_name):
+ """
+ 运行单个case
+ :param case_name:
+ :return: 返回case的运行结果集合,包括case名,case执行起止时间,供校验埋点的时候用
+ """
+ summary_message = {}
+ summary_message["caseNum"] = 0
+ summary_message["passNum"] = 0
+ all_start = int(time.time() * 1000)
+ fp = open(self.runtime_log, 'w+', encoding='utf-8')
+ report_dir = '../../report/report/'
+ static_root = report_dir
+ case_image_dir = '../../air_case'
+ lang = 'zh'
+ plugin = ['airtest_selenium.report']
+ # 聚合结果
+ case_results = []
+ # d获取所有用例集
+ for filepath, dirnames, filenames in os.walk(self.case_path):
+ for f in dirnames:
+ if f.endswith(".air"):
+ # f为.air用例名称:demo.air
+ air_name = f.replace('.air', '')
+ if 'all' in case_name or air_name in case_name:
+ script = os.path.join(filepath, f)
+ # 创建日志
+ log = self.create_log(self.log_path, air_name)
+ output_file = os.path.join(log, 'log.html')
+ # global args
+ args = Namespace(device=None, log=log, recording=None, script=script)
+ start = int(time.time() * 1000)
+ try:
+ flag = False
+ i = 0
+ if "AutoTest_" in log:
+ while flag == False and i < 2:
+ try:
+ run_script(args, AirtestCase)
+ flag = True
+ i += 1
+ print("yes,SUCCESS")
+ except:
+ i += 1
+ pass
+ else:
+ run_script(args, AirtestCase)
+ flag = True
+ print("yes,SUCCESS")
+ except:
+ pass
+ print("oh, FAILED")
+ finally:
+ end = int(time.time() * 1000)
+ author = self.get_author(air_name, filepath)
+ fp.write(air_name + '\t' + str(start) + '\t' + str(end) + '\t' + author + '\n')
+ log_root = 'log/' + air_name
+ report.main(log_root, static_root, script, lang, plugin, report_dir, case_image_dir, output_file)
+ result = {}
+ result["name"] = air_name
+ result["result"] = flag
+ result["author"] = author
+ result["time"] = (end - start) / 1000 if end > start else 0
+ case_results.append(result)
+ if flag == False:
+ msg = confOP().getYamlValue("msg")
+ token = msg["dingding_msg"][0]
+ if "AutoTest_" in log and token != None:
+ title = air_name
+ if air_name in case_scenario_name:
+ title = case_scenario_name[air_name] + "---" + air_name
+ content = self.get_error_log_info(log)
+ env = os.environ['ENV']
+ if len(str(content)) > 20000:
+ content = str(content)[1:300]
+ self.dingding_send_markdown(env, title, content, job_url, author, token)
+ print("case 执行完毕,开始生成报告")
+ fp.close()
+ seconds = (int(time.time() * 1000) - all_start) / 1000
+ m, s = divmod(seconds, 60)
+ summary_message["time"] = "%d分%d秒" % (m, s)
+ new_case_result, summary_message = self.merge_run_result(run_case, case_results, summary_message)
+ self.doReport(new_case_result, summary_message, 'summary.html')
+ self.merge_log_txt(run_case, static_root, lang, plugin, report_dir, case_image_dir)
+ print("报告已生成")
+
+ def run_case_single(self, device, case_name):
+ """
+ 运行单个case
+ :param device:
+ :param case_name:
+ :return: 返回case的运行结果集合,包括case名,case执行起止时间,供校验埋点的时候用
+ """
+ summary_message = {}
+ summary_message["caseNum"] = 0
+ summary_message["passNum"] = 0
+ all_start = int(time.time() * 1000)
+ fp = open(self.runtime_log, 'w+', encoding='utf-8')
+ # 聚合结果
+ case_results = []
+ # d获取所有用例集
+ for f in os.listdir(self.case_path):
+ if f.endswith(".air"):
+ # f为.air用例名称:demo.air
+ air_name = f.replace('.air', '')
+ if 'all' in case_name or air_name in case_name:
+ script = os.path.join(self.case_path, f)
+ # 创建日志
+ log = self.create_log(self.log_path, air_name)
+ output_file = os.path.join(log, 'log.html')
+ # global args
+ dev = 'Android:///' + device
+ args = Namespace(device=dev, log=log, recording=None, script=script)
+ start = int(time.time() * 1000)
+ try:
+ run_script(args, AirtestCase)
+ summary_message["passNum"] += 1
+ except:
+ pass
+ finally:
+ end = int(time.time() * 1000)
+ author = self.get_author(air_name, self.case_path)
+ fp.write(device + '\t' + air_name + '\t' + str(start) + '\t' + str(end) + '\t' + author + '\n')
+ rpt = report.LogToHtml(script, log)
+ report_dir = '../../report/report/'
+ case_image_dir = '../../air_case'
+ rpt.report("log_template.html", report_dir, case_image_dir, output_file=output_file)
+ result = {}
+ result["name"] = air_name
+ result["result"] = rpt.test_result
+ result["time"] = (end - start) / 1000 if end > start else 0
+ case_results.append(result)
+ summary_message["caseNum"] += 1
+ print("case 执行完毕,开始生成报告")
+ fp.close()
+ seconds = (int(time.time() * 1000) - all_start) / 1000
+ m, s = divmod(seconds, 60)
+ summary_message["time"] = "%d分%d秒" % (m, s)
+ self.doReport(case_results, summary_message, 'summary.html')
+ print("报告已生成")
+ return True
+
+ def run_case_by_Multi(self, device_list, case_name):
+ """
+ 兼容性测试,case在每个机器上跑一遍
+ :param device_list:
+ :param case_name:
+ :return:
+ """
+ all_start = int(time.time() * 1000)
+ p = Pool(len(device_list))
+ # 获取所有需要执行的用例集
+ script_list = self.get_cases_and_log(case_name, device_list)
+ print("任务列表:")
+ print(script_list)
+ for device in device_list:
+ # 设置进程数和设备数一样
+ try:
+ p.apply_async(self.do_run_by_pool, args=(device, script_list, os.path.join(self.log_path, device)))
+ except:
+ pass
+ p.close()
+ p.join()
+ print("all subprocesses done")
+ seconds = (int(time.time() * 1000) - all_start) / 1000
+ m, s = divmod(seconds, 60)
+ CustomAirTestCase.summary_message["time"] = "%d分%d秒" % (m, s)
+ for device in device_list:
+ self.delWithLogToReportByDevice(script_list, device)
+
+ def run_case_by_distri(self, device_list, case_name):
+ """
+ 多进程跑case,将任务平均分给不同的设备,多进程跑,都跑完后,读取各case的log.txt 文件,获取case的开始结束时间信息
+ :param device_list
+ :param case_name:
+ :return:
+ """
+ all_start = int(time.time() * 1000)
+ # 获取所有需要执行的用例集
+ script_list = self.get_all_dir(case_name)
+ device_count = len(device_list)
+ #把任务分配给不同的设备,分布式跑就是不同机器跑不同任务最终完成所有任务
+ case_list = self.assign_tasks(script_list, device_count)
+ print("任务列表:")
+ print(case_list)
+ # 记录case 及脚本对应关系
+ case_dict = {}
+ #设置进程数和设备数一样
+ p = Pool(device_count)
+ for i in range(device_count):
+ run_device = device_list[i]
+ cases = case_list[i]
+ case_dict[run_device] = cases
+ try:
+ p.apply_async(self.do_run_by_pool, args=(run_device, cases, self.log_path))
+ except:
+ pass
+ p.close()
+ p.join()
+ print("all SubProcesses done")
+ seconds = (int(time.time() * 1000) - all_start) /1000
+ m, s = divmod(seconds, 60)
+ CustomAirTestCase.summary_message["time"] = "%d分%d秒" % (m, s)
+ self.delWithLogToReport(script_list, case_dict)
+
+ def analysis_air_file(self, case_name, case_path, new_air_name):
+ """
+ 解析需要执行的air文件,将场景和场景之间隔开
+ :param case_name: 需要分开场景的air文件
+ :return:
+ """
+ case_name_list = []
+ file_name = case_path + os.sep + case_name + '.py'
+ pyfile = open(file_name, 'r', encoding='utf-8')
+ lines = pyfile.readlines()
+ for line in lines:
+ line = line.replace(" ", "").replace("\n", "")
+ if re.match("^场景", line):
+ line = line.replace("\\", "").replace("/", "").replace(":", "").replace("*", "").replace("?", "").replace("\"", "").replace("<", "").replace(">", "").replace("|", "")
+ if line in new_air_name:
+ line = line + str(random.randint(1, 500)) + str(random.choice("abcdefghijklmnopqrstuvwxyz"))
+ case_name_list.append(line)
+ pyfile.close()
+ """
+ 如果含有多条(>1)场景,则对场景进行代码块划分
+ """
+ if len(case_name_list) > 1:
+ i = 0
+ header_file = open(case_path + os.sep + 'header.py', 'w', encoding='utf-8')
+ for line in lines:
+ if re.match("^场景", line.replace(" ", "").replace("\n", "")):
+ new_file = open(case_path + os.sep + case_name_list[i] + '.py', 'w', encoding='utf-8')
+ new_file.write(line)
+ new_file.close()
+ i += 1
+ else:
+ if i == 0:
+ header_file.write(line)
+ else:
+ new_file = open(case_path + os.sep + case_name_list[i-1] + '.py', 'a+', encoding='utf-8')
+ new_file.write(line)
+ new_file.close()
+ header_file.close()
+ new_air_name.extend(case_name_list)
+ return case_name_list, new_air_name
+ else:
+ case_name_list = []
+ if case_name in new_air_name:
+ case_name = case_name + str(random.randint(1, 500)) + str(random.choice("abcdefghijklmnopqrstuvwxyz"))
+ case_name_list.append(case_name)
+ new_air_name.extend(case_name_list)
+ return case_name_list, new_air_name
+
+ def merge_new_file(self, case_list):
+ """
+ 将公共文件和场景文件合并成一个新的air文件
+ :param case_list:
+ :return:
+ """
+ new_case_list = []
+ new_air_name = []
+ case_scenario_name = {}
+ for i in range(len(case_list)):
+ case_hash = {}
+ air_name = case_list[i]["air_name"]
+ air_path = case_list[i]["air_path"]
+ module_name = case_list[i]["module"]
+ case_hash["run_case"] = air_name
+ case_hash["module"] = module_name
+ case_name_list, new_air_name = self.analysis_air_file(air_name, air_path, new_air_name)
+ if len(case_name_list) > 1:
+ case_hash["scene_run_cases"] = case_name_list
+ for j in range(len(case_name_list)):
+ case_scenario_name[case_name_list[j]] = air_name
+ if not os.path.exists(air_path):
+ os.mkdir(air_path)
+ header_file = open(air_path + os.sep + 'header.py', 'r', encoding='utf-8')
+ header_lines = header_file.readlines()
+ header_file.close()
+ new_file = open(air_path + os.sep + case_name_list[j] + '.py', 'r', encoding='utf-8')
+ new_file_lines = new_file.readlines()
+ last_line = new_file_lines[-1]
+ if re.match("^[\"]+$", last_line):
+ new_file_lines = new_file_lines[:-1]
+ new_file.close()
+ dir_name = self.case_path + os.sep + module_name + os.sep + case_name_list[j] + ".air"
+ if not os.path.exists(dir_name):
+ os.mkdir(dir_name)
+ new_air = open(dir_name + os.sep + case_name_list[j] + '.py', 'w', encoding='utf-8')
+ new_air.writelines(header_lines)
+ for line in new_file_lines:
+ new_air.write(line)
+ new_air.close()
+ os.remove(air_path + os.sep + case_name_list[j] + '.py')
+ os.remove(air_path + os.sep + 'header.py')
+ new_case_list.append(case_hash)
+ return new_case_list, new_air_name, case_scenario_name
+
+ def merge_run_result(self, run_case_list, case_result, summary_message):
+ """
+ 将场景执行结果合并,确定最后场景执行的最后状态,成功or失败
+ :return:
+ """
+ new_case_result = []
+ """
+ 遍历跑的所有用例,包括拆分出来的所有场景
+ 判断每一个list中是否存在scene_run_cases,
+ 如果存在,则一个接口中有多个场景,遍历scene_run_cases,去case_result中找执行的结果,进行合并
+ 如果不存在,则将执行结果赋值到新的结果中
+ """
+ count = 0
+ summary_message["result"] = True
+ for i in range(len(run_case_list)):
+ new_dict_result = {}
+ json_case = run_case_list[i]
+ if 'scene_run_cases' in json_case:
+ time = 0
+ new_dict_result["result"] = True
+ scene_names = json_case["scene_run_cases"]
+ new_dict_result["name"] = json_case["run_case"]
+ # 遍历scene_run_cases
+ break_flag = False
+ for m in range(len(scene_names)):
+ air_name = scene_names[m]
+ for j in range(len(case_result)):
+ dict_case = case_result[j]
+ if air_name == dict_case["name"]:
+ new_dict_result["author"] = dict_case["author"]
+ time = float(time) + float(dict_case["time"])
+ if dict_case["result"] == False:
+ new_dict_result["result"] = False
+ count += 1
+ break_flag = True
+ summary_message["result"] = False
+ break
+ if break_flag:
+ break
+ new_dict_result["time"] = time
+ new_case_result.append(new_dict_result)
+ else:
+ air_name = json_case["run_case"]
+ for j in range(len(case_result)):
+ dict_case = case_result[j]
+ if air_name == dict_case["name"]:
+ if dict_case["result"] == False:
+ count += 1
+ new_case_result.append(dict_case)
+ break
+ summary_message["caseNum"] = len(run_case_list)
+ summary_message["passNum"] = len(run_case_list) - count
+ return new_case_result, summary_message
+
+ def merge_log_txt(self, run_case_list, static_root, lang, plugin, report_dir, case_image_dir):
+ """
+ 将log.txt内容合并
+ :param run_case_list:
+ :return:
+ """
+ for i in range(len(run_case_list)):
+ json_case = run_case_list[i]
+ module_name = json_case["module"]
+ if 'scene_run_cases' in json_case:
+ air_name = json_case["run_case"]
+ script = self.case_path + os.sep + module_name + os.sep + air_name + ".air"
+ log_root = "log" + os.sep + air_name
+ air_log_path = self.log_path + os.sep + air_name
+ if not os.path.exists(air_log_path):
+ os.mkdir(air_log_path)
+ new_log = open(self.log_path + os.sep + air_name + os.sep + 'log.txt', 'w', encoding='utf-8')
+ scene_run_cases = json_case["scene_run_cases"]
+ for j in range(len(scene_run_cases)):
+ sub_air_name = scene_run_cases[j]
+ try:
+ sub_log = open(self.log_path + os.sep + sub_air_name + os.sep + 'log.txt', 'r', encoding='utf-8')
+ lines = sub_log.readlines()
+ if len(lines) > 0:
+ json_line = json.loads(lines[0])
+ total_time = str(json_line["time"])
+ if "start_time" in json_line["data"]:
+ start_time = json_line["data"]["start_time"]
+ end_time = json_line["data"]["end_time"]
+ else:
+ start_time = "1603779572.984517"
+ end_time = "1603779572.984517"
+ else:
+ total_time = "1603779572.984517"
+ start_time = "1603779572.984517"
+ end_time = "1603779572.984517"
+ new_log.write('{"tag": "function", "depth": 1, "time": %s, "data": {"name": "assert_equal", "call_args": {"first": "autotest", "second": "autotest", "msg": ""}, "start_time": %s, "ret": null, "end_time": %s}, "scene_name": "%s"}\n' % (total_time, start_time, end_time, str(sub_air_name)))
+ new_log.writelines(lines)
+ sub_log.close()
+ new_air_path = self.case_path + os.sep + module_name
+ os.remove(new_air_path + os.sep + sub_air_name + ".air" + os.sep + sub_air_name + ".py")
+ shutil.rmtree(new_air_path + os.sep + sub_air_name + ".air")
+ except Exception as e:
+ print("mergeLogTxt: ", e)
+ new_air_path = self.case_path + os.sep + module_name
+ os.remove(new_air_path + os.sep + sub_air_name + ".air" + os.sep + sub_air_name + ".py")
+ shutil.rmtree(new_air_path + os.sep + sub_air_name + ".air")
+ new_log.close()
+ output_file = self.log_path + os.sep + air_name + os.sep + "log.html"
+ report.main(log_root, static_root, script, lang, plugin, report_dir, case_image_dir, output_file)
+
+ def run_by_scenario(self, module_name, case_name, scenario_name):
+ case_results = []
+ """
+ 按照一条用例中的场景执行
+ :return:
+ """
+ case_path = self.case_path + os.sep + module_name + os.sep + case_name + ".air"
+ case_name_list = self.analysis_air_file(case_name, case_path, [])
+ for i in range(len(case_name_list)):
+ if scenario_name in case_name_list[i]:
+ scenario_name = case_name_list[i]
+ script = self.case_path + os.sep + module_name + os.sep + scenario_name + ".air"
+ air_path = self.case_path + os.sep + module_name + os.sep + scenario_name + ".air"
+ if not os.path.exists(air_path):
+ os.mkdir(air_path)
+ header_file = open(case_path + os.sep + 'header.py', 'r', encoding='utf-8')
+ header_lines = header_file.readlines()
+ header_file.close()
+ new_file = open(case_path + os.sep + scenario_name + '.py', 'r', encoding='utf-8')
+ new_file_lines = new_file.readlines()
+ last_line = new_file_lines[-1]
+ if re.match("^[\"]+$", last_line):
+ new_file_lines = new_file_lines[:-1]
+ new_file.close()
+ dir_name = self.case_path + os.sep + module_name + os.sep + scenario_name + ".air"
+ if os.path.isdir(dir_name):
+ new_air = open(dir_name + os.sep + scenario_name + '.py', 'w', encoding='utf-8')
+ new_air.writelines(header_lines)
+ for line in new_file_lines:
+ new_air.write(line)
+ new_air.close()
+ for j in range(len(case_name_list)):
+ os.remove(case_path + os.sep + case_name_list[j] + '.py')
+ os.remove(case_path + os.sep + 'header.py')
+ summary_message = {}
+ summary_message["caseNum"] = 0
+ summary_message["passNum"] = 0
+ fp = open(self.runtime_log, 'w+', encoding='utf-8')
+ # 创建日志
+ log = self.create_log(self.log_path, scenario_name)
+ output_file = os.path.join(log, 'log.html')
+ # global args
+ args = Namespace(device=None, log=log, recording=None, script=script)
+ start = int(time.time() * 1000)
+ try:
+ run_script(args, AirtestCase)
+ summary_message["passNum"] += 1
+ except:
+ pass
+ finally:
+ end = int(time.time() * 1000)
+ author = self.get_author(scenario_name, self.case_path + os.sep + module_name)
+ fp.write(scenario_name + '\t' + str(start) + '\t' + str(end) + '\t' + author + '\n')
+ rpt = report.LogToHtml(script, log)
+ report_dir = '../../report/report/'
+ case_image_dir = '../../air_case'
+ rpt.report("log_template.html", report_dir, case_image_dir, output_file=output_file)
+ result = {}
+ result["name"] = scenario_name
+ result["result"] = rpt.test_result
+ result["time"] = (end - start) / 1000 if end > start else 0
+ case_results.append(result)
+ summary_message["caseNum"] += 1
+ self.doReport(case_results, summary_message, 'summary.html')
+ os.remove(dir_name + os.sep + scenario_name + ".py")
+ shutil.rmtree(dir_name)
+ print("报告已生成")
+ return True
+
+ def insert_api_path_to_cloud(self, case_list):
+ for i in range(len(case_list)):
+ every_case = case_list[i]
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/common/rw.py b/common/rw.py
new file mode 100644
index 0000000000000000000000000000000000000000..058b054102818cd57978b986dd46305ebf17c4d4
--- /dev/null
+++ b/common/rw.py
@@ -0,0 +1,91 @@
+import os
+from ruamel import yaml
+
+from common.db.db import dbOP
+import datetime
+curpath = os.path.dirname(os.path.realpath(__file__))
+
+
+# 数据读入和写入文件
+class Rw:
+ def w_token(self, enc_user_id='u779700044448', env='on'):
+ result = dbOP().selectSql('select_user_token', [enc_user_id], "meitun_db")
+ token = result[0][0]
+ dict = {}
+ token_value = {}
+ token_value["time"] = datetime.datetime.now()
+ token_value["token"] = token
+ token_value["enc_user_id"] = enc_user_id
+ key = enc_user_id + "_" + env
+ dict[key] = token_value
+ yamlpath = os.path.join(curpath, "data")
+ # 写入到yaml文件
+ with open(yamlpath, "w", encoding="utf-8") as f:
+ yaml.dump(dict, f, Dumper=yaml.RoundTripDumper)
+ return token
+
+ def w_info(self, info):
+ dict = {}
+ value = {}
+ value["loginusername"] = info[0]
+ value["goodsname"] = info[1]
+ key="loginusername1"
+ dict[key] = value
+ yamlpath = os.path.join(curpath, "data")
+ # 写入到yaml文件
+ with open(yamlpath, "w", encoding="utf-8") as f:
+ yaml.dump(dict, f, Dumper=yaml.RoundTripDumper,allow_unicode=True)
+
+ def r_token(self, enc_user_id='u779700044448', env='on'):
+ yamlpath = os.path.join(curpath, "data")
+ file_value = open(yamlpath, 'r')
+ result = yaml.load(file_value.read(), Loader=yaml.Loader)
+ if result is not None:
+ key = enc_user_id + "_" + env
+ if key in result:
+ return result[key]
+ else:
+ return None
+ else:
+ return None
+
+
+
+
+ def r_temp_file(self, key):
+ """
+ 读临时文件
+ :return:
+ """
+ yamlPath = os.path.join(curpath, "temp.yaml")
+ file_value = open(yamlPath, 'r')
+ result = yaml.load(file_value.read(), Loader=yaml.Loader)
+ return result[key]
+
+
+ def w_temp_file(self, dict):
+ """
+ 写临时文件,没有会自动生成
+ :param content:
+ :return:
+ """
+ yamlpath = os.path.join(curpath, "temp.yaml")
+ # 写入到yaml文件
+ with open(yamlpath, "w", encoding="utf-8") as f:
+ yaml.dump(dict, f, Dumper=yaml.RoundTripDumper)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/common/timeUtils.py b/common/timeUtils.py
new file mode 100644
index 0000000000000000000000000000000000000000..9bae16c2f48c907a82db97b5d51e12830893edb1
--- /dev/null
+++ b/common/timeUtils.py
@@ -0,0 +1,12 @@
+from common.db.db import dbOP
+import datetime
+
+
+# 数据读入和写入文件
+class timeUtils(object):
+
+ def get_time_hms(self):
+ '''2023-05-06 09:39:30'''
+ import time
+ t = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
+ return t
\ No newline at end of file
diff --git a/common/tokenUtils.py b/common/tokenUtils.py
new file mode 100644
index 0000000000000000000000000000000000000000..dca48a1d50ab419c285256955bff1349431e629d
--- /dev/null
+++ b/common/tokenUtils.py
@@ -0,0 +1,14 @@
+from common.passwordUtils import PasswordEncrypt
+
+
+class TokenUtils(object):
+
+ def __init__(self, username, userpwd, verifyCodeId):
+ self.username = username # 用户名
+ self.userpwd = userpwd # 密码
+ self.verifyCodeId = verifyCodeId # 验证码id
+
+
+ def get_PasswordEncrypt(self):
+ #获取加密后的密码
+ return PasswordEncrypt(self.username,self.userpwd,bytes(self.verifyCodeId.encode())).pwd_Encrypt()
\ No newline at end of file
diff --git a/common/verification_code_ocr.py b/common/verification_code_ocr.py
new file mode 100644
index 0000000000000000000000000000000000000000..697b38998befd66ded62b80ade1a196b16753d86
--- /dev/null
+++ b/common/verification_code_ocr.py
@@ -0,0 +1,35 @@
+import base64
+import json
+import requests
+
+
+class VerificationCodeOcr:
+ """
+ 1、用于识别数字二维码
+ 2、本方法使用的是第三方识别接口(图鉴),因此需要账号和密码
+ 3、通过验证码获取接口获取到验证码之后需保存到png文件,再使用此类进行识别
+ filename:文件
+ username:图鉴系统用户名
+ password:图鉴系统密码
+ """
+
+ def __init__(self, filename, username, password):
+ self.filename = filename
+ self.username = username
+ self.password = password
+
+ def base64_api(self):
+ with open(self.filename, 'rb') as f:
+ base64_data = base64.b64encode(f.read())
+ b64 = base64_data.decode()
+ data = {"username": self.username, "password": self.password, "typeid": 1, "image": b64}
+ result = json.loads(requests.post(r"http://api.ttshitu.com/predict", json=data).text)
+ if result['success']:
+ return result["data"]["result"]
+ else:
+ return result["message"]
+ return ""
+
+
+if __name__ == '__main__':
+ print(VerificationCodeOcr(r"air_case/cmdc_login/多采商城登录.air/verifycode.png","rainbow123","rainbow123").base64_api())
diff --git a/data/business_func.py b/data/business_func.py
new file mode 100644
index 0000000000000000000000000000000000000000..d66179ae805c37c9d1cf8c56b10fb3e817471fdd
--- /dev/null
+++ b/data/business_func.py
@@ -0,0 +1,44 @@
+from math import radians, cos, sin, asin, sqrt
+from common.common_func import commonFuc
+import json
+
+
+class businessFuc(object):
+
+ def diff_years(self, source_year, target_year):
+ """
+ 计算两个日期之间相差的年数
+ :param target_year: 当前时间
+ :param source_year: 原始年日期
+ :return:
+ """
+ years = int(target_year.strftime('%Y')) - int(str(source_year).split("-")[0])
+ return years
+
+ def geopy_distance(self, lng1, lat1, lng2, lat2):
+ """
+ 计算两个经纬度之间的距离
+ :return:
+ """
+ lng1, lat1, lng2, lat2 = map(radians, [float(lng1), float(lat1), float(lng2), float(lat2)])
+ dlon = lng2 - lng1
+ dlat = lat2 - lat1
+ a = sin(dlat / 2) ** 2 + cos(lat1) * cos(lat2) * sin(dlon / 2) ** 2
+ distance = 2 * asin(sqrt(a)) * 6371 * 1000 # 地球平均半径,6371km
+ distance = round(distance / 1000, 3)
+ return distance
+
+ def get_globalsid(self):
+ login_url = commonFuc().get_business_data("", "login_url")
+ result = commonFuc().http_get(login_url)
+ return result["sid"]
+
+
+
+
+
+
+
+
+
+
diff --git a/data/cmdc-qos/data b/data/cmdc-qos/data
new file mode 100644
index 0000000000000000000000000000000000000000..14bfe9782757f8180baf1035de812a8356a1a43b
--- /dev/null
+++ b/data/cmdc-qos/data
@@ -0,0 +1,25 @@
+# 快速下单下单权限判定接口url
+"url": "/cms/public/isQuickOrderSign"
+
+"payload": {
+ "companyId": "%s"
+}
+
+# 预期结果
+checkDict1: {"success":true,"code":"200","message":null,"data":{"quickOrderSign":1},"freshToken":null}
+checkDict2: {"success":true,"code":"200","message":null,"data":{"quickOrderSign":0},"freshToken":null}
+
+
+# 多采商城登录信息
+"username": "BJ0621"
+"password": "Aa123456"
+
+json_headers: {
+ "Cmdc_access_token": "%s",
+ "Sourcetype": "mall"
+}
+
+
+#获取站点信息接口地址
+"url1": "/cms/public/website/queryAll"
+"payload1": {}
\ No newline at end of file
diff --git a/data/cmdc_buyercar_list/data b/data/cmdc_buyercar_list/data
new file mode 100644
index 0000000000000000000000000000000000000000..2be24d762f9a5324cd14a47c5e98c4712d01a442
--- /dev/null
+++ b/data/cmdc_buyercar_list/data
@@ -0,0 +1,227 @@
+# 多采商城登录信息
+"username": "BJ0621"
+"password": "Aa123456"
+
+#后台运营管理系统登录信息(子公司)
+"username1": "Admin00111"
+"password1": "Aa123456"
+
+#后台运营管理系统登录信息(总公司)
+"username2": "Admin"
+"password2": "Aa123456"
+
+json_headers: {
+ "Content-Type": "application/json",
+ "Cmdc_access_token": "%s"
+}
+#商品列表接口地址
+"url": "/product/mall/queryProductInfoByPage"
+
+
+#购物车列表接口地址
+"url1": "/product/mall/queryTotalBuyerCartList"
+
+#测试场景:获取用户对应的购物车列表信息
+json_headers1: {
+ "Cmdc_access_token": "%s",
+ "Sourcetype": "mall"
+}
+
+"payload1": {"productName":"","materialCode":"","manufacturer":"","licenseCode":"","timeSortStatus":0,"pageSize":100,"pageStart":1}
+#预期结果
+checkDict1: {"success":true,"code":"200","message":"OK"}
+
+
+
+#购物车新增商品接口地址
+"url2": "/product/mall/addBuyerCart"
+
+#测试场景:增加新的商品至购物车
+json_headers2: {
+ "Cmdc_access_token": "%s",
+ "Sourcetype": "mall"
+}
+#查询已上架商品列表接口地址
+"url20": "/product/mall/queryProductInfoByPage"
+#查询已上架商品列表请求报文
+"payload20": {"isFbList":0,"filialeCode":null,"productName":null,"productCode":null,"specifications":null,"materialCode":null,"manufacturer":null,"lineName":null,"riskRank":null,"isRelease":"1","isExistImage":null,"jdeStatus":"P","isGift":"0","description":null,"tbsj":[],"pageNum":1,"pageSize":8,"total":453,"firstQuery":true,"flag":true,"preInvalidStatus":null,"isControlSales":"0","startTime":null,"endTime":null,"status":101}
+#添加商品至购物车报文
+"payload2": {"currentCompanyId":null,"productId":"%d","quantity":1,"agreementPriceId":null,"price":"%d","filialeCode":"%s"}
+#预期结果
+checkDict2: {"success":true,"code":"200","message":"OK","data":"ok"}
+
+
+#测试场景:增加新的不存在的商品至购物车
+json_headers4: {
+ "Cmdc_access_token": "%s",
+ "Sourcetype": "mall"
+}
+
+"payload4": {"currentCompanyId":2,"productId":1114654363453453532,"quantity":1,"agreementPriceId":0,"price":12,"filialeCode":"00102"}
+#预期结果
+checkDict4: {"success":false,"code":"1078","message":"该商品不存在,加入购物车失败","data":null,"freshToken":null}
+
+#测试场景:增加已失效商品至购物车
+json_headers5: {
+ "Cmdc_access_token": "%s",
+ "Sourcetype": "mall"
+}
+#查询已失效商品列表接口地址
+"url50": "/product/mall/queryProductByJdeStatus"
+#查询已失效商品列表请求报文
+"payload50": {"isFbList":0,"filialeCode":null,"productName":null,"productCode":null,"specifications":null,"materialCode":null,"manufacturer":null,"lineName":null,"riskRank":null,"isRelease":null,"isExistImage":null,"jdeStatus":null,"isGift":null,"description":null,"tbsj":[],"pageNum":1,"pageSize":8,"total":28,"firstQuery":true,"flag":true,"preInvalidStatus":null,"isControlSales":null,"startTime":null,"endTime":null,"status":102}
+#增加已失效商品至购物车报文
+"payload5": {"currentCompanyId":null,"productId":"%d","quantity":1,"agreementPriceId":null,"price":"%d","filialeCode":"%s"}
+#预期结果
+checkDict5: {"success":false,"code":"addBuyerCartFail","message":"商品为失效状态,不可加入购物车","data":null,"freshToken":null}
+
+
+#测试场景:增加控销商品至购物车
+json_headers7: {
+ "Cmdc_access_token": "%s",
+ "Sourcetype": "mall"
+}
+#查询控销商品列表接口地址
+"url70": "/product/mall/queryProductInfoByPage"
+#查询已控销商品列表请求报文
+"payload70": {"isFbList":0,"filialeCode":null,"productName":null,"productCode":null,"specifications":null,"materialCode":null,"manufacturer":null,"lineName":null,"riskRank":null,"isRelease":null,"isExistImage":null,"jdeStatus":null,"isGift":null,"description":null,"tbsj":[],"pageNum":1,"pageSize":8,"total":28,"firstQuery":true,"flag":true,"preInvalidStatus":null,"isControlSales":null,"startTime":null,"endTime":null,"status":102}
+#增加控销商品至购物车报文
+"payload7": {"currentCompanyId":null,"productId":"%d","quantity":1,"agreementPriceId":null,"price":"%d","filialeCode":"%s"}
+#预期结果
+checkDict7: {"success":false,"code":"addBuyerCartFail","message":"商品为控销商品,不可加入购物车","data":null,"freshToken":null}
+
+#测试场景:添加JDE已停用商品至购物车
+json_headers10: {
+ "Cmdc_access_token": "%s",
+ "Sourcetype": "mall"
+}
+#查询已上架商品列表接口地址
+"url100": "/product/mall/queryProductInfoByPage"
+#查询JDE已停用商品列表请求报文
+"payload100": {"isFbList":0,"filialeCode":null,"productName":null,"productCode":null,"specifications":null,"materialCode":null,"manufacturer":null,"lineName":null,"riskRank":null,"isRelease":null,"isExistImage":null,"jdeStatus":"O","isGift":null,"description":null,"tbsj":[],"pageNum":1,"pageSize":8,"total":121,"firstQuery":true,"flag":true,"preInvalidStatus":null,"isControlSales":"","startTime":null,"endTime":null,"status":101}
+#添加JDE已停用商品至购物车报文
+"payload10": {"currentCompanyId":null,"productId":"%d","quantity":1,"agreementPriceId":null,"price":"%d","filialeCode":"%s"}
+#预期结果
+checkDict10: {"success":false,"code":"addBuyerCartFail","message":"商品为失效状态,不可加入购物车","data":null,"freshToken":null}
+
+
+#测试场景:增加赠品至购物车
+json_headers8: {
+ "Cmdc_access_token": "%s",
+ "Sourcetype": "mall"
+}
+
+#查询已上架商品列表接口地址
+"url80": "/product/mall/queryProductInfoByPage"
+#查询赠品请求报文
+"payload80": {"isFbList":0,"filialeCode":null,"productName":null,"productCode":null,"specifications":null,"materialCode":null,"manufacturer":null,"lineName":"","riskRank":null,"isRelease":"1","isExistImage":null,"jdeStatus":"P","isGift":"1","description":null,"tbsj":[],"pageNum":1,"pageSize":8,"total":21,"firstQuery":true,"flag":true,"preInvalidStatus":null,"isControlSales":"0","sdOutStorage":"","startTime":null,"endTime":null,"status":101}
+#添加赠品至购物车报文
+"payload8": {"currentCompanyId":null,"productId":"%d","quantity":1,"agreementPriceId":null,"price":"%d","filialeCode":"%s"}
+#预期结果
+checkDict8: {"success":true,"code":"200","message":"OK","data":"ok"}
+
+
+
+
+#测试场景:增加赠品且控销商品至购物车
+json_headers11: {
+ "Cmdc_access_token": "%s",
+ "Sourcetype": "mall"
+}
+
+#查询已上架商品列表接口地址
+"url110": "/product/mall/queryProductInfoByPage"
+#查询赠品请求报文
+"payload110": {"isFbList":0,"filialeCode":null,"productName":null,"productCode":null,"specifications":null,"materialCode":null,"manufacturer":null,"lineName":"","riskRank":null,"isRelease":"1","isExistImage":null,"jdeStatus":"P","isGift":"1","description":null,"tbsj":[],"pageNum":1,"pageSize":8,"total":6,"firstQuery":true,"flag":true,"preInvalidStatus":null,"isControlSales":"1","sdOutStorage":"","startTime":null,"endTime":null,"status":101}
+#添加赠品至购物车报文
+"payload11": {"currentCompanyId":null,"productId":"%d","quantity":1,"agreementPriceId":null,"price":"%d","filialeCode":"%s"}
+#预期结果
+checkDict11: {"success":false,"code":"addBuyerCartFail","message":"商品为控销商品,不可加入购物车","data":null,"freshToken":null}
+
+
+
+
+
+#测试场景:增加跨站点商品至购物车
+json_headers9: {
+ "Cmdc_access_token": "%s",
+ "Sourcetype": "mall"
+}
+
+"payload9": {"currentCompanyId":2,"productId":1114654363453453532,"quantity":1,"agreementPriceId":0,"price":12,"filialeCode":"00102"}
+#预期结果
+checkDict9: {"success":false,"code":"1078","message":"该商品不存在,加入购物车失败","data":null,"freshToken":null}
+
+
+
+
+
+#购物车商品删除接口地址
+"url3": "/product/mall/removeBuyerCart"
+
+#测试场景:从用户购物车列表删除已添加的商品
+json_headers3: {
+ "Cmdc_access_token": "%s",
+ "Sourcetype": "mall"
+}
+
+"payload3": {"buyerCartIdList":["%s"]}
+#预期结果
+checkDict3: {"success":true,"code":"200","message":"OK","data":"ok"}
+
+
+#新增跨站点商品至购物车
+"payload300": {"currentCompanyId":6,"productId":7892,"quantity":1,"agreementPriceId":0,"price":1879,"filialeCode":"00111"}
+"payload301": {"currentCompanyId":3,"productId":25769,"quantity":1,"agreementPriceId":0,"price":69,"filialeCode":"00103"}
+
+#预期结果
+checkDict300: {"success":true,"code":"200","message":"OK","data":"ok"}
+
+
+
+#调整购物车中商品数量
+"url83": "/product/mall/modifyBuyerCartQuantity"
+"payload83": {"buyerCartId":"%s","modifyQuantity":"%s","subtotal":100}
+#根据商品名称查询购物列表列表报文
+"payload81": {"productName":"%s","materialCode":"","manufacturer":"","licenseCode":"","timeSortStatus":0,"pageSize":100,"pageStart":1}
+#预期结果
+checkDict80: {"success":true,"code":"200","message":"OK","data":"ok"}
+checkDict81: {"quantity":"%s"}
+checkDict82: {"quantity":"%s"}
+
+
+
+#通过Excel复制添加商品
+#查询用户站点信息
+"url_user_websites": "/user/mall/queryWebsites"
+
+#切换站点
+"url_switch_website": "/user/mall/switchWebsite"
+"payload_switch_website": {"companyId":"%d","companyCode":"00102"}
+
+#查询站点对应的商品
+"url_website_product": "/product/mall/queryPcProductInfoByPage"
+"payload_website_product": {"filterConditions":[],"ranking":"","searchName":"","pageNum":1,"pageSize":40,"orderBy":"","orderByType":""}
+"payload_website_product1": {"searchName":"气动植皮刀"}
+
+#通过Excel复制添加商品接口地址
+"url_batch": "/product/mall/batchAddBuyerCart"
+#测试场景一:添加失败
+"payload21": {"currentCompanyId":"","buyerCartList":[{"productCode":"%s","materialCode":"","quantity":"1"}],"excelCopySort":0,"companyId":7}
+#预期结果
+checkDict21: {"success":false,"code":"200","message":"商品添加完毕,本次添加商品【1】条,成功【0】条,失败【1】条:\n第1行,该商品不存在!","data":[],"freshToken":null}
+
+#测试场景二:必填字段缺失
+"payload22": {"currentCompanyId":"","buyerCartList":[{"quantity":"1"}],"excelCopySort":0,"companyId":3}
+#预期结果
+checkDict22: {"success":false,"code":"200","message":"商品添加完毕,本次添加商品【1】条,成功【0】条,失败【1】条:\n第1行,产品编码或物料编码为空!","data":[],"freshToken":null}
+
+#测试场景三:子站点不存在
+"payload24": {"currentCompanyId":"","buyerCartList":[{"productCode":"10231310","materialCode":"","quantity":"1"}],"excelCopySort":0,"companyId":"%d"}
+#预期结果
+checkDict24: {"success":false,"code":"999","message":"找不到该公司的首营信息","data":null,"freshToken":null}
+
+#测试场景四:添加商品成功
+"payload23": {"currentCompanyId":"","buyerCartList":[{"productCode":"%s","materialCode":"","quantity":"1"}],"excelCopySort":0,"companyId":"%s"}
+#预期结果
+checkDict23: {"success":False,"code":"200","message":"商品添加完毕,本次添加商品【1】条,成功【1】条,失败【0】条。"}
diff --git a/data/cmdc_buyercart_handle/data b/data/cmdc_buyercart_handle/data
new file mode 100644
index 0000000000000000000000000000000000000000..6fcbaddd17a3fb0adafd40753c1cd7d82f185703
--- /dev/null
+++ b/data/cmdc_buyercart_handle/data
@@ -0,0 +1,64 @@
+# 多采商城登录信息
+"username": "BJ0621"
+"password": "Aa123456"
+
+#多采商城headers
+json_headers: {
+ "Cmdc_access_token": "%s",
+ "Sourcetype": "mall"
+}
+#购物车列表接口地址
+"url": "/product/mall/queryTotalBuyerCartList"
+
+#购物车新增商品接口地址
+"url_add": "/product/mall/addBuyerCart"
+
+"url_choose": "/order/mall/getShoppingCartActivity"
+
+
+#测试场景一:购物车添加跨站点商品-下单
+#新增商品报文
+#商品-国联公司-脉搏血氧测量仪
+"payload1": {"currentCompanyId":2,"productId":9036,"quantity":1,"agreementPriceId":0,"price":15000,"filialeCode":"00102"}
+#商品-北京公司-百能速干手消毒凝胶
+"payload2": {"currentCompanyId":3,"productId":1190,"quantity":1,"agreementPriceId":0,"price":30,"filialeCode":"00103"}
+#预期结果
+checkDict1: {"success":true,"code":"200","message":"OK"}
+
+#提交订单
+#提交订单接口地址
+"url1": "/order/public/saveAllDemandOrder"
+#提交订单报文
+"payload30": {"国药集团联合医疗器械有限公司":{"datas":[{"demandId":null,"demandParentId":null,"demandParentCode":null,"demandCode":null,"customerId":null,"customerName":null,"customerCode":1000086,"loginName":null,"realName":null,"addressNumber":null,"mobile":null,"productName":null,"productCode":null,"sellerCompanyName":null,"sellerCompanyCode":null,"paymentType":null,"receiveBankName":null,"receiveBankAccount":null,"paymentAmount":"15000.0000","productAmount":15000,"payableAmount":15000,"refundAmount":null,"cancelAmount":null,"discountAmount":0,"orderStatus":null,"refundStatus":null,"receiverName":null,"receiverContact":null,"receiverAddress":null,"remark":null,"revokedReason":null,"auditById":null,"auditByName":null,"auditTime":null,"auditRemark":null,"flhsStatus":null,"pushJdeStatus":null,"createTime":null,"updateTime":null,"submitTime":null,"pushJdeTime":null,"successTime":null,"auditStatus":null,"deleteSign":null,"firstOrderFlag":null,"demandItems":[{"demandSkuId":null,"demandId":null,"distributionId":null,"companyCode":"00102","demandCode":null,"demandParentId":null,"sellerCompanyId":null,"sellerCompanyName":null,"sellerCompanyCode":null,"customerCode":1000086,"productLineCode":"","productLineName":"","propertyStr":null,"storageType":"999","suppDist":null,"productId":9036,"productName":"脉搏血氧测量仪","productCode":"10357517","productNature":"01","brandName":null,"optionStr":"Rad-5v","imageUrl":"https://pro-cmdc.oss-cn-beijing.aliyuncs.com/productFile/2021/04/16/0a2741f8-6870-483e-ba10-07b7d21ca05c.png","lineNumber":null,"price":15000,"rebateId":null,"originalPrice":null,"biddingDiscountTax":null,"salesDiscountTax":null,"quantity":1,"sumQuantity":null,"sendQuantity":null,"lackQuantity":null,"cancelQuantity":null,"cancelAmount":null,"refundQuantity":null,"refundAmount":null,"discountQuantity":null,"discountAmount":null,"subtotal":15000,"measuringUnit":"台","auxiliaryMeasuringUnit":"PF","procurementMeasuringUnit":"PF","pricingMeasuringUnit":"PF","materialCode":"9197","manufacturer":"迈心诺公司/Masimo Corporation","produceRegisterNum":null,"riskRank":"002","productClassify":"6821-2","createTime":null,"updateTime":1695697442000,"deleteSign":0,"calCancelFlag":null,"refundFlag":null,"discountRate":100,"realPay":15000,"promotionPrice":null,"promotionTotalPrice":0,"demandParentCode":null,"regionId":null,"regionName":null,"spitSign":null,"activityAmount":0,"couponAmount":0,"activityUnitAmount":0,"couponUnitAmount":null,"activityBasicId":null,"couponSgin":null,"couponSgin2":null,"returnQuantity":null,"returnAmount":null,"customerId":null,"prescription":null,"specifications":"Rad-5v","lineCodeDelete":null,"sdOutStorage":null,"licenseNo":null,"demandCodes":null,"areaName":null,"agreementPriceId":null,"offerPrice":null,"orderMark":null,"totalPrice":null,"productLimitBuyList":null,"giftSign":0,"giftProductCode":null,"activityCarDataVoList":null,"orderSource":null,"receiverName":null,"receiverContact":null,"receiverAddress":null,"rebateTripId":null,"allSign":null,"salesReturn":null,"nowAmount":null,"taxSign":0,"plusMinuKey":null,"rebateRule":null,"lockType":null,"lineNumberOrg":null,"changeSgin":null,"addSgin":null,"ptbfa1":null,"ptbfa2":null,"ptbfa3":null,"ptbfa4":null,"ptbfa5":null,"yapeiPriceId":null,"ypLinePromotion":null,"yapeiPrice":null,"companyId":2,"buyerCartId":"%s","userReceiveIdx":"","userReceiveIdx2":"","limitNum":null,"productLimitBuyId":null,"alreadyBuyNum":null,"limitBuySign":0,"proposeNum":null,"takeEffectRange":null,"takeEffectTime":null,"endTime1":null,"groupId":null,"fsGroupId":null,"proposalQuantity":null,"proposalSign":0,"manufacturerUserNo":null,"manufacturerUserDesc":null,"manufacturerProductNo":null,"manufacturerProductDesc":null,"manufacturerUserId":null,"manufacturerProductId":null,"busProductCode":null,"paidTime":null,"customerName":null,"paymentAmount":null,"specQuantity":null,"disQuantity":null,"fulfilledQuantity":null,"fulCancelQuantity":null,"couponId":null,"couponId2":null,"limitS":null,"starts":null,"ends":null,"userId":130,"productTax":"","taxRate":0.17,"demandSplitSign":"1","hospitalHopeDate":null,"uniqueKey":null,"productType":0,"activityRuleId":null,"allowanceBeginTime":null,"allowanceEndTime":null,"sign":0,"differenceActivityUserId":null,"groupNumber":null,"groupName":null,"skuGroup":null,"subList":null,"dataJson":null,"skuMergeSign":null,"freseniusPriceId":null,"quantityAndGroupAll":null,"booleaTime":null,"spitSgin":0,"groupSpitSign":0,"purchaseEntryId":null,"activityType":0,"giftSettlementMethod":null,"giftInitQuantity":null,"packageCode":null,"giftGroupQuantity":null,"mustInstallDate":false,"installedDate":null,"installedDateStr":null,"demandLines":null,"subLineNumber":null,"demandSubCode":null,"propertyName":null,"propertyVal":null,"propertyNote":null,"sendManualSign":0,"sort":0,"circleArea":null,"siteCompanyCode":null,"hospitalOrderType":null,"isCollectionAllocation":null,"orderStatus":null,"distributionType":null,"groupCode":null,"groupProductType":null,"pSign":0,"backSign":0,"description":"","stockNumber":null,"rebate":false,"purchaseZeroProductList":[],"prePromotionPrice":null,"prepromotionTotalPrice":0,"preDiscountRate":null,"userBalance":0}],"demandSubItems":null,"rebateDetail":null,"rebateAmountList":null,"productLineCode":"","productLineName":"","auditLoginName":null,"showPurchaseNo":false,"isRebate":null,"isShowReate":null,"taxRate":0.17,"rebateType":0,"paymentAmountWholeLine":15000,"discountAmountWholeLine":0,"payableAmountWholeLine":15000,"discountRate":null,"singleRebateAmount":null,"isRebateEdit":null,"payCertUrl":null,"rebateAmount":null,"demandCance":null,"soAdd":null,"soCance":null,"orderReturn":null,"needCustomerConfirm":false,"measuringUnit":null,"productId":null,"version":null,"mainVersion":null,"agencyConfigId":null,"confirmSign":null,"replySign":null,"agencySign":null,"editIng":null,"editIngStr":null,"jdeType":null,"isElectronicSeal":null,"contractAgreementNo":null,"alesDepartmentNo":null,"alesDepartmentName":null,"salesPersonNo":null,"salesPersonName":null,"customerNote":null,"otherNote":null,"contractAgreementCode":null,"projectName":null,"projectCode":null,"regionId":null,"regionName":null,"productLineBindSign":null,"shipVia":null,"orderSource":null,"userBalance":null,"liquidCode":null,"shipmentTypeStr":null,"specifications":"Rad-5v","pageStart":null,"pageSize":null,"changeSgin":null,"yapei":2,"companyId":2,"preemptConfig":null,"productSpec":null,"secondAuditSign":null,"secondAuditById":null,"secondAuditByName":null,"secondAuditTime":null,"secondAuditRemark":null,"secondAuditStatus":null,"rebateRule":"0","rebateControlSign":0,"rebateId":null,"preferenceType":null,"preferenceName":null,"disPrice":null,"lineNum":0,"auditStaySign":0,"fileList":null,"imageUrls":null,"total":null,"submitTimeStr":null,"updateTimeStr":null,"auditTimeStr":null,"acceptTime":null,"acceptTimeStr":null,"paidTime":null,"paidTimeStr":null,"erpHandingTime":null,"erpHandingTimeStr":null,"partShippingTime":null,"partShippingTimeStr":null,"allShippingTime":null,"allShippingTimeStr":null,"pushJdeTimeStr":null,"successTimeStr":null,"onlinePaySuccessTime":null,"onlinePaySuccessTimeStr":null,"bankTransactionSerial":null,"newIsTax":null,"countFormula":null,"countNumber":null,"noTaxRebateAmount":0,"isCollectionAllocation":0,"siteCompanyCode":null,"hospitalOrderType":null,"proofTime":null,"proofURL":null,"proofRemark":null,"proofSign":0,"customerCancelSign":null,"cancelRecords":null,"cancelCount":0,"updateNewTime":null,"updateNewTimeStr":null,"fsDedUseSign":null,"preDisSign":0,"shareType":null,"singleRebateSign":null,"cf":false,"notice":null,"isPre":null,"showDemandAuditLineLabel":false,"orderType":null,"newDiscountRate":null,"oldOrderType":null,"oldNewDiscountRate":null,"pendding":null,"pushJdeStatusDemandSub":null,"circleGiftSign":0,"delay":null,"limitS":null,"starts":null,"ends":null,"completedS":null,"confirmDays":null,"remindS":null,"skuGroupList":null,"groupProductType":0,"purchaseId":null,"purchaseCode":null,"sdCancelTime":null,"sdTipSign":0,"receiverNote":null,"receiverPhoneNote":null,"receiverAddressNote":null,"flag":null,"sourceStr":null,"addressNoNote":null,"detailIsSpit":false,"spitSgin":null,"distributionType":null,"rebateValidity":null,"orderChangeType":null,"logoIcon":null,"detail":null,"changeBigType":null,"promotionType":1,"activityTotalAmount":0,"couponTotalAmount":0,"userReceiveId":null,"editSgin":null,"snSgin":null,"jdeOutAmount":null,"totalAllPaAmount":null,"diffShowSgin":0,"lineCodeDelete":null,"startTime":null,"endTime":null,"changeSign":null,"distributionId":null,"limitBuySign":0,"companyType":null,"afterSale":null,"csId":null,"sdStatusNodeParamList":null,"ypPromotionTotal":null,"acrossMainCode":null,"forceApprovedSign":0,"circleGiftContinueSgin":0,"customerCharge":null,"onlinePaySign":0,"recodeDemandSkuList":null,"mergeDemandSkuList":null,"inventoryNode":null,"customCode":null,"terminalSource":null,"potentialClientsId":null,"settlementStatus":null,"firstOrderAuditStatus":null,"confirmReceiptSign":null,"confirmReceiptTime":null,"afterSaleDays":null,"deliveryCompletedTime":null,"taxSign":0,"orderSplitSign":0,"demandRebateSkuList":null,"confirmTime":null,"customerPurchaseNo":null,"mustInstallDate":false,"secondAddressList":null,"splitOrMerge":null,"spitOrderSign":null,"productAmountWholeLine":15000,"auditCompanyName":null,"auditCompanyNameCode":null,"edit":false,"ratio":null,"showMoreAttribute":false,"lastNoTaxDiscountAmount":0,"lastDiscountAmount":0,"settementQuantity":1,"userBalancePrice":0,"isEdit":true,"discountRateOne":100,"_rebateType":false}],"addressConfig":1,"openPreTaxAmount":1,"notice":"888品类齐全,轻松购物快多仓直发,极速配送好正品行货,精致服务省天天低价,畅选无忧品类齐全,轻松购物快多仓直发,极速配送好正品行货,精致服务省天天低价,畅选无忧品类齐全,轻松购物快多仓直发,极速配送好正品行货,精致服务省天天低价,畅选无忧品类齐全,轻松购物快多仓直发,极速配送好正品行货,精致服务省天天低价,畅选无忧品类齐全,轻松购物快多仓直发,极速配送好正品行货,精致服","promotionOrRebate":1,"promotionType":1,"showChangePromotionOrRebate":false,"couponTotalAmount":0,"activityTotalAmount":0,"totalQuantity":1,"totalPrice":15000,"discountAmount":0,"demandItems":[{"demandSkuId":null,"demandId":null,"distributionId":null,"companyCode":"00102","demandCode":null,"demandParentId":null,"sellerCompanyId":null,"sellerCompanyName":null,"sellerCompanyCode":null,"customerCode":1000086,"productLineCode":"","productLineName":"","propertyStr":null,"storageType":"999","suppDist":null,"productId":9036,"productName":"脉搏血氧测量仪","productCode":"10357517","productNature":"01","brandName":null,"optionStr":"Rad-5v","imageUrl":"https://pro-cmdc.oss-cn-beijing.aliyuncs.com/productFile/2021/04/16/0a2741f8-6870-483e-ba10-07b7d21ca05c.png","lineNumber":null,"price":15000,"rebateId":null,"originalPrice":null,"biddingDiscountTax":null,"salesDiscountTax":null,"quantity":1,"sumQuantity":null,"sendQuantity":null,"lackQuantity":null,"cancelQuantity":null,"cancelAmount":null,"refundQuantity":null,"refundAmount":null,"discountQuantity":null,"discountAmount":null,"subtotal":15000,"measuringUnit":"台","auxiliaryMeasuringUnit":"PF","procurementMeasuringUnit":"PF","pricingMeasuringUnit":"PF","materialCode":"9197","manufacturer":"迈心诺公司/Masimo Corporation","produceRegisterNum":null,"riskRank":"002","productClassify":"6821-2","createTime":null,"updateTime":1695697442000,"deleteSign":0,"calCancelFlag":null,"refundFlag":null,"discountRate":100,"realPay":15000,"promotionPrice":null,"promotionTotalPrice":0,"demandParentCode":null,"regionId":null,"regionName":null,"spitSign":null,"activityAmount":0,"couponAmount":0,"activityUnitAmount":0,"couponUnitAmount":null,"activityBasicId":null,"couponSgin":null,"couponSgin2":null,"returnQuantity":null,"returnAmount":null,"customerId":null,"prescription":null,"specifications":"Rad-5v","lineCodeDelete":null,"sdOutStorage":null,"licenseNo":null,"demandCodes":null,"areaName":null,"agreementPriceId":null,"offerPrice":null,"orderMark":null,"totalPrice":null,"productLimitBuyList":null,"giftSign":0,"giftProductCode":null,"activityCarDataVoList":null,"orderSource":null,"receiverName":null,"receiverContact":null,"receiverAddress":null,"rebateTripId":null,"allSign":null,"salesReturn":null,"nowAmount":null,"taxSign":0,"plusMinuKey":null,"rebateRule":null,"lockType":null,"lineNumberOrg":null,"changeSgin":null,"addSgin":null,"ptbfa1":null,"ptbfa2":null,"ptbfa3":null,"ptbfa4":null,"ptbfa5":null,"yapeiPriceId":null,"ypLinePromotion":null,"yapeiPrice":null,"companyId":2,"buyerCartId":"%s","userReceiveIdx":"","userReceiveIdx2":"","limitNum":null,"productLimitBuyId":null,"alreadyBuyNum":null,"limitBuySign":0,"proposeNum":null,"takeEffectRange":null,"takeEffectTime":null,"endTime1":null,"groupId":null,"fsGroupId":null,"proposalQuantity":null,"proposalSign":0,"manufacturerUserNo":null,"manufacturerUserDesc":null,"manufacturerProductNo":null,"manufacturerProductDesc":null,"manufacturerUserId":null,"manufacturerProductId":null,"busProductCode":null,"paidTime":null,"customerName":null,"paymentAmount":null,"specQuantity":null,"disQuantity":null,"fulfilledQuantity":null,"fulCancelQuantity":null,"couponId":null,"couponId2":null,"limitS":null,"starts":null,"ends":null,"userId":130,"productTax":"","taxRate":0.17,"demandSplitSign":"1","hospitalHopeDate":null,"uniqueKey":null,"productType":0,"activityRuleId":null,"allowanceBeginTime":null,"allowanceEndTime":null,"sign":0,"differenceActivityUserId":null,"groupNumber":null,"groupName":null,"skuGroup":null,"subList":null,"dataJson":null,"skuMergeSign":null,"freseniusPriceId":null,"quantityAndGroupAll":null,"booleaTime":null,"spitSgin":0,"groupSpitSign":0,"purchaseEntryId":null,"activityType":0,"giftSettlementMethod":null,"giftInitQuantity":null,"packageCode":null,"giftGroupQuantity":null,"mustInstallDate":false,"installedDate":null,"installedDateStr":null,"demandLines":null,"subLineNumber":null,"demandSubCode":null,"propertyName":null,"propertyVal":null,"propertyNote":null,"sendManualSign":0,"sort":0,"circleArea":null,"siteCompanyCode":null,"hospitalOrderType":null,"isCollectionAllocation":null,"orderStatus":null,"distributionType":null,"groupCode":null,"groupProductType":null,"pSign":0,"backSign":0,"description":"","stockNumber":null,"rebate":false,"purchaseZeroProductList":[],"prePromotionPrice":null,"prepromotionTotalPrice":0,"preDiscountRate":null,"userBalance":0}],"productPrice":"15000.0000","fileList":[],"showInfo":false,"pageStart":1,"pageSize":5,"receiveInfo":[{"addressId":16309,"addressNo":19199,"addressName":"武汉市洪山区高新大道777号","provinceCode":null,"userId":null,"companyId":null,"receiverName":"萧峰","address":"","isDefault":0,"type":null,"postcode":null,"mobile":"13878900987","updateDate":null,"updateTime":null,"flag":null,"deleteSign":null,"province":null,"city":null,"area":null,"dateTime":null,"provinceStr":null,"cityStr":null,"areaStr":null,"isJde":0}],"defaultBankInfo":{"accountId":32,"companyId":2,"companyName":"国药集团联合医疗器械有限公司","registeredAddress":"北京市顺义区金航中路3号院社科中心1号楼3单元2层301","bank":"中国工商银行北京支行","accountName":"国药集团联合医疗器械有限公司","accountNumber":"108902839271937437","disableSign":0,"deleteSign":0,"createTime":"2021-01-12 16:12:03","updateTime":"2021-01-12 16:12:33","createBy":2,"updateBy":2,"realName":"子公司1admin"},"addressList":[{"addressId":16309,"addressNo":19199,"addressName":null,"provinceCode":null,"userId":null,"companyId":2,"receiverName":"萧峰","address":"武汉市洪山区高新大道777号","isDefault":0,"type":3,"postcode":null,"mobile":"13878900987","updateDate":123258,"updateTime":174051,"flag":null,"deleteSign":null,"province":0,"city":0,"area":0,"dateTime":null,"provinceStr":"","cityStr":"","areaStr":"","isJde":0,"cityList":[],"areaList":[]}],"selecteAddresId":16309,"receiverNote":"萧峰","receiverPhoneNote":"13878900987","receiverAddressNote":"武汉市洪山区高新大道777号","addressNoNote":19199,"province":0,"city":0,"cityList":[],"area":0,"areaList":[],"paymentAmount":"15000.0000","taxRate":0.17,"demands":[{"demandId":null,"demandParentId":null,"demandParentCode":null,"demandCode":null,"customerId":null,"customerName":null,"customerCode":1000086,"loginName":null,"realName":null,"addressNumber":null,"mobile":null,"productName":null,"productCode":null,"sellerCompanyName":null,"sellerCompanyCode":null,"paymentType":null,"receiveBankName":null,"receiveBankAccount":null,"paymentAmount":"15000.0000","productAmount":15000,"payableAmount":15000,"refundAmount":null,"cancelAmount":null,"discountAmount":0,"orderStatus":null,"refundStatus":null,"receiverName":null,"receiverContact":null,"receiverAddress":null,"remark":null,"revokedReason":null,"auditById":null,"auditByName":null,"auditTime":null,"auditRemark":null,"flhsStatus":null,"pushJdeStatus":null,"createTime":null,"updateTime":null,"submitTime":null,"pushJdeTime":null,"successTime":null,"auditStatus":null,"deleteSign":null,"firstOrderFlag":null,"demandItems":[{"demandSkuId":null,"demandId":null,"distributionId":null,"companyCode":"00102","demandCode":null,"demandParentId":null,"sellerCompanyId":null,"sellerCompanyName":null,"sellerCompanyCode":null,"customerCode":1000086,"productLineCode":"","productLineName":"","propertyStr":null,"storageType":"999","suppDist":null,"productId":9036,"productName":"脉搏血氧测量仪","productCode":"10357517","productNature":"01","brandName":null,"optionStr":"Rad-5v","imageUrl":"https://pro-cmdc.oss-cn-beijing.aliyuncs.com/productFile/2021/04/16/0a2741f8-6870-483e-ba10-07b7d21ca05c.png","lineNumber":null,"price":15000,"rebateId":null,"originalPrice":null,"biddingDiscountTax":null,"salesDiscountTax":null,"quantity":1,"sumQuantity":null,"sendQuantity":null,"lackQuantity":null,"cancelQuantity":null,"cancelAmount":null,"refundQuantity":null,"refundAmount":null,"discountQuantity":null,"discountAmount":null,"subtotal":15000,"measuringUnit":"台","auxiliaryMeasuringUnit":"PF","procurementMeasuringUnit":"PF","pricingMeasuringUnit":"PF","materialCode":"9197","manufacturer":"迈心诺公司/Masimo Corporation","produceRegisterNum":null,"riskRank":"002","productClassify":"6821-2","createTime":null,"updateTime":1695697442000,"deleteSign":0,"calCancelFlag":null,"refundFlag":null,"discountRate":100,"realPay":15000,"promotionPrice":null,"promotionTotalPrice":0,"demandParentCode":null,"regionId":null,"regionName":null,"spitSign":null,"activityAmount":0,"couponAmount":0,"activityUnitAmount":0,"couponUnitAmount":null,"activityBasicId":null,"couponSgin":null,"couponSgin2":null,"returnQuantity":null,"returnAmount":null,"customerId":null,"prescription":null,"specifications":"Rad-5v","lineCodeDelete":null,"sdOutStorage":null,"licenseNo":null,"demandCodes":null,"areaName":null,"agreementPriceId":null,"offerPrice":null,"orderMark":null,"totalPrice":null,"productLimitBuyList":null,"giftSign":0,"giftProductCode":null,"activityCarDataVoList":null,"orderSource":null,"receiverName":null,"receiverContact":null,"receiverAddress":null,"rebateTripId":null,"allSign":null,"salesReturn":null,"nowAmount":null,"taxSign":0,"plusMinuKey":null,"rebateRule":null,"lockType":null,"lineNumberOrg":null,"changeSgin":null,"addSgin":null,"ptbfa1":null,"ptbfa2":null,"ptbfa3":null,"ptbfa4":null,"ptbfa5":null,"yapeiPriceId":null,"ypLinePromotion":null,"yapeiPrice":null,"companyId":2,"buyerCartId":"%s","userReceiveIdx":"","userReceiveIdx2":"","limitNum":null,"productLimitBuyId":null,"alreadyBuyNum":null,"limitBuySign":0,"proposeNum":null,"takeEffectRange":null,"takeEffectTime":null,"endTime1":null,"groupId":null,"fsGroupId":null,"proposalQuantity":null,"proposalSign":0,"manufacturerUserNo":null,"manufacturerUserDesc":null,"manufacturerProductNo":null,"manufacturerProductDesc":null,"manufacturerUserId":null,"manufacturerProductId":null,"busProductCode":null,"paidTime":null,"customerName":null,"paymentAmount":null,"specQuantity":null,"disQuantity":null,"fulfilledQuantity":null,"fulCancelQuantity":null,"couponId":null,"couponId2":null,"limitS":null,"starts":null,"ends":null,"userId":130,"productTax":"","taxRate":0.17,"demandSplitSign":"1","hospitalHopeDate":null,"uniqueKey":null,"productType":0,"activityRuleId":null,"allowanceBeginTime":null,"allowanceEndTime":null,"sign":0,"differenceActivityUserId":null,"groupNumber":null,"groupName":null,"skuGroup":null,"subList":null,"dataJson":null,"skuMergeSign":null,"freseniusPriceId":null,"quantityAndGroupAll":null,"booleaTime":null,"spitSgin":0,"groupSpitSign":0,"purchaseEntryId":null,"activityType":0,"giftSettlementMethod":null,"giftInitQuantity":null,"packageCode":null,"giftGroupQuantity":null,"mustInstallDate":false,"installedDate":null,"installedDateStr":null,"demandLines":null,"subLineNumber":null,"demandSubCode":null,"propertyName":null,"propertyVal":null,"propertyNote":null,"sendManualSign":0,"sort":0,"circleArea":null,"siteCompanyCode":null,"hospitalOrderType":null,"isCollectionAllocation":null,"orderStatus":null,"distributionType":null,"groupCode":null,"groupProductType":null,"pSign":0,"backSign":0,"description":"","stockNumber":null,"rebate":false,"purchaseZeroProductList":[],"prePromotionPrice":null,"prepromotionTotalPrice":0,"preDiscountRate":null,"userBalance":0,"orderType":null}],"demandSubItems":null,"rebateDetail":null,"rebateAmountList":null,"productLineCode":"","productLineName":"","auditLoginName":null,"showPurchaseNo":false,"isRebate":null,"isShowReate":null,"taxRate":0.17,"rebateType":0,"paymentAmountWholeLine":15000,"discountAmountWholeLine":0,"payableAmountWholeLine":15000,"discountRate":null,"singleRebateAmount":null,"isRebateEdit":null,"payCertUrl":null,"rebateAmount":null,"demandCance":null,"soAdd":null,"soCance":null,"orderReturn":null,"needCustomerConfirm":false,"measuringUnit":null,"productId":null,"version":null,"mainVersion":null,"agencyConfigId":null,"confirmSign":null,"replySign":null,"agencySign":null,"editIng":null,"editIngStr":null,"jdeType":null,"isElectronicSeal":null,"contractAgreementNo":null,"alesDepartmentNo":null,"alesDepartmentName":null,"salesPersonNo":null,"salesPersonName":null,"customerNote":null,"otherNote":null,"contractAgreementCode":null,"projectName":null,"projectCode":null,"regionId":null,"regionName":null,"productLineBindSign":null,"shipVia":null,"orderSource":null,"userBalance":null,"liquidCode":null,"shipmentTypeStr":null,"specifications":"Rad-5v","pageStart":null,"pageSize":null,"changeSgin":null,"yapei":2,"companyId":2,"preemptConfig":null,"productSpec":null,"secondAuditSign":null,"secondAuditById":null,"secondAuditByName":null,"secondAuditTime":null,"secondAuditRemark":null,"secondAuditStatus":null,"rebateRule":"0","rebateControlSign":0,"rebateId":null,"preferenceType":null,"preferenceName":null,"disPrice":null,"lineNum":0,"auditStaySign":0,"fileList":null,"imageUrls":null,"total":null,"submitTimeStr":null,"updateTimeStr":null,"auditTimeStr":null,"acceptTime":null,"acceptTimeStr":null,"paidTime":null,"paidTimeStr":null,"erpHandingTime":null,"erpHandingTimeStr":null,"partShippingTime":null,"partShippingTimeStr":null,"allShippingTime":null,"allShippingTimeStr":null,"pushJdeTimeStr":null,"successTimeStr":null,"onlinePaySuccessTime":null,"onlinePaySuccessTimeStr":null,"bankTransactionSerial":null,"newIsTax":null,"countFormula":null,"countNumber":null,"noTaxRebateAmount":0,"isCollectionAllocation":0,"siteCompanyCode":null,"hospitalOrderType":null,"proofTime":null,"proofURL":null,"proofRemark":null,"proofSign":0,"customerCancelSign":null,"cancelRecords":null,"cancelCount":0,"updateNewTime":null,"updateNewTimeStr":null,"fsDedUseSign":null,"preDisSign":0,"shareType":null,"singleRebateSign":null,"cf":false,"notice":null,"isPre":null,"showDemandAuditLineLabel":false,"orderType":null,"newDiscountRate":null,"oldOrderType":null,"oldNewDiscountRate":null,"pendding":null,"pushJdeStatusDemandSub":null,"circleGiftSign":0,"delay":null,"limitS":null,"starts":null,"ends":null,"completedS":null,"confirmDays":null,"remindS":null,"skuGroupList":null,"groupProductType":0,"purchaseId":null,"purchaseCode":null,"sdCancelTime":null,"sdTipSign":0,"receiverNote":null,"receiverPhoneNote":null,"receiverAddressNote":null,"flag":null,"sourceStr":null,"addressNoNote":null,"detailIsSpit":false,"spitSgin":null,"distributionType":null,"rebateValidity":null,"orderChangeType":null,"logoIcon":null,"detail":null,"changeBigType":null,"promotionType":1,"activityTotalAmount":0,"couponTotalAmount":0,"userReceiveId":null,"editSgin":null,"snSgin":null,"jdeOutAmount":null,"totalAllPaAmount":null,"diffShowSgin":0,"lineCodeDelete":null,"startTime":null,"endTime":null,"changeSign":null,"distributionId":null,"limitBuySign":0,"companyType":null,"afterSale":null,"csId":null,"sdStatusNodeParamList":null,"ypPromotionTotal":null,"acrossMainCode":null,"forceApprovedSign":0,"circleGiftContinueSgin":0,"customerCharge":null,"onlinePaySign":0,"recodeDemandSkuList":null,"mergeDemandSkuList":null,"inventoryNode":null,"customCode":null,"terminalSource":null,"potentialClientsId":null,"settlementStatus":null,"firstOrderAuditStatus":null,"confirmReceiptSign":null,"confirmReceiptTime":null,"afterSaleDays":null,"deliveryCompletedTime":null,"taxSign":0,"orderSplitSign":0,"demandRebateSkuList":null,"confirmTime":null,"customerPurchaseNo":null,"mustInstallDate":false,"secondAddressList":null,"splitOrMerge":null,"spitOrderSign":null,"productAmountWholeLine":15000,"auditCompanyName":null,"auditCompanyNameCode":null,"edit":false,"ratio":null,"showMoreAttribute":false,"lastNoTaxDiscountAmount":0,"lastDiscountAmount":0,"settementQuantity":1,"userBalancePrice":0,"isEdit":true,"discountRateOne":100,"_rebateType":false,"pSign":0}],"orderStatus":102,"userReceiveId":"","userReceiveId2":"","productAmount":15000,"paymentType":0,"accountId":32,"receiveBankName":"国药集团联合医疗器械有限公司","receiveBankAccount":"108902839271937437","addressNumber":19199,"receiverName":"萧峰","receiverContact":"13878900987","receiverAddress":"武汉市洪山区高新大道777号","buyerCartIds":["%s","%s"],"sellerCompanyCode":"00102","companyId":2},"国药集团北京医疗器械有限公司":{"datas":[{"demandId":null,"demandParentId":null,"demandParentCode":null,"demandCode":null,"customerId":null,"customerName":null,"customerCode":1000086,"loginName":null,"realName":null,"addressNumber":null,"mobile":null,"productName":null,"productCode":null,"sellerCompanyName":null,"sellerCompanyCode":null,"paymentType":null,"receiveBankName":null,"receiveBankAccount":null,"paymentAmount":"30.0000","productAmount":30,"payableAmount":30,"refundAmount":null,"cancelAmount":null,"discountAmount":0,"orderStatus":null,"refundStatus":null,"receiverName":null,"receiverContact":null,"receiverAddress":null,"remark":null,"revokedReason":null,"auditById":null,"auditByName":null,"auditTime":null,"auditRemark":null,"flhsStatus":null,"pushJdeStatus":null,"createTime":null,"updateTime":null,"submitTime":null,"pushJdeTime":null,"successTime":null,"auditStatus":null,"deleteSign":null,"firstOrderFlag":null,"demandItems":[{"demandSkuId":null,"demandId":null,"distributionId":null,"companyCode":"00103","demandCode":null,"demandParentId":null,"sellerCompanyId":null,"sellerCompanyName":null,"sellerCompanyCode":null,"customerCode":1000086,"productLineCode":"","productLineName":"","propertyStr":null,"storageType":"999","suppDist":null,"productId":1190,"productName":"百能速干手消毒凝胶","productCode":"13768100","productNature":"03","brandName":null,"optionStr":"500ml/瓶","imageUrl":"https://pro-cmdc.oss-cn-beijing.aliyuncs.com/productFile/2020/12/29/72e7cb48-580b-455d-b56d-bddb14b8fc6c.JPG","lineNumber":null,"price":30,"rebateId":null,"originalPrice":null,"biddingDiscountTax":null,"salesDiscountTax":null,"quantity":1,"sumQuantity":null,"sendQuantity":null,"lackQuantity":null,"cancelQuantity":null,"cancelAmount":null,"refundQuantity":null,"refundAmount":null,"discountQuantity":null,"discountAmount":null,"subtotal":30,"measuringUnit":"瓶","auxiliaryMeasuringUnit":"BT","procurementMeasuringUnit":"BT","pricingMeasuringUnit":"BT","materialCode":"","manufacturer":"杭州朗索医用消毒剂有限公司","produceRegisterNum":null,"riskRank":"","productClassify":"9998","createTime":null,"updateTime":1695697596000,"deleteSign":0,"calCancelFlag":null,"refundFlag":null,"discountRate":100,"realPay":30,"promotionPrice":null,"promotionTotalPrice":0,"demandParentCode":null,"regionId":null,"regionName":null,"spitSign":null,"activityAmount":0,"couponAmount":0,"activityUnitAmount":0,"couponUnitAmount":null,"activityBasicId":null,"couponSgin":null,"couponSgin2":null,"returnQuantity":null,"returnAmount":null,"customerId":null,"prescription":null,"specifications":"500ml/瓶","lineCodeDelete":null,"sdOutStorage":null,"licenseNo":null,"demandCodes":null,"areaName":null,"agreementPriceId":null,"offerPrice":null,"orderMark":null,"totalPrice":null,"productLimitBuyList":null,"giftSign":0,"giftProductCode":null,"activityCarDataVoList":null,"orderSource":null,"receiverName":null,"receiverContact":null,"receiverAddress":null,"rebateTripId":null,"allSign":null,"salesReturn":null,"nowAmount":null,"taxSign":0,"plusMinuKey":null,"rebateRule":null,"lockType":null,"lineNumberOrg":null,"changeSgin":null,"addSgin":null,"ptbfa1":null,"ptbfa2":null,"ptbfa3":null,"ptbfa4":null,"ptbfa5":null,"yapeiPriceId":null,"ypLinePromotion":null,"yapeiPrice":null,"companyId":3,"buyerCartId":"%s","userReceiveIdx":"","userReceiveIdx2":"","limitNum":null,"productLimitBuyId":null,"alreadyBuyNum":null,"limitBuySign":0,"proposeNum":null,"takeEffectRange":null,"takeEffectTime":null,"endTime1":null,"groupId":null,"fsGroupId":null,"proposalQuantity":null,"proposalSign":0,"manufacturerUserNo":null,"manufacturerUserDesc":null,"manufacturerProductNo":null,"manufacturerProductDesc":null,"manufacturerUserId":null,"manufacturerProductId":null,"busProductCode":null,"paidTime":null,"customerName":null,"paymentAmount":null,"specQuantity":null,"disQuantity":null,"fulfilledQuantity":null,"fulCancelQuantity":null,"couponId":null,"couponId2":null,"limitS":null,"starts":null,"ends":null,"userId":130,"productTax":"","taxRate":0,"demandSplitSign":"1","hospitalHopeDate":null,"uniqueKey":null,"productType":0,"activityRuleId":null,"allowanceBeginTime":null,"allowanceEndTime":null,"sign":0,"differenceActivityUserId":null,"groupNumber":null,"groupName":null,"skuGroup":null,"subList":null,"dataJson":null,"skuMergeSign":null,"freseniusPriceId":null,"quantityAndGroupAll":null,"booleaTime":null,"spitSgin":0,"groupSpitSign":0,"purchaseEntryId":null,"activityType":0,"giftSettlementMethod":null,"giftInitQuantity":null,"packageCode":null,"giftGroupQuantity":null,"mustInstallDate":false,"installedDate":null,"installedDateStr":null,"demandLines":null,"subLineNumber":null,"demandSubCode":null,"propertyName":null,"propertyVal":null,"propertyNote":null,"sendManualSign":0,"sort":0,"circleArea":null,"siteCompanyCode":null,"hospitalOrderType":null,"isCollectionAllocation":null,"orderStatus":null,"distributionType":null,"groupCode":null,"groupProductType":null,"pSign":0,"backSign":0,"description":"","stockNumber":null,"rebate":false,"purchaseZeroProductList":[],"prePromotionPrice":null,"prepromotionTotalPrice":0,"preDiscountRate":null,"userBalance":0}],"demandSubItems":null,"rebateDetail":null,"rebateAmountList":null,"productLineCode":"","productLineName":"","auditLoginName":null,"showPurchaseNo":false,"isRebate":null,"isShowReate":null,"taxRate":0,"rebateType":0,"paymentAmountWholeLine":30,"discountAmountWholeLine":0,"payableAmountWholeLine":30,"discountRate":null,"singleRebateAmount":null,"isRebateEdit":null,"payCertUrl":null,"rebateAmount":null,"demandCance":null,"soAdd":null,"soCance":null,"orderReturn":null,"needCustomerConfirm":false,"measuringUnit":null,"productId":null,"version":null,"mainVersion":null,"agencyConfigId":null,"confirmSign":null,"replySign":null,"agencySign":null,"editIng":null,"editIngStr":null,"jdeType":null,"isElectronicSeal":null,"contractAgreementNo":null,"alesDepartmentNo":null,"alesDepartmentName":null,"salesPersonNo":null,"salesPersonName":null,"customerNote":null,"otherNote":null,"contractAgreementCode":null,"projectName":null,"projectCode":null,"regionId":null,"regionName":null,"productLineBindSign":null,"shipVia":null,"orderSource":null,"userBalance":null,"liquidCode":null,"shipmentTypeStr":null,"specifications":"500ml/瓶","pageStart":null,"pageSize":null,"changeSgin":null,"yapei":2,"companyId":3,"preemptConfig":null,"productSpec":null,"secondAuditSign":null,"secondAuditById":null,"secondAuditByName":null,"secondAuditTime":null,"secondAuditRemark":null,"secondAuditStatus":null,"rebateRule":"0","rebateControlSign":0,"rebateId":null,"preferenceType":null,"preferenceName":null,"disPrice":null,"lineNum":0,"auditStaySign":0,"fileList":null,"imageUrls":null,"total":null,"submitTimeStr":null,"updateTimeStr":null,"auditTimeStr":null,"acceptTime":null,"acceptTimeStr":null,"paidTime":null,"paidTimeStr":null,"erpHandingTime":null,"erpHandingTimeStr":null,"partShippingTime":null,"partShippingTimeStr":null,"allShippingTime":null,"allShippingTimeStr":null,"pushJdeTimeStr":null,"successTimeStr":null,"onlinePaySuccessTime":null,"onlinePaySuccessTimeStr":null,"bankTransactionSerial":null,"newIsTax":null,"countFormula":null,"countNumber":null,"noTaxRebateAmount":0,"isCollectionAllocation":0,"siteCompanyCode":null,"hospitalOrderType":null,"proofTime":null,"proofURL":null,"proofRemark":null,"proofSign":0,"customerCancelSign":null,"cancelRecords":null,"cancelCount":0,"updateNewTime":null,"updateNewTimeStr":null,"fsDedUseSign":null,"preDisSign":0,"shareType":null,"singleRebateSign":null,"cf":false,"notice":null,"isPre":null,"showDemandAuditLineLabel":false,"orderType":null,"newDiscountRate":null,"oldOrderType":null,"oldNewDiscountRate":null,"pendding":null,"pushJdeStatusDemandSub":null,"circleGiftSign":0,"delay":null,"limitS":null,"starts":null,"ends":null,"completedS":null,"confirmDays":null,"remindS":null,"skuGroupList":null,"groupProductType":0,"purchaseId":null,"purchaseCode":null,"sdCancelTime":null,"sdTipSign":0,"receiverNote":null,"receiverPhoneNote":null,"receiverAddressNote":null,"flag":null,"sourceStr":null,"addressNoNote":null,"detailIsSpit":false,"spitSgin":null,"distributionType":null,"rebateValidity":null,"orderChangeType":null,"logoIcon":null,"detail":null,"changeBigType":null,"promotionType":1,"activityTotalAmount":0,"couponTotalAmount":0,"userReceiveId":null,"editSgin":null,"snSgin":null,"jdeOutAmount":null,"totalAllPaAmount":null,"diffShowSgin":0,"lineCodeDelete":null,"startTime":null,"endTime":null,"changeSign":null,"distributionId":null,"limitBuySign":0,"companyType":null,"afterSale":null,"csId":null,"sdStatusNodeParamList":null,"ypPromotionTotal":null,"acrossMainCode":null,"forceApprovedSign":0,"circleGiftContinueSgin":0,"customerCharge":null,"onlinePaySign":0,"recodeDemandSkuList":null,"mergeDemandSkuList":null,"inventoryNode":null,"customCode":null,"terminalSource":null,"potentialClientsId":null,"settlementStatus":null,"firstOrderAuditStatus":null,"confirmReceiptSign":null,"confirmReceiptTime":null,"afterSaleDays":null,"deliveryCompletedTime":null,"taxSign":0,"orderSplitSign":0,"demandRebateSkuList":null,"confirmTime":null,"customerPurchaseNo":null,"mustInstallDate":false,"secondAddressList":null,"splitOrMerge":null,"spitOrderSign":null,"productAmountWholeLine":30,"auditCompanyName":null,"auditCompanyNameCode":null,"edit":false,"ratio":null,"showMoreAttribute":false,"lastNoTaxDiscountAmount":0,"lastDiscountAmount":0,"_rebateType":false,"settementQuantity":1,"userBalancePrice":0,"isEdit":true,"discountRateOne":100}],"addressConfig":2,"openPreTaxAmount":0,"promotionOrRebate":1,"promotionType":1,"showChangePromotionOrRebate":false,"couponTotalAmount":0,"activityTotalAmount":0,"totalQuantity":1,"totalPrice":30,"discountAmount":0,"demandItems":[{"demandSkuId":null,"demandId":null,"distributionId":null,"companyCode":"00103","demandCode":null,"demandParentId":null,"sellerCompanyId":null,"sellerCompanyName":null,"sellerCompanyCode":null,"customerCode":1000086,"productLineCode":"","productLineName":"","propertyStr":null,"storageType":"999","suppDist":null,"productId":1190,"productName":"百能速干手消毒凝胶","productCode":"13768100","productNature":"03","brandName":null,"optionStr":"500ml/瓶","imageUrl":"https://pro-cmdc.oss-cn-beijing.aliyuncs.com/productFile/2020/12/29/72e7cb48-580b-455d-b56d-bddb14b8fc6c.JPG","lineNumber":null,"price":30,"rebateId":null,"originalPrice":null,"biddingDiscountTax":null,"salesDiscountTax":null,"quantity":1,"sumQuantity":null,"sendQuantity":null,"lackQuantity":null,"cancelQuantity":null,"cancelAmount":null,"refundQuantity":null,"refundAmount":null,"discountQuantity":null,"discountAmount":null,"subtotal":30,"measuringUnit":"瓶","auxiliaryMeasuringUnit":"BT","procurementMeasuringUnit":"BT","pricingMeasuringUnit":"BT","materialCode":"","manufacturer":"杭州朗索医用消毒剂有限公司","produceRegisterNum":null,"riskRank":"","productClassify":"9998","createTime":null,"updateTime":1695697596000,"deleteSign":0,"calCancelFlag":null,"refundFlag":null,"discountRate":100,"realPay":30,"promotionPrice":null,"promotionTotalPrice":0,"demandParentCode":null,"regionId":null,"regionName":null,"spitSign":null,"activityAmount":0,"couponAmount":0,"activityUnitAmount":0,"couponUnitAmount":null,"activityBasicId":null,"couponSgin":null,"couponSgin2":null,"returnQuantity":null,"returnAmount":null,"customerId":null,"prescription":null,"specifications":"500ml/瓶","lineCodeDelete":null,"sdOutStorage":null,"licenseNo":null,"demandCodes":null,"areaName":null,"agreementPriceId":null,"offerPrice":null,"orderMark":null,"totalPrice":null,"productLimitBuyList":null,"giftSign":0,"giftProductCode":null,"activityCarDataVoList":null,"orderSource":null,"receiverName":null,"receiverContact":null,"receiverAddress":null,"rebateTripId":null,"allSign":null,"salesReturn":null,"nowAmount":null,"taxSign":0,"plusMinuKey":null,"rebateRule":null,"lockType":null,"lineNumberOrg":null,"changeSgin":null,"addSgin":null,"ptbfa1":null,"ptbfa2":null,"ptbfa3":null,"ptbfa4":null,"ptbfa5":null,"yapeiPriceId":null,"ypLinePromotion":null,"yapeiPrice":null,"companyId":3,"buyerCartId":"%s","userReceiveIdx":"","userReceiveIdx2":"","limitNum":null,"productLimitBuyId":null,"alreadyBuyNum":null,"limitBuySign":0,"proposeNum":null,"takeEffectRange":null,"takeEffectTime":null,"endTime1":null,"groupId":null,"fsGroupId":null,"proposalQuantity":null,"proposalSign":0,"manufacturerUserNo":null,"manufacturerUserDesc":null,"manufacturerProductNo":null,"manufacturerProductDesc":null,"manufacturerUserId":null,"manufacturerProductId":null,"busProductCode":null,"paidTime":null,"customerName":null,"paymentAmount":null,"specQuantity":null,"disQuantity":null,"fulfilledQuantity":null,"fulCancelQuantity":null,"couponId":null,"couponId2":null,"limitS":null,"starts":null,"ends":null,"userId":130,"productTax":"","taxRate":0,"demandSplitSign":"1","hospitalHopeDate":null,"uniqueKey":null,"productType":0,"activityRuleId":null,"allowanceBeginTime":null,"allowanceEndTime":null,"sign":0,"differenceActivityUserId":null,"groupNumber":null,"groupName":null,"skuGroup":null,"subList":null,"dataJson":null,"skuMergeSign":null,"freseniusPriceId":null,"quantityAndGroupAll":null,"booleaTime":null,"spitSgin":0,"groupSpitSign":0,"purchaseEntryId":null,"activityType":0,"giftSettlementMethod":null,"giftInitQuantity":null,"packageCode":null,"giftGroupQuantity":null,"mustInstallDate":false,"installedDate":null,"installedDateStr":null,"demandLines":null,"subLineNumber":null,"demandSubCode":null,"propertyName":null,"propertyVal":null,"propertyNote":null,"sendManualSign":0,"sort":0,"circleArea":null,"siteCompanyCode":null,"hospitalOrderType":null,"isCollectionAllocation":null,"orderStatus":null,"distributionType":null,"groupCode":null,"groupProductType":null,"pSign":0,"backSign":0,"description":"","stockNumber":null,"rebate":false,"purchaseZeroProductList":[],"prePromotionPrice":null,"prepromotionTotalPrice":0,"preDiscountRate":null,"userBalance":0}],"productPrice":"30.0000","fileList":[],"showInfo":false,"pageStart":1,"pageSize":5,"receiveInfo":[],"defaultBankInfo":{"accountId":52,"companyId":3,"companyName":"国药集团联合医疗器械有限公司","registeredAddress":"北京市东城区","bank":"建设银行19","accountName":"建设银行北京支行19","accountNumber":"62231478523685414","disableSign":0,"deleteSign":0,"createTime":"2021-01-25 11:17:26","updateTime":"2021-01-25 11:17:26","createBy":2,"realName":"子公司1admin"},"addressList":[{"addressId":5243,"addressNo":0,"addressName":null,"provinceCode":null,"userId":null,"companyId":3,"receiverName":"叶二娘","address":"嵩山少林室","isDefault":1,"type":5,"postcode":null,"mobile":"13223233434","updateDate":null,"updateTime":0,"flag":null,"deleteSign":null,"province":1681,"city":1797,"area":null,"dateTime":null,"provinceStr":"湖北省","cityStr":"仙桃市","areaStr":null,"isJde":0,"cityList":[{"areaId":1682,"areaCode":"420100","areaName":"武汉市","level":null,"cityCode":null,"center":null,"parentId":null},{"areaId":1696,"areaCode":"420200","areaName":"黄石市","level":null,"cityCode":null,"center":null,"parentId":null},{"areaId":1703,"areaCode":"420300","areaName":"十堰市","level":null,"cityCode":null,"center":null,"parentId":null},{"areaId":1712,"areaCode":"420500","areaName":"宜昌市","level":null,"cityCode":null,"center":null,"parentId":null},{"areaId":1726,"areaCode":"420600","areaName":"襄阳市","level":null,"cityCode":null,"center":null,"parentId":null},{"areaId":1736,"areaCode":"420700","areaName":"鄂州市","level":null,"cityCode":null,"center":null,"parentId":null},{"areaId":1740,"areaCode":"420800","areaName":"荆门市","level":null,"cityCode":null,"center":null,"parentId":null},{"areaId":1746,"areaCode":"420900","areaName":"孝感市","level":null,"cityCode":null,"center":null,"parentId":null},{"areaId":1754,"areaCode":"421000","areaName":"荆州市","level":null,"cityCode":null,"center":null,"parentId":null},{"areaId":1763,"areaCode":"421100","areaName":"黄冈市","level":null,"cityCode":null,"center":null,"parentId":null},{"areaId":1774,"areaCode":"421200","areaName":"咸宁市","level":null,"cityCode":null,"center":null,"parentId":null},{"areaId":1781,"areaCode":"421300","areaName":"随州市","level":null,"cityCode":null,"center":null,"parentId":null},{"areaId":1785,"areaCode":"422800","areaName":"恩施土家族苗族自治州","level":null,"cityCode":null,"center":null,"parentId":null},{"areaId":1794,"areaCode":"429005","areaName":"潜江市","level":null,"cityCode":null,"center":null,"parentId":null},{"areaId":1795,"areaCode":"429021","areaName":"神农架林区","level":null,"cityCode":null,"center":null,"parentId":null},{"areaId":1796,"areaCode":"429006","areaName":"天门市","level":null,"cityCode":null,"center":null,"parentId":null},{"areaId":1797,"areaCode":"429004","areaName":"仙桃市","level":null,"cityCode":null,"center":null,"parentId":null}],"areaList":[]}],"selecteAddresId":5243,"receiverNote":"叶二娘","receiverPhoneNote":"13223233434","receiverAddressNote":"湖北省仙桃市嵩山少林室","addressNoNote":0,"province":1681,"city":1797,"cityList":[{"areaId":1682,"areaCode":"420100","areaName":"武汉市","level":null,"cityCode":null,"center":null,"parentId":null},{"areaId":1696,"areaCode":"420200","areaName":"黄石市","level":null,"cityCode":null,"center":null,"parentId":null},{"areaId":1703,"areaCode":"420300","areaName":"十堰市","level":null,"cityCode":null,"center":null,"parentId":null},{"areaId":1712,"areaCode":"420500","areaName":"宜昌市","level":null,"cityCode":null,"center":null,"parentId":null},{"areaId":1726,"areaCode":"420600","areaName":"襄阳市","level":null,"cityCode":null,"center":null,"parentId":null},{"areaId":1736,"areaCode":"420700","areaName":"鄂州市","level":null,"cityCode":null,"center":null,"parentId":null},{"areaId":1740,"areaCode":"420800","areaName":"荆门市","level":null,"cityCode":null,"center":null,"parentId":null},{"areaId":1746,"areaCode":"420900","areaName":"孝感市","level":null,"cityCode":null,"center":null,"parentId":null},{"areaId":1754,"areaCode":"421000","areaName":"荆州市","level":null,"cityCode":null,"center":null,"parentId":null},{"areaId":1763,"areaCode":"421100","areaName":"黄冈市","level":null,"cityCode":null,"center":null,"parentId":null},{"areaId":1774,"areaCode":"421200","areaName":"咸宁市","level":null,"cityCode":null,"center":null,"parentId":null},{"areaId":1781,"areaCode":"421300","areaName":"随州市","level":null,"cityCode":null,"center":null,"parentId":null},{"areaId":1785,"areaCode":"422800","areaName":"恩施土家族苗族自治州","level":null,"cityCode":null,"center":null,"parentId":null},{"areaId":1794,"areaCode":"429005","areaName":"潜江市","level":null,"cityCode":null,"center":null,"parentId":null},{"areaId":1795,"areaCode":"429021","areaName":"神农架林区","level":null,"cityCode":null,"center":null,"parentId":null},{"areaId":1796,"areaCode":"429006","areaName":"天门市","level":null,"cityCode":null,"center":null,"parentId":null},{"areaId":1797,"areaCode":"429004","areaName":"仙桃市","level":null,"cityCode":null,"center":null,"parentId":null}],"area":null,"areaList":[],"paymentAmount":"30.0000","taxRate":0.17,"demands":[{"demandId":null,"demandParentId":null,"demandParentCode":null,"demandCode":null,"customerId":null,"customerName":null,"customerCode":1000086,"loginName":null,"realName":null,"addressNumber":null,"mobile":null,"productName":null,"productCode":null,"sellerCompanyName":null,"sellerCompanyCode":null,"paymentType":null,"receiveBankName":null,"receiveBankAccount":null,"paymentAmount":"30.0000","productAmount":30,"payableAmount":30,"refundAmount":null,"cancelAmount":null,"discountAmount":0,"orderStatus":null,"refundStatus":null,"receiverName":null,"receiverContact":null,"receiverAddress":null,"remark":null,"revokedReason":null,"auditById":null,"auditByName":null,"auditTime":null,"auditRemark":null,"flhsStatus":null,"pushJdeStatus":null,"createTime":null,"updateTime":null,"submitTime":null,"pushJdeTime":null,"successTime":null,"auditStatus":null,"deleteSign":null,"firstOrderFlag":null,"demandItems":[{"demandSkuId":null,"demandId":null,"distributionId":null,"companyCode":"00103","demandCode":null,"demandParentId":null,"sellerCompanyId":null,"sellerCompanyName":null,"sellerCompanyCode":null,"customerCode":1000086,"productLineCode":"","productLineName":"","propertyStr":null,"storageType":"999","suppDist":null,"productId":1190,"productName":"百能速干手消毒凝胶","productCode":"13768100","productNature":"03","brandName":null,"optionStr":"500ml/瓶","imageUrl":"https://pro-cmdc.oss-cn-beijing.aliyuncs.com/productFile/2020/12/29/72e7cb48-580b-455d-b56d-bddb14b8fc6c.JPG","lineNumber":null,"price":30,"rebateId":null,"originalPrice":null,"biddingDiscountTax":null,"salesDiscountTax":null,"quantity":1,"sumQuantity":null,"sendQuantity":null,"lackQuantity":null,"cancelQuantity":null,"cancelAmount":null,"refundQuantity":null,"refundAmount":null,"discountQuantity":null,"discountAmount":null,"subtotal":30,"measuringUnit":"瓶","auxiliaryMeasuringUnit":"BT","procurementMeasuringUnit":"BT","pricingMeasuringUnit":"BT","materialCode":"","manufacturer":"杭州朗索医用消毒剂有限公司","produceRegisterNum":null,"riskRank":"","productClassify":"9998","createTime":null,"updateTime":1695697596000,"deleteSign":0,"calCancelFlag":null,"refundFlag":null,"discountRate":100,"realPay":30,"promotionPrice":null,"promotionTotalPrice":0,"demandParentCode":null,"regionId":null,"regionName":null,"spitSign":null,"activityAmount":0,"couponAmount":0,"activityUnitAmount":0,"couponUnitAmount":null,"activityBasicId":null,"couponSgin":null,"couponSgin2":null,"returnQuantity":null,"returnAmount":null,"customerId":null,"prescription":null,"specifications":"500ml/瓶","lineCodeDelete":null,"sdOutStorage":null,"licenseNo":null,"demandCodes":null,"areaName":null,"agreementPriceId":null,"offerPrice":null,"orderMark":null,"totalPrice":null,"productLimitBuyList":null,"giftSign":0,"giftProductCode":null,"activityCarDataVoList":null,"orderSource":null,"receiverName":null,"receiverContact":null,"receiverAddress":null,"rebateTripId":null,"allSign":null,"salesReturn":null,"nowAmount":null,"taxSign":0,"plusMinuKey":null,"rebateRule":null,"lockType":null,"lineNumberOrg":null,"changeSgin":null,"addSgin":null,"ptbfa1":null,"ptbfa2":null,"ptbfa3":null,"ptbfa4":null,"ptbfa5":null,"yapeiPriceId":null,"ypLinePromotion":null,"yapeiPrice":null,"companyId":3,"buyerCartId":"%s","userReceiveIdx":"","userReceiveIdx2":"","limitNum":null,"productLimitBuyId":null,"alreadyBuyNum":null,"limitBuySign":0,"proposeNum":null,"takeEffectRange":null,"takeEffectTime":null,"endTime1":null,"groupId":null,"fsGroupId":null,"proposalQuantity":null,"proposalSign":0,"manufacturerUserNo":null,"manufacturerUserDesc":null,"manufacturerProductNo":null,"manufacturerProductDesc":null,"manufacturerUserId":null,"manufacturerProductId":null,"busProductCode":null,"paidTime":null,"customerName":null,"paymentAmount":null,"specQuantity":null,"disQuantity":null,"fulfilledQuantity":null,"fulCancelQuantity":null,"couponId":null,"couponId2":null,"limitS":null,"starts":null,"ends":null,"userId":130,"productTax":"","taxRate":0,"demandSplitSign":"1","hospitalHopeDate":null,"uniqueKey":null,"productType":0,"activityRuleId":null,"allowanceBeginTime":null,"allowanceEndTime":null,"sign":0,"differenceActivityUserId":null,"groupNumber":null,"groupName":null,"skuGroup":null,"subList":null,"dataJson":null,"skuMergeSign":null,"freseniusPriceId":null,"quantityAndGroupAll":null,"booleaTime":null,"spitSgin":0,"groupSpitSign":0,"purchaseEntryId":null,"activityType":0,"giftSettlementMethod":null,"giftInitQuantity":null,"packageCode":null,"giftGroupQuantity":null,"mustInstallDate":false,"installedDate":null,"installedDateStr":null,"demandLines":null,"subLineNumber":null,"demandSubCode":null,"propertyName":null,"propertyVal":null,"propertyNote":null,"sendManualSign":0,"sort":0,"circleArea":null,"siteCompanyCode":null,"hospitalOrderType":null,"isCollectionAllocation":null,"orderStatus":null,"distributionType":null,"groupCode":null,"groupProductType":null,"pSign":0,"backSign":0,"description":"","stockNumber":null,"rebate":false,"purchaseZeroProductList":[],"prePromotionPrice":null,"prepromotionTotalPrice":0,"preDiscountRate":null,"userBalance":0,"orderType":null}],"demandSubItems":null,"rebateDetail":null,"rebateAmountList":null,"productLineCode":"","productLineName":"","auditLoginName":null,"showPurchaseNo":false,"isRebate":null,"isShowReate":null,"taxRate":0,"rebateType":0,"paymentAmountWholeLine":30,"discountAmountWholeLine":0,"payableAmountWholeLine":30,"discountRate":null,"singleRebateAmount":null,"isRebateEdit":null,"payCertUrl":null,"rebateAmount":null,"demandCance":null,"soAdd":null,"soCance":null,"orderReturn":null,"needCustomerConfirm":false,"measuringUnit":null,"productId":null,"version":null,"mainVersion":null,"agencyConfigId":null,"confirmSign":null,"replySign":null,"agencySign":null,"editIng":null,"editIngStr":null,"jdeType":null,"isElectronicSeal":null,"contractAgreementNo":null,"alesDepartmentNo":null,"alesDepartmentName":null,"salesPersonNo":null,"salesPersonName":null,"customerNote":null,"otherNote":null,"contractAgreementCode":null,"projectName":null,"projectCode":null,"regionId":null,"regionName":null,"productLineBindSign":null,"shipVia":null,"orderSource":null,"userBalance":null,"liquidCode":null,"shipmentTypeStr":null,"specifications":"500ml/瓶","pageStart":null,"pageSize":null,"changeSgin":null,"yapei":2,"companyId":3,"preemptConfig":null,"productSpec":null,"secondAuditSign":null,"secondAuditById":null,"secondAuditByName":null,"secondAuditTime":null,"secondAuditRemark":null,"secondAuditStatus":null,"rebateRule":"0","rebateControlSign":0,"rebateId":null,"preferenceType":null,"preferenceName":null,"disPrice":null,"lineNum":0,"auditStaySign":0,"fileList":null,"imageUrls":null,"total":null,"submitTimeStr":null,"updateTimeStr":null,"auditTimeStr":null,"acceptTime":null,"acceptTimeStr":null,"paidTime":null,"paidTimeStr":null,"erpHandingTime":null,"erpHandingTimeStr":null,"partShippingTime":null,"partShippingTimeStr":null,"allShippingTime":null,"allShippingTimeStr":null,"pushJdeTimeStr":null,"successTimeStr":null,"onlinePaySuccessTime":null,"onlinePaySuccessTimeStr":null,"bankTransactionSerial":null,"newIsTax":null,"countFormula":null,"countNumber":null,"noTaxRebateAmount":0,"isCollectionAllocation":0,"siteCompanyCode":null,"hospitalOrderType":null,"proofTime":null,"proofURL":null,"proofRemark":null,"proofSign":0,"customerCancelSign":null,"cancelRecords":null,"cancelCount":0,"updateNewTime":null,"updateNewTimeStr":null,"fsDedUseSign":null,"preDisSign":0,"shareType":null,"singleRebateSign":null,"cf":false,"notice":null,"isPre":null,"showDemandAuditLineLabel":false,"orderType":null,"newDiscountRate":null,"oldOrderType":null,"oldNewDiscountRate":null,"pendding":null,"pushJdeStatusDemandSub":null,"circleGiftSign":0,"delay":null,"limitS":null,"starts":null,"ends":null,"completedS":null,"confirmDays":null,"remindS":null,"skuGroupList":null,"groupProductType":0,"purchaseId":null,"purchaseCode":null,"sdCancelTime":null,"sdTipSign":0,"receiverNote":null,"receiverPhoneNote":null,"receiverAddressNote":null,"flag":null,"sourceStr":null,"addressNoNote":null,"detailIsSpit":false,"spitSgin":null,"distributionType":null,"rebateValidity":null,"orderChangeType":null,"logoIcon":null,"detail":null,"changeBigType":null,"promotionType":1,"activityTotalAmount":0,"couponTotalAmount":0,"userReceiveId":null,"editSgin":null,"snSgin":null,"jdeOutAmount":null,"totalAllPaAmount":null,"diffShowSgin":0,"lineCodeDelete":null,"startTime":null,"endTime":null,"changeSign":null,"distributionId":null,"limitBuySign":0,"companyType":null,"afterSale":null,"csId":null,"sdStatusNodeParamList":null,"ypPromotionTotal":null,"acrossMainCode":null,"forceApprovedSign":0,"circleGiftContinueSgin":0,"customerCharge":null,"onlinePaySign":0,"recodeDemandSkuList":null,"mergeDemandSkuList":null,"inventoryNode":null,"customCode":null,"terminalSource":null,"potentialClientsId":null,"settlementStatus":null,"firstOrderAuditStatus":null,"confirmReceiptSign":null,"confirmReceiptTime":null,"afterSaleDays":null,"deliveryCompletedTime":null,"taxSign":0,"orderSplitSign":0,"demandRebateSkuList":null,"confirmTime":null,"customerPurchaseNo":null,"mustInstallDate":false,"secondAddressList":null,"splitOrMerge":null,"spitOrderSign":null,"productAmountWholeLine":30,"auditCompanyName":null,"auditCompanyNameCode":null,"edit":false,"ratio":null,"showMoreAttribute":false,"lastNoTaxDiscountAmount":0,"lastDiscountAmount":0,"_rebateType":false,"settementQuantity":1,"userBalancePrice":0,"isEdit":true,"discountRateOne":100,"pSign":0}],"orderStatus":102,"userReceiveId":"","userReceiveId2":"","productAmount":30,"paymentType":0,"accountId":52,"receiveBankName":"建设银行北京支行19","receiveBankAccount":"62231478523685414","buyerCartIds":["%s","%s"],"sellerCompanyCode":"00103","companyId":3}}
+#预期结果
+checkDict2: {"success":true,"code":"200","message":null}
+
+#查询已添加至购物车商品对应的id
+#商品-国联公司-脉搏血氧测量仪
+"payload4": {"productName":"","materialCode":"9197","manufacturer":"","licenseCode":"","timeSortStatus":0,"pageSize":100,"pageStart":1}
+#商品-北京公司-百能速干手消毒凝胶
+"payload5": {"productName":"百能速干手消毒凝胶","materialCode":"","manufacturer":"杭州朗索医用消毒剂有限公司","licenseCode":"","timeSortStatus":0,"pageSize":100,"pageStart":1}
+
+
+#商品的选择
+#商品-国联公司-脉搏血氧测量仪
+"payload6": {"companyCode":"00102","orderProductList":[{"agreementPriceId":null,"activityUseSgin":1,"buyerCartId":"%s","productId":9036,"productCode":"10357517","productPrice":15000,"purchaseQuantity":1}],"couponUseSgin":1}
+#商品-北京公司-百能速干手消毒凝胶
+"payload7": {"companyCode":"00103","orderProductList":[{"agreementPriceId":null,"activityUseSgin":1,"buyerCartId":"%s","productId":1190,"productCode":"13768100","productPrice":30,"purchaseQuantity":1}],"couponUseSgin":1}
+
+
+#验证购物车列表查询条件功能正常使用性
+#新增商品至购物车列表报文
+"payload3": {"currentCompanyId":2,"productId":9038,"quantity":1,"agreementPriceId":0,"price":20000,"filialeCode":"00102","installedDate":null}
+
+#购物车列表查询报文
+"payload8": {"productName":"脉搏碳氧血氧测量仪","materialCode":"9216","manufacturer":"迈心诺公司","licenseCode":"国械注进20172215032","timeSortStatus":0,"pageSize":100,"pageStart":1}
+#预期结果
+checkDict3: {"productId": 9038}
+
+
+
+
+
+
+
diff --git a/data/cmdc_commodity_activity/data b/data/cmdc_commodity_activity/data
new file mode 100644
index 0000000000000000000000000000000000000000..8e6f324ab2bebc60d21e511e483525e63ccdbfaa
--- /dev/null
+++ b/data/cmdc_commodity_activity/data
@@ -0,0 +1,215 @@
+# 多采商城登录信息
+"username": "BJ0621"
+"password": "Aa123456"
+
+#后台运营管理系统登录信息(子公司)
+"username1": "Admin00111"
+"password1": "Aa123456"
+
+#后台运营管理系统登录信息(总公司)
+"username2": "admin"
+"password2": "Aa123456"
+
+#后台管理系统headers
+json_headers: {
+ "Content-Type": "application/json",
+ "Cmdc_access_token": "%s"
+}
+
+#多采商城headers
+json_headers1: {
+ "Cmdc_access_token": "%s",
+ "Sourcetype": "mall"
+}
+
+#测试场景一:促销活动列表获取
+"url1": "/order/back/activityBasic/listBackActivity"
+"payload1": {"activityBasic":{"activityBasicId":"10127","activityName":"特价验证","activityStatus":102,"activityType":1},"activityDifferenceUser":{"customerCode":"","customerCompanyName":""},"activityProduct":{"productCode":"","materialCode":"","productLineCode":null,"specifications":""},"allowanceFlag":null,"pageSize":10,"pageStart":1,"startTime":null,"cStartTime":null,"endTime":null,"cEndTime":null,"pageNum":1}
+#预期结果
+checkDict1: {"success":true,"code":"200","message":"OK"}
+
+
+#测试场景二:获取活动基本信息
+"url2": "/order/back/activityBasic/selectOne"
+"payload2": {"activityBasicId":"%s"}
+#预期结果
+checkDict2: {"success":true,"code":"200","message":null}
+
+
+#测试场景三:获取活动包含的商品信息
+"url3": "/order/back/activityProduct/listBackActivityProduct"
+"payload3": {"activityProduct":{"activityBasicId":"%d"},"activityType":"%d"}
+#预期结果
+checkDict3: {"success":true,"code":"200","message":"OK"}
+
+
+#测试场景四:获取活动对应的黑名单
+"url4": "/order/back/activityUserBlacklist/listBackActivityUserBlacklist"
+"payload4": {"activityUserBlacklist":{"activityBasicId":"%d"}}
+#预期结果
+checkDict4: {"success":true,"code":"200","message":"OK"}
+
+#测试场景五:获取活动对应的指定客户差异促销规则
+"url5": "/order/back/activityDifferenceUser/listBackActivityDifferenceUser"
+"payload5": {"activityDifferenceUser":{"activityBasicId":"%s"},"activityType":"%s"}
+#预期结果
+checkDict5: {"success":true,"code":"200","message":"OK"}
+
+
+#测试场景六:获取商品详情
+"url6": "/product/mall/queryProductInfoById"
+"payload6": {"productId":"%s"}
+#预期结果
+checkDict6: {"success":true,"code":"200","message":"OK"}
+
+
+#测试场景七:查询商品对应的促销活动
+"url7": "/order/public/getDiscountByProductId"
+"payload7": {"productId":"%s","companyCode":"%s","productCode":"%s"}
+#预期结果
+checkDict7: {"success":true,"code":"200","message":"OK"}
+
+
+#测试场景八:商品未参与活动验证
+"payload8": {"productId":"23363","companyCode":"00103","productCode":"10231310"}
+#预期结果
+checkDict8: {"activity": null}
+
+#测试场景九:商品参与特价活动验证
+#预期结果
+checkDict9: {"activityBasicId": "%s"}
+
+
+#测试场景十:购买满足条件特价商品金额验证
+"url10": "/order/mall/getShoppingCartActivity"
+"payload10": {"companyCode":"%s","orderProductList":[{"agreementPriceId":null,"activityUseSgin":1,"buyerCartId":null,"productId":"%s","productCode":"%s","productPrice":"%s","purchaseQuantity":"%s"}],"couponUseSgin":1}
+#预期结果
+checkDict10: {"activityAmount":"%s"}
+
+
+#测试场景十一:购买不满足条件特价商品金额验证
+#预期结果
+checkDict11: {"activityAmount":0}
+
+
+#测试场景十二:同一个商品同一个活动规则活动时间不允许存在交叉验证
+"url12": "/order/back/activityProduct/importExcel"
+"payload12": {"type":1,"companyCode":"00111","activityBasicId":"10132"}
+#预期结果
+checkDict12: {"success":false,"code":"2001","message":"有时间重叠的商品,请检查后再上传!"}
+
+
+#折扣活动验证
+#进行促销活动列表获取
+"payload13": {"activityBasic":{"activityBasicId":"10134","activityName":"","activityStatus":""},"activityDifferenceUser":{"customerCode":"","customerCompanyName":""},"activityProduct":{"productCode":"","materialCode":"","productLineCode":null,"specifications":""},"allowanceFlag":null,"pageSize":10,"pageStart":1,"startTime":null,"cStartTime":null,"endTime":null,"cEndTime":null,"pageNum":1}
+#预期结果
+checkDict13: {"activityBasicId": 10134}
+
+
+#满减活动验证
+#进行促销活动列表获取
+"payload14": {"activityBasic":{"activityBasicId":"10135","activityName":"","activityStatus":""},"activityDifferenceUser":{"customerCode":"","customerCompanyName":""},"activityProduct":{"productCode":"","materialCode":"","productLineCode":null,"specifications":""},"pageSize":10,"allowanceFlag":null,"pageStart":1,"startTime":null,"cStartTime":null,"endTime":null,"cEndTime":null,"pageNum":1}
+#预期结果
+checkDict14: {"activityBasicId": 10135}
+
+
+#买赠活动验证
+#进行促销活动列表获取
+"payload15": {"activityBasic":{"activityBasicId":"10136","activityName":"","activityStatus":""},"activityDifferenceUser":{"customerCode":"","customerCompanyName":""},"activityProduct":{"productCode":"","materialCode":"","productLineCode":null,"specifications":""},"allowanceFlag":null,"pageSize":10,"pageStart":1,"startTime":null,"cStartTime":null,"endTime":null,"cEndTime":null,"pageNum":1}
+#预期结果
+checkDict15: {"productId": 7670}
+
+#获取商品对应的赠品信息
+#购买买赠商品时为满足条件,进行赠品的赠送
+"url16": "/order/public/getCartPurchaseZero"
+"payload16": [{"buyerCartId":0,"purchaseQuantity":9,"productCode":"13018749","companyCode":"00111"}]
+#预期结果
+checkDict16: {"success":True,"code":"200","message":"OK"}
+
+#购买买赠商品时为满足条件,不进行赠品的赠送
+#预期结果
+checkDict17: {"purchaseZeroProductList": []}
+
+
+#促销活动管理列表查询条件验证
+"payload_list": {"activityBasic":{"activityBasicId":"%s","activityName":"%s","activityStatus":"%s","activityType":"%s"},"activityDifferenceUser":{"customerCode":"","customerCompanyName":""},"activityProduct":{"productCode":"","materialCode":"","productLineCode":null,"specifications":""},"allowanceFlag":null,"pageSize":10,"pageStart":1,"startTime":"%s","cStartTime":"%s","endTime":"%s","cEndTime":"%s","pageNum":1}
+#预期结果
+checkDict_list: {"activityBasicId":"%s"}
+
+
+#雅培选赠验证
+# 雅培选赠活动用户信息
+"username3": "BJ8874"
+"password3": "Aa123456"
+#后台运营管理系统登录信息(国联公司)
+"username4": "Admin00102"
+"password4": "Aa123456"
+#进行促销活动列表获取
+"payload18": {"activityBasic":{"activityBasicId":"10097","activityName":"","activityStatus":"","activityType":5},"activityDifferenceUser":{"customerCode":"","customerCompanyName":""},"activityProduct":{"productCode":"","materialCode":"","productLineCode":null,"specifications":""},"allowanceFlag":null,"pageSize":10,"pageStart":1,"startTime":null,"cStartTime":null,"endTime":null,"cEndTime":null,"pageNum":1}
+#获取雅培选增活动对应的活动客户
+"url19": "/order/back/activityDifferenceUser/listBackActivityDifferenceUser"
+"payload19": {"activityDifferenceUser":{"activityBasicId":"%s"},"activityType":"%s"}
+#getCircleActivity
+"url20": "/order/public/getCircleActivity"
+"payload20": {"companyCode":"%s","userId":"%s"}
+#预期结果
+checkDict20: {"activityBasicId": "%s"}
+
+#getIndexGiftCircleAreaLimit
+"url21": "/order/public/getIndexGiftCircleAreaLimit"
+"payload21": {"companyCode":"%s","productId":"%s","productCode":"%s"}
+#预期结果
+checkDict21: {"activityBasicId": "%s"}
+
+#商品活动黑名单验证
+#获取活动规则
+"payload22": {"activityBasic":{"activityBasicId":"10138","activityName":"","activityStatus":"","activityType":1},"activityDifferenceUser":{"customerCode":"","customerCompanyName":""},"activityProduct":{"productCode":"","materialCode":"","productLineCode":null,"specifications":""},"allowanceFlag":null,"pageSize":10,"pageStart":1,"startTime":null,"cStartTime":null,"endTime":null,"cEndTime":null,"pageNum":1}
+#黑名单用户信息
+"username5": "BJ0500"
+"password5": "Tss12345"
+#预期结果
+checkDict22: {"activity": null}
+
+
+#赠品验证
+# 国联公司多采商城登录信息
+"username7": "GL1000086"
+"password7": "Aa123456"
+
+#后台运营管理系统登录信息(国联公司)
+"username8": "Admin00102"
+"password8": "Aa123456"
+
+#验证赠品(jde0元)活动
+#在促销列表中获取指定促销活动
+"payload23": {"activityBasic":{"activityBasicId":"10113","activityName":"","activityStatus":""},"activityDifferenceUser":{"customerCode":"","customerCompanyName":""},"activityProduct":{"productCode":"","materialCode":"","productLineCode":null,"specifications":""},"pageSize":10,"allowanceFlag":null,"pageStart":1,"startTime":null,"cStartTime":null,"endTime":null,"cEndTime":null,"pageNum":1}
+#预期结果
+checkDict23: {"productId":111477}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/data/cmdc_commodity_list/data b/data/cmdc_commodity_list/data
new file mode 100644
index 0000000000000000000000000000000000000000..0808ab9b61af2812da32b9a35882a1e3c2a00d68
--- /dev/null
+++ b/data/cmdc_commodity_list/data
@@ -0,0 +1,34 @@
+#后台运营管理系统登录信息(总公司)
+"username": "admin"
+"password": "Aa123456"
+
+json_headers: {
+ "Content-Type": "application/json",
+ "Cmdc_access_token": "%s"
+}
+
+#查询失效商品接口地址
+"url1": "/product/mall/queryProductByJdeStatus"
+"payload1": {"isFbList":0,"filialeCode":null,"productName":null,"productCode":null,"specifications":null,"materialCode":null,"manufacturer":null,"lineName":null,"riskRank":null,"isRelease":null,"isExistImage":null,"jdeStatus":null,"isGift":null,"description":null,"tbsj":[],"pageNum":1,"pageSize":8,"total":3440,"firstQuery":true,"flag":true,"preInvalidStatus":null,"isControlSales":"0","startTime":null,"endTime":null}
+#预期结果
+checkDict1: {"success":true,"code":"200","message":"OK"}
+
+
+#查询已上架商品接口地址
+"url2": "/product/mall/queryProductInfoByPage"
+"payload2": {"isFbList":0,"filialeCode":null,"productName":null,"productCode":null,"specifications":null,"materialCode":null,"manufacturer":null,"lineName":null,"riskRank":null,"isRelease":"1","isExistImage":null,"jdeStatus":"P","isGift":null,"description":null,"tbsj":[],"pageNum":1,"pageSize":8,"total":8869,"firstQuery":true,"flag":true,"preInvalidStatus":null,"isControlSales":"0","startTime":null,"endTime":null,"status":101}
+#预期结果
+checkDict2: {"success":true,"code":"200","message":"OK"}
+
+
+#查询控销商品接口地址
+"url3": "/product/queryControlSalesProduct"
+"payload3": {"isFbList":0,"filialeCode":null,"productName":null,"productCode":null,"specifications":null,"materialCode":null,"manufacturer":null,"lineName":null,"riskRank":null,"isRelease":"1","isExistImage":null,"jdeStatus":"P","isGift":null,"description":null,"tbsj":[],"pageNum":1,"pageSize":8,"total":411,"firstQuery":true,"flag":true,"preInvalidStatus":null,"isControlSales":null,"startTime":null,"endTime":null}
+#预期结果
+checkDict3: {"success":true,"code":"200","message":"OK"}
+
+#查询赠品接口地址
+"url4": "/product/mall/queryProductByGift"
+"payload4": {"isFbList":0,"filialeCode":null,"productName":null,"productCode":null,"specifications":null,"materialCode":null,"manufacturer":null,"lineName":null,"riskRank":null,"isRelease":"1","isExistImage":null,"jdeStatus":"P","isGift":null,"description":null,"tbsj":[],"pageNum":1,"pageSize":8,"total":23,"firstQuery":true,"flag":true,"preInvalidStatus":null,"isControlSales":"0","startTime":null,"endTime":null}
+#预期结果
+checkDict4: {"success":true,"code":"200","message":"OK"}
\ No newline at end of file
diff --git a/data/cmdc_coupon/data b/data/cmdc_coupon/data
new file mode 100644
index 0000000000000000000000000000000000000000..d2e7bf5ace766d9d448f07575cd9f6f3948fa223
--- /dev/null
+++ b/data/cmdc_coupon/data
@@ -0,0 +1,132 @@
+# 多采商城登录信息
+"username": "BJ0621"
+"password": "Aa123456"
+
+#后台运营管理系统登录信息(子公司)
+"username1": "Admin00111"
+"password1": "Aa123456"
+
+#后台运营管理系统登录信息(总公司)
+"username2": "admin"
+"password2": "Aa123456"
+
+#后台管理系统headers
+json_headers: {
+ "Content-Type": "application/json",
+ "Cmdc_access_token": "%s"
+}
+
+#多采商城headers
+json_headers1: {
+ "Cmdc_access_token": "%s",
+ "Sourcetype": "mall"
+}
+
+#测试场景一:优惠券列表获取
+"url1": "/order/back/queryCouponList"
+"payload1": {"pageSize":10,"pageNum":1,"couponId":null,"couponName":null,"couponStatus":null,"productRangeType":null,"provideType":null,"companyCode":null,"effectiveDate":null,"expirationDate":null,"total":1}
+#预期结果
+checkDict1: {"success":true,"code":"200","message":"OK"}
+
+
+#测试场景二:优惠券活动列表查询条件验证
+"payload2": {"pageSize":10,"pageNum":1,"couponId":"%s","couponName":"%s","couponStatus":"%s","productRangeType":"%s","provideType":"%s","companyCode":null,"effectiveDate":"%s","expirationDate":"%s","total":1}
+#预期结果
+checkDict2: {"couponId":"%s"}
+
+
+
+#测试场景三:优惠券商品验证
+#获取商品信息
+"url_goods": "/product/public/queryPcProductInfoByPageAndPublic"
+"payload_goods": {"searchName":""}
+#获取商品折扣信息列表
+"url_discount": "/order/public/getDiscountList"
+#预期结果
+checkDict3: {"couponAmount": 2.0000}
+
+
+#测试场景四:优惠券领取成功验证
+#获取指定优惠券活动报文
+"payload3": {"pageSize":10,"pageNum":1,"couponId":"10028","couponName":null,"couponStatus":null,"productRangeType":null,"provideType":null,"effectiveDate":null,"expirationDate":null,"total":1}
+
+"url_collect_coupon": "/order/public/collectCoupon"
+"payload_collect_coupon": {"couponId":"%s","companyCode":"%s"}
+#预期结果
+checkDict_collect_coupon_false: {"success":false,"code":"500","message":"3s内只能领取一次","data":null,"freshToken":null}
+checkDict_collect_coupon: {"success":true,"code":"200","message":"OK","data":true,"freshToken":null}
+
+
+#测试场景五:优惠券领取次数超出限定次数
+#获取指定优惠券活动报文
+"payload4": {"pageSize":10,"pageNum":1,"couponId":"10027","couponName":null,"couponStatus":null,"productRangeType":null,"provideType":null,"effectiveDate":null,"expirationDate":null,"total":1}
+
+#预期结果
+checkDict_collect_coupon1: {"success":false,"code":"500","message":"该券已超过用户最大领取限制,请您关注平台后续其他活动","data":null,"freshToken":null}
+
+#测试场景六:优惠券库存不足无法领取验证
+#获取指定优惠券活动报文
+"payload5": {"pageSize":10,"pageNum":1,"couponId":"10029","couponName":null,"couponStatus":null,"productRangeType":null,"provideType":null,"effectiveDate":null,"expirationDate":null,"total":1}
+
+#预期结果
+checkDict_collect_coupon2: {"success":false,"code":"500","message":"该券已抢完,请您关注平台后续其他活动","data":null,"freshToken":null}
+
+#测试场景七:优惠券活动已过期,无法领取验证
+#获取指定优惠券活动报文
+"payload6": {"pageSize":10,"pageNum":1,"couponId":"10030","couponName":null,"couponStatus":null,"productRangeType":null,"provideType":null,"effectiveDate":null,"expirationDate":null,"total":1}
+
+#预期结果
+checkDict_collect_coupon3: {"success":false,"code":"500","message":"该券已抢完,请您关注平台后续其他活动","data":null,"freshToken":null}
+
+
+#测试场景八:优惠券活动未生效,无法领取验证
+#获取指定优惠券活动报文
+"payload7": {"pageSize":10,"pageNum":1,"couponId":"10031","couponName":null,"couponStatus":null,"productRangeType":null,"provideType":null,"effectiveDate":null,"expirationDate":null,"total":1}
+
+#预期结果
+checkDict_collect_coupon4: {"success":false,"code":"500","message":"该券已抢完,请您关注平台后续其他活动","data":null,"freshToken":null}
+
+#===========================================================================================================================================
+
+#后台运营管理系统登录信息(北京公司)
+"username3": "Admin2"
+"password3": "Aa123456"
+#多采商城登录信息
+"username4": "BJ1137933"
+"password4": "Aa123456"
+
+#优惠券信息查询
+"url8": "/order/back/queryCoupon"
+"payload8": {"couponId": 10032}
+#预期结果
+checkDict8: {"couponId": 10032}
+
+#优惠券活动包含的商品信息
+#查询优惠券活动报文
+"payload9": {"pageSize":10,"pageNum":1,"couponId":"","couponName":null,"couponStatus":101,"productRangeType":1,"provideType":1,"companyCode":null,"effectiveDate":null,"expirationDate":null,"total":1}
+#优惠券活动包含商品信息接口地址以及报文
+"url9": "/order/back/couponProductList"
+"payload10": {"couponId":"%s","productCode":"","productName":"","materialCode":"","specifications":"","lineName":""}
+#预期结果
+checkDict10: {"couponId": "%s"}
+
+
+#验证商品是否与优惠券活动匹配成功
+"url10": "/order/public/getDiscountByProductId"
+"payload11": {"productId":"%s","companyCode":"%s","productCode":"%s"}
+
+
+#导入式优惠券用户发放验证
+#我的优惠券列表
+"url12": "/order/mall/myCoupon?status=101"
+#活动客户信息-多采商城
+"username5": "BJ0500"
+"password5": "Tss12345"
+#预期结果
+checkDict11: {"couponId": 10033}
+
+
+
+
+
+
diff --git a/data/cmdc_demand/data b/data/cmdc_demand/data
new file mode 100644
index 0000000000000000000000000000000000000000..969c7cc99dd728d0cea039b1a0260686083f1019
--- /dev/null
+++ b/data/cmdc_demand/data
@@ -0,0 +1,177 @@
+# 多采商城登录信息
+"username": "BJ0621"
+"password": "Aa123456"
+
+#后台运营管理系统登录信息(子公司)
+"username1": "Admin00111"
+"password1": "Aa123456"
+
+#后台运营管理系统登录信息(总公司)
+"username2": "admin"
+"password2": "Aa123456"
+
+#后台管理系统headers
+json_headers: {
+ "Content-Type": "application/json",
+ "Cmdc_access_token": "%s"
+}
+
+#多采商城headers
+json_headers1: {
+ "Cmdc_access_token": "%s",
+ "Sourcetype": "mall"
+}
+
+#测试场景一:商城草稿订单创建-查询-删除
+#草稿订单创建
+"url1": "/product/public/draft/add"
+"payload1": {"productMap":{"国药集团北京医疗器械有限公司":{"datas":[{"demandId":null,"demandParentId":null,"demandParentCode":null,"demandCode":null,"customerId":null,"customerName":null,"customerCode":1127254,"loginName":null,"realName":null,"addressNumber":null,"mobile":null,"productName":null,"productCode":null,"sellerCompanyName":null,"sellerCompanyCode":null,"paymentType":null,"receiveBankName":null,"receiveBankAccount":null,"paymentAmount":"230.0000","productAmount":230,"payableAmount":230,"refundAmount":null,"cancelAmount":null,"discountAmount":0,"orderStatus":null,"refundStatus":null,"receiverName":null,"receiverContact":null,"receiverAddress":null,"remark":null,"revokedReason":null,"auditById":null,"auditByName":null,"auditTime":null,"auditRemark":null,"flhsStatus":null,"pushJdeStatus":null,"createTime":null,"updateTime":null,"submitTime":null,"pushJdeTime":null,"successTime":null,"auditStatus":null,"deleteSign":null,"firstOrderFlag":null,"demandItems":[{"demandSkuId":null,"demandId":null,"distributionId":null,"companyCode":"00103","demandCode":null,"demandParentId":null,"sellerCompanyId":null,"sellerCompanyName":null,"sellerCompanyCode":null,"customerCode":null,"productLineCode":"","productLineName":"","propertyStr":null,"storageType":"999","suppDist":null,"productId":314,"productName":"红外测温仪","productCode":"12043728","productNature":"01","brandName":null,"optionStr":"YHW-3","imageUrl":null,"lineNumber":null,"price":230,"rebateId":null,"rebateDetail":null,"useMaxLimit":null,"useLimitStart":null,"useBalance":null,"originalPrice":null,"biddingDiscountTax":null,"salesDiscountTax":null,"quantity":1,"sumQuantity":null,"sendQuantity":null,"lackQuantity":null,"cancelQuantity":null,"cancelAmount":null,"refundQuantity":null,"refundAmount":null,"discountQuantity":null,"discountAmount":null,"subtotal":230,"measuringUnit":"支","auxiliaryMeasuringUnit":"BN","procurementMeasuringUnit":"BN","pricingMeasuringUnit":"BN","materialCode":"","manufacturer":"江苏鱼跃医用仪器有限公司","produceRegisterNum":null,"riskRank":"002","productClassify":"6820","createTime":null,"updateTime":null,"deleteSign":null,"calCancelFlag":null,"refundFlag":null,"discountRate":1,"realPay":230,"promotionPrice":null,"promotionTotalPrice":0,"demandParentCode":null,"regionId":null,"regionName":null,"spitSign":null,"activityAmount":null,"couponAmount":null,"activityUnitAmount":0,"couponUnitAmount":null,"activityBasicId":null,"couponSgin":null,"couponSgin2":null,"returnQuantity":null,"returnAmount":null,"customerId":null,"prescription":null,"specifications":"YHW-3","lineCodeDelete":null,"sdOutStorage":null,"licenseNo":null,"demandCodes":null,"areaName":null,"agreementPriceId":0,"offerPrice":null,"orderMark":null,"totalPrice":null,"productLimitBuyList":null,"giftSign":0,"giftProductCode":null,"activityCarDataVoList":null,"orderSource":null,"receiverName":null,"receiverContact":null,"receiverAddress":null,"rebateTripId":null,"allSign":null,"salesReturn":null,"nowAmount":null,"taxSign":0,"plusMinuKey":null,"rebateRule":null,"areaPrice":null,"lockType":null,"estimatedDeliveryDate":null,"licenseInfoFeignDtos":null,"receivedQty":null,"rebateSign":null,"lineNumberOrg":null,"changeSgin":null,"addSgin":null,"ptbfa1":null,"ptbfa2":null,"ptbfa3":null,"ptbfa4":null,"ptbfa5":null,"yapeiPriceId":null,"ypLinePromotion":null,"yapeiPrice":null,"companyId":3,"buyerCartId":null,"userReceiveIdx":null,"userReceiveIdx2":null,"limitNum":null,"productLimitBuyId":null,"alreadyBuyNum":null,"limitBuySign":0,"proposeNum":null,"takeEffectRange":null,"takeEffectTime":null,"endTime1":null,"groupId":null,"fsGroupId":null,"proposalQuantity":null,"proposalSign":0,"manufacturerUserNo":null,"manufacturerUserDesc":null,"manufacturerProductNo":null,"manufacturerProductDesc":null,"manufacturerUserId":null,"manufacturerProductId":null,"busProductCode":null,"paidTime":null,"customerName":null,"paymentAmount":null,"specQuantity":null,"disQuantity":null,"fulfilledQuantity":null,"fulCancelQuantity":null,"couponId":null,"couponId2":null,"limitS":null,"starts":null,"ends":null,"userId":null,"productTax":"","taxRate":0.13,"demandSplitSign":"1","hospitalHopeDate":null,"uniqueKey":null,"productType":null,"activityRuleId":null,"allowanceBeginTime":null,"allowanceEndTime":null,"sign":null,"differenceActivityUserId":null,"groupNumber":null,"groupName":null,"skuGroup":null,"subList":null,"dataJson":null,"skuMergeSign":null,"freseniusPriceId":null,"quantityAndGroupAll":null,"booleaTime":null,"spitSgin":0,"groupSpitSign":0,"sort":0,"circleArea":null,"purchaseEntryId":null,"mustInstallDate":false,"installedDate":null,"installedDateStr":null,"demandLines":null,"subLineNumber":null,"demandSubCode":null,"propertyName":null,"propertyVal":null,"propertyNote":null,"sendManualSign":0,"activityType":0,"giftSettlementMethod":null,"giftInitQuantity":null,"packageCode":null,"giftGroupQuantity":null,"siteCompanyCode":null,"hospitalOrderType":null,"isCollectionAllocation":null,"recDifferenceQty":null,"orderStatus":null,"distributionType":null,"groupCode":null,"groupProductType":null,"pSign":0,"backSign":0,"description":"","stockNumber":null,"priceChange":false,"rebate":false,"giftList":[],"purchaseZeroProductList":[],"prePromotionPrice":null,"prepromotionTotalPrice":0,"preDiscountRate":null,"userBalance":0}],"expireDemandSkus":null,"demandSubItems":null,"rebateDetail":null,"rebateAmountList":null,"productLineCode":"","productLineName":"","auditLoginName":null,"showPurchaseNo":false,"isRebate":null,"isShowReate":null,"taxRate":0.13,"rebateType":0,"paymentAmountWholeLine":230,"discountAmountWholeLine":0,"payableAmountWholeLine":230,"discountRate":null,"singleRebateAmount":null,"isRebateEdit":null,"payCertUrl":null,"rebateAmount":null,"demandCance":null,"soAdd":null,"soCance":null,"orderReturn":null,"needCustomerConfirm":false,"measuringUnit":null,"productId":null,"version":null,"mainVersion":null,"agencyConfigId":null,"confirmSign":null,"replySign":null,"agencySign":null,"editIng":null,"editIngStr":null,"jdeType":null,"isElectronicSeal":null,"contractAgreementNo":null,"alesDepartmentNo":null,"alesDepartmentName":null,"salesPersonNo":null,"salesPersonName":null,"customerNote":null,"otherNote":null,"contractAgreementCode":null,"projectName":null,"projectCode":null,"regionId":null,"regionName":null,"productLineBindSign":null,"shipVia":null,"orderSource":null,"userBalance":null,"liquidCode":null,"shipmentTypeStr":null,"specifications":"YHW-3","pageStart":1,"pageSize":5,"changeSgin":null,"yapei":2,"companyId":3,"preemptConfig":null,"productSpec":null,"secondAuditSign":null,"secondAuditById":null,"secondAuditByName":null,"secondAuditTime":null,"secondAuditRemark":null,"secondAuditStatus":null,"rebateRule":"0","rebateControlSign":0,"rebateId":null,"preferenceType":null,"preferenceName":null,"disPrice":null,"lineNum":0,"auditStaySign":0,"fileList":null,"imageUrls":null,"total":null,"submitTimeStr":null,"updateTimeStr":null,"auditTimeStr":null,"acceptTime":null,"acceptTimeStr":null,"paidTime":null,"paidTimeStr":null,"erpHandingTime":null,"erpHandingTimeStr":null,"partShippingTime":null,"partShippingTimeStr":null,"allShippingTime":null,"allShippingTimeStr":null,"pushJdeTimeStr":null,"successTimeStr":null,"onlinePaySuccessTime":null,"onlinePaySuccessTimeStr":null,"bankTransactionSerial":null,"newIsTax":null,"countFormula":null,"countNumber":null,"noTaxRebateAmount":0,"isCollectionAllocation":0,"siteCompanyCode":null,"hospitalOrderType":null,"proofTime":null,"proofURL":null,"proofRemark":null,"proofSign":0,"customerCancelSign":null,"cancelRecords":null,"cancelCount":0,"updateNewTime":null,"updateNewTimeStr":null,"fsDedUseSign":null,"notice":null,"shareType":null,"singleRebateSign":null,"cf":false,"isPre":null,"showDemandAuditLineLabel":false,"orderType":null,"newDiscountRate":null,"oldOrderType":null,"oldNewDiscountRate":null,"pendding":null,"modifySign":null,"refuseType":null,"groupChangeSign":null,"custModify":null,"pushJdeStatusDemandSub":null,"circleGiftSign":0,"delay":null,"limitS":null,"starts":null,"ends":null,"completedS":null,"confirmDays":null,"remindS":null,"skuGroupList":null,"groupProductType":0,"purchaseId":null,"purchaseCode":null,"sdCancelTime":null,"sdTipSign":0,"receiverNote":null,"receiverPhoneNote":null,"receiverAddressNote":null,"flag":null,"sourceStr":null,"addressNoNote":null,"detailIsSpit":false,"spitSgin":null,"distributionType":null,"rebateValidity":null,"orderChangeType":null,"logoIcon":null,"detail":null,"changeBigType":null,"promotionType":1,"activityTotalAmount":0,"couponTotalAmount":0,"userReceiveId":null,"editSgin":null,"snSgin":null,"jdeOutAmount":null,"totalAllPaAmount":null,"diffShowSgin":0,"lineCodeDelete":null,"startTime":null,"endTime":null,"changeSign":null,"distributionId":null,"limitBuySign":0,"companyType":null,"afterSale":null,"csId":null,"sdStatusNodeParamList":null,"ypPromotionTotal":null,"acrossMainCode":null,"forceApprovedSign":0,"circleGiftContinueSgin":0,"customerCharge":null,"onlinePaySign":0,"recodeDemandSkuList":null,"mergeDemandSkuList":null,"inventoryNode":null,"customCode":null,"terminalSource":null,"potentialClientsId":null,"settlementStatus":null,"firstOrderAuditStatus":null,"confirmReceiptSign":null,"confirmReceiptTime":null,"afterSaleDays":null,"deliveryCompletedTime":null,"taxSign":0,"orderSplitSign":0,"demandRebateSkuList":null,"confirmTime":null,"customerPurchaseNo":null,"mustInstallDate":false,"secondAddressList":null,"splitOrMerge":null,"spitOrderSign":null,"productAmountWholeLine":230,"auditCompanyName":null,"auditCompanyNameCode":null,"edit":false,"editProductListFlag":false,"ratio":null,"showMoreAttribute":false,"lastNoTaxDiscountAmount":0,"lastDiscountAmount":0,"showInfo":false,"addressConfig":2,"isExpire":false,"settementQuantity":1,"userBalancePrice":0,"isEdit":true,"discountRateOne":100,"_rebateType":false}],"addressConfig":2,"openPreTaxAmount":0,"remark":null,"receiverPhoneNote":"15887223281","promotionOrRebate":1,"promotionType":1,"productLineCodes":[""],"addressIsCommon":true,"showChangePromotionOrRebate":false,"couponTotalAmount":0,"activityTotalAmount":0,"totalQuantity":1,"totalPrice":230,"discountAmount":0,"demandItems":[{"demandSkuId":null,"demandId":null,"distributionId":null,"companyCode":"00103","demandCode":null,"demandParentId":null,"sellerCompanyId":null,"sellerCompanyName":null,"sellerCompanyCode":null,"customerCode":null,"productLineCode":"","productLineName":"","propertyStr":null,"storageType":"999","suppDist":null,"productId":314,"productName":"红外测温仪","productCode":"12043728","productNature":"01","brandName":null,"optionStr":"YHW-3","imageUrl":null,"lineNumber":null,"price":230,"rebateId":null,"rebateDetail":null,"useMaxLimit":null,"useLimitStart":null,"useBalance":null,"originalPrice":null,"biddingDiscountTax":null,"salesDiscountTax":null,"quantity":1,"sumQuantity":null,"sendQuantity":null,"lackQuantity":null,"cancelQuantity":null,"cancelAmount":null,"refundQuantity":null,"refundAmount":null,"discountQuantity":null,"discountAmount":null,"subtotal":230,"measuringUnit":"支","auxiliaryMeasuringUnit":"BN","procurementMeasuringUnit":"BN","pricingMeasuringUnit":"BN","materialCode":"","manufacturer":"江苏鱼跃医用仪器有限公司","produceRegisterNum":null,"riskRank":"002","productClassify":"6820","createTime":null,"updateTime":null,"deleteSign":null,"calCancelFlag":null,"refundFlag":null,"discountRate":1,"realPay":230,"promotionPrice":null,"promotionTotalPrice":0,"demandParentCode":null,"regionId":null,"regionName":null,"spitSign":null,"activityAmount":null,"couponAmount":null,"activityUnitAmount":0,"couponUnitAmount":null,"activityBasicId":null,"couponSgin":null,"couponSgin2":null,"returnQuantity":null,"returnAmount":null,"customerId":null,"prescription":null,"specifications":"YHW-3","lineCodeDelete":null,"sdOutStorage":null,"licenseNo":null,"demandCodes":null,"areaName":null,"agreementPriceId":0,"offerPrice":null,"orderMark":null,"totalPrice":null,"productLimitBuyList":null,"giftSign":0,"giftProductCode":null,"activityCarDataVoList":null,"orderSource":null,"receiverName":null,"receiverContact":null,"receiverAddress":null,"rebateTripId":null,"allSign":null,"salesReturn":null,"nowAmount":null,"taxSign":0,"plusMinuKey":null,"rebateRule":null,"areaPrice":null,"lockType":null,"estimatedDeliveryDate":null,"licenseInfoFeignDtos":null,"receivedQty":null,"rebateSign":null,"lineNumberOrg":null,"changeSgin":null,"addSgin":null,"ptbfa1":null,"ptbfa2":null,"ptbfa3":null,"ptbfa4":null,"ptbfa5":null,"yapeiPriceId":null,"ypLinePromotion":null,"yapeiPrice":null,"companyId":3,"buyerCartId":null,"userReceiveIdx":null,"userReceiveIdx2":null,"limitNum":null,"productLimitBuyId":null,"alreadyBuyNum":null,"limitBuySign":0,"proposeNum":null,"takeEffectRange":null,"takeEffectTime":null,"endTime1":null,"groupId":null,"fsGroupId":null,"proposalQuantity":null,"proposalSign":0,"manufacturerUserNo":null,"manufacturerUserDesc":null,"manufacturerProductNo":null,"manufacturerProductDesc":null,"manufacturerUserId":null,"manufacturerProductId":null,"busProductCode":null,"paidTime":null,"customerName":null,"paymentAmount":null,"specQuantity":null,"disQuantity":null,"fulfilledQuantity":null,"fulCancelQuantity":null,"couponId":null,"couponId2":null,"limitS":null,"starts":null,"ends":null,"userId":null,"productTax":"","taxRate":0.13,"demandSplitSign":"1","hospitalHopeDate":null,"uniqueKey":null,"productType":null,"activityRuleId":null,"allowanceBeginTime":null,"allowanceEndTime":null,"sign":null,"differenceActivityUserId":null,"groupNumber":null,"groupName":null,"skuGroup":null,"subList":null,"dataJson":null,"skuMergeSign":null,"freseniusPriceId":null,"quantityAndGroupAll":null,"booleaTime":null,"spitSgin":0,"groupSpitSign":0,"sort":0,"circleArea":null,"purchaseEntryId":null,"mustInstallDate":false,"installedDate":null,"installedDateStr":null,"demandLines":null,"subLineNumber":null,"demandSubCode":null,"propertyName":null,"propertyVal":null,"propertyNote":null,"sendManualSign":0,"activityType":0,"giftSettlementMethod":null,"giftInitQuantity":null,"packageCode":null,"giftGroupQuantity":null,"siteCompanyCode":null,"hospitalOrderType":null,"isCollectionAllocation":null,"recDifferenceQty":null,"orderStatus":null,"distributionType":null,"groupCode":null,"groupProductType":null,"pSign":0,"backSign":0,"description":"","stockNumber":null,"priceChange":false,"rebate":false,"giftList":[],"purchaseZeroProductList":[],"prePromotionPrice":null,"prepromotionTotalPrice":0,"preDiscountRate":null,"userBalance":0}],"productPrice":"230.0000","fileList":[],"showInfo":false,"pageStart":1,"pageSize":5,"receiveInfo":[{"addressId":3278,"addressNo":93465,"addressName":"云南省昆明市高新技术开发区产业基地B1-02-01地块物流园二期项目1号库M1-2-1,M1-2-2号","provinceCode":null,"userId":null,"companyId":null,"receiverName":"郭红声","address":"","isDefault":0,"type":null,"postcode":null,"mobile":"15887223281","updateDate":null,"updateTime":null,"flag":null,"deleteSign":null,"province":null,"city":null,"area":null,"dateTime":null,"provinceStr":null,"cityStr":null,"areaStr":null,"isJde":0}],"defaultBankInfo":{"accountId":1,"companyId":3,"companyName":"国药集团北京医疗器械有限公司","registeredAddress":"北京市朝阳区安定路39号长新大厦16层","bank":"招商银行股份有限公司北京东直门支行 ","accountName":"国药集团北京医疗器械有限公司","accountNumber":"110927396010401 ","disableSign":0,"deleteSign":0,"createTime":"2020-12-30 17:18:49","updateTime":"2021-05-28 09:54:12","createBy":2,"updateBy":2,"realName":"北京医疗器械公司1admin"},"addressList":[{"addressId":3278,"addressNo":93465,"addressName":null,"provinceCode":null,"userId":null,"companyId":3,"receiverName":"郭红声","address":"云南省昆明市高新技术开发区产业基地B1-02-01地块物流园二期项目1号库M1-2-1,M1-2-2号","isDefault":0,"type":3,"postcode":null,"mobile":"15887223281","updateDate":120211,"updateTime":100440,"flag":null,"deleteSign":null,"province":0,"city":0,"area":0,"dateTime":null,"provinceStr":"","cityStr":"","areaStr":"","isJde":0,"cityList":[],"areaList":[]}],"selecteAddresId":3278,"receiverNote":"郭红声","receiverAddressNote":"云南省昆明市高新技术开发区产业基地B1-02-01地块物流园二期项目1号库M1-2-1,M1-2-2号","addressNoNote":93465,"province":0,"city":0,"cityList":[],"area":0,"areaList":[],"paymentAmount":"230.0000","taxRate":null,"draftDemandId":null,"demands":[{"demandId":null,"demandParentId":null,"demandParentCode":null,"demandCode":null,"customerId":null,"customerName":null,"customerCode":1127254,"loginName":null,"realName":null,"addressNumber":null,"mobile":null,"productName":null,"productCode":null,"sellerCompanyName":null,"sellerCompanyCode":null,"paymentType":null,"receiveBankName":null,"receiveBankAccount":null,"paymentAmount":"230.0000","productAmount":230,"payableAmount":230,"refundAmount":null,"cancelAmount":null,"discountAmount":0,"orderStatus":null,"refundStatus":null,"receiverName":null,"receiverContact":null,"receiverAddress":null,"remark":null,"revokedReason":null,"auditById":null,"auditByName":null,"auditTime":null,"auditRemark":null,"flhsStatus":null,"pushJdeStatus":null,"createTime":null,"updateTime":null,"submitTime":null,"pushJdeTime":null,"successTime":null,"auditStatus":null,"deleteSign":null,"firstOrderFlag":null,"demandItems":[{"demandSkuId":null,"demandId":null,"distributionId":null,"companyCode":"00103","demandCode":null,"demandParentId":null,"sellerCompanyId":null,"sellerCompanyName":null,"sellerCompanyCode":null,"customerCode":null,"productLineCode":"","productLineName":"","propertyStr":null,"storageType":"999","suppDist":null,"productId":314,"productName":"红外测温仪","productCode":"12043728","productNature":"01","brandName":null,"optionStr":"YHW-3","imageUrl":null,"lineNumber":null,"price":230,"rebateId":null,"rebateDetail":null,"useMaxLimit":null,"useLimitStart":null,"useBalance":null,"originalPrice":null,"biddingDiscountTax":null,"salesDiscountTax":null,"quantity":1,"sumQuantity":null,"sendQuantity":null,"lackQuantity":null,"cancelQuantity":null,"cancelAmount":null,"refundQuantity":null,"refundAmount":null,"discountQuantity":null,"discountAmount":null,"subtotal":230,"measuringUnit":"支","auxiliaryMeasuringUnit":"BN","procurementMeasuringUnit":"BN","pricingMeasuringUnit":"BN","materialCode":"","manufacturer":"江苏鱼跃医用仪器有限公司","produceRegisterNum":null,"riskRank":"002","productClassify":"6820","createTime":null,"updateTime":null,"deleteSign":null,"calCancelFlag":null,"refundFlag":null,"discountRate":1,"realPay":230,"promotionPrice":null,"promotionTotalPrice":0,"demandParentCode":null,"regionId":null,"regionName":null,"spitSign":null,"activityAmount":null,"couponAmount":null,"activityUnitAmount":0,"couponUnitAmount":null,"activityBasicId":null,"couponSgin":null,"couponSgin2":null,"returnQuantity":null,"returnAmount":null,"customerId":null,"prescription":null,"specifications":"YHW-3","lineCodeDelete":null,"sdOutStorage":null,"licenseNo":null,"demandCodes":null,"areaName":null,"agreementPriceId":0,"offerPrice":null,"orderMark":null,"totalPrice":null,"productLimitBuyList":null,"giftSign":0,"giftProductCode":null,"activityCarDataVoList":null,"orderSource":null,"receiverName":null,"receiverContact":null,"receiverAddress":null,"rebateTripId":null,"allSign":null,"salesReturn":null,"nowAmount":null,"taxSign":0,"plusMinuKey":null,"rebateRule":null,"areaPrice":null,"lockType":null,"estimatedDeliveryDate":null,"licenseInfoFeignDtos":null,"receivedQty":null,"rebateSign":null,"lineNumberOrg":null,"changeSgin":null,"addSgin":null,"ptbfa1":null,"ptbfa2":null,"ptbfa3":null,"ptbfa4":null,"ptbfa5":null,"yapeiPriceId":null,"ypLinePromotion":null,"yapeiPrice":null,"companyId":3,"buyerCartId":null,"userReceiveIdx":null,"userReceiveIdx2":null,"limitNum":null,"productLimitBuyId":null,"alreadyBuyNum":null,"limitBuySign":0,"proposeNum":null,"takeEffectRange":null,"takeEffectTime":null,"endTime1":null,"groupId":null,"fsGroupId":null,"proposalQuantity":null,"proposalSign":0,"manufacturerUserNo":null,"manufacturerUserDesc":null,"manufacturerProductNo":null,"manufacturerProductDesc":null,"manufacturerUserId":null,"manufacturerProductId":null,"busProductCode":null,"paidTime":null,"customerName":null,"paymentAmount":null,"specQuantity":null,"disQuantity":null,"fulfilledQuantity":null,"fulCancelQuantity":null,"couponId":null,"couponId2":null,"limitS":null,"starts":null,"ends":null,"userId":null,"productTax":"","taxRate":0.13,"demandSplitSign":"1","hospitalHopeDate":null,"uniqueKey":null,"productType":null,"activityRuleId":null,"allowanceBeginTime":null,"allowanceEndTime":null,"sign":null,"differenceActivityUserId":null,"groupNumber":null,"groupName":null,"skuGroup":null,"subList":null,"dataJson":null,"skuMergeSign":null,"freseniusPriceId":null,"quantityAndGroupAll":null,"booleaTime":null,"spitSgin":0,"groupSpitSign":0,"sort":0,"circleArea":null,"purchaseEntryId":null,"mustInstallDate":false,"installedDate":null,"installedDateStr":null,"demandLines":null,"subLineNumber":null,"demandSubCode":null,"propertyName":null,"propertyVal":null,"propertyNote":null,"sendManualSign":0,"activityType":0,"giftSettlementMethod":null,"giftInitQuantity":null,"packageCode":null,"giftGroupQuantity":null,"siteCompanyCode":null,"hospitalOrderType":null,"isCollectionAllocation":null,"recDifferenceQty":null,"orderStatus":null,"distributionType":null,"groupCode":null,"groupProductType":null,"pSign":0,"backSign":0,"description":"","stockNumber":null,"priceChange":false,"rebate":false,"giftList":[],"purchaseZeroProductList":[],"prePromotionPrice":null,"prepromotionTotalPrice":0,"preDiscountRate":null,"userBalance":0,"orderType":null}],"expireDemandSkus":null,"demandSubItems":null,"rebateDetail":null,"rebateAmountList":null,"productLineCode":"","productLineName":"","auditLoginName":null,"showPurchaseNo":false,"isRebate":null,"isShowReate":null,"taxRate":0.13,"rebateType":0,"paymentAmountWholeLine":230,"discountAmountWholeLine":0,"payableAmountWholeLine":230,"discountRate":null,"singleRebateAmount":null,"isRebateEdit":null,"payCertUrl":null,"rebateAmount":null,"demandCance":null,"soAdd":null,"soCance":null,"orderReturn":null,"needCustomerConfirm":false,"measuringUnit":null,"productId":null,"version":null,"mainVersion":null,"agencyConfigId":null,"confirmSign":null,"replySign":null,"agencySign":null,"editIng":null,"editIngStr":null,"jdeType":null,"isElectronicSeal":null,"contractAgreementNo":null,"alesDepartmentNo":null,"alesDepartmentName":null,"salesPersonNo":null,"salesPersonName":null,"customerNote":null,"otherNote":null,"contractAgreementCode":null,"projectName":null,"projectCode":null,"regionId":null,"regionName":null,"productLineBindSign":null,"shipVia":null,"orderSource":null,"userBalance":null,"liquidCode":null,"shipmentTypeStr":null,"specifications":"YHW-3","pageStart":1,"pageSize":5,"changeSgin":null,"yapei":2,"companyId":3,"preemptConfig":null,"productSpec":null,"secondAuditSign":null,"secondAuditById":null,"secondAuditByName":null,"secondAuditTime":null,"secondAuditRemark":null,"secondAuditStatus":null,"rebateRule":"0","rebateControlSign":0,"rebateId":null,"preferenceType":null,"preferenceName":null,"disPrice":null,"lineNum":0,"auditStaySign":0,"fileList":null,"imageUrls":null,"total":null,"submitTimeStr":null,"updateTimeStr":null,"auditTimeStr":null,"acceptTime":null,"acceptTimeStr":null,"paidTime":null,"paidTimeStr":null,"erpHandingTime":null,"erpHandingTimeStr":null,"partShippingTime":null,"partShippingTimeStr":null,"allShippingTime":null,"allShippingTimeStr":null,"pushJdeTimeStr":null,"successTimeStr":null,"onlinePaySuccessTime":null,"onlinePaySuccessTimeStr":null,"bankTransactionSerial":null,"newIsTax":null,"countFormula":null,"countNumber":null,"noTaxRebateAmount":0,"isCollectionAllocation":0,"siteCompanyCode":null,"hospitalOrderType":null,"proofTime":null,"proofURL":null,"proofRemark":null,"proofSign":0,"customerCancelSign":null,"cancelRecords":null,"cancelCount":0,"updateNewTime":null,"updateNewTimeStr":null,"fsDedUseSign":null,"notice":null,"shareType":null,"singleRebateSign":null,"cf":false,"isPre":null,"showDemandAuditLineLabel":false,"orderType":null,"newDiscountRate":null,"oldOrderType":null,"oldNewDiscountRate":null,"pendding":null,"modifySign":null,"refuseType":null,"groupChangeSign":null,"custModify":null,"pushJdeStatusDemandSub":null,"circleGiftSign":0,"delay":null,"limitS":null,"starts":null,"ends":null,"completedS":null,"confirmDays":null,"remindS":null,"skuGroupList":null,"groupProductType":0,"purchaseId":null,"purchaseCode":null,"sdCancelTime":null,"sdTipSign":0,"receiverNote":null,"receiverPhoneNote":null,"receiverAddressNote":null,"flag":null,"sourceStr":null,"addressNoNote":null,"detailIsSpit":false,"spitSgin":null,"distributionType":null,"rebateValidity":null,"orderChangeType":null,"logoIcon":null,"detail":null,"changeBigType":null,"promotionType":1,"activityTotalAmount":0,"couponTotalAmount":0,"userReceiveId":null,"editSgin":null,"snSgin":null,"jdeOutAmount":null,"totalAllPaAmount":null,"diffShowSgin":0,"lineCodeDelete":null,"startTime":null,"endTime":null,"changeSign":null,"distributionId":null,"limitBuySign":0,"companyType":null,"afterSale":null,"csId":null,"sdStatusNodeParamList":null,"ypPromotionTotal":null,"acrossMainCode":null,"forceApprovedSign":0,"circleGiftContinueSgin":0,"customerCharge":null,"onlinePaySign":0,"recodeDemandSkuList":null,"mergeDemandSkuList":null,"inventoryNode":null,"customCode":null,"terminalSource":null,"potentialClientsId":null,"settlementStatus":null,"firstOrderAuditStatus":null,"confirmReceiptSign":null,"confirmReceiptTime":null,"afterSaleDays":null,"deliveryCompletedTime":null,"taxSign":0,"orderSplitSign":0,"demandRebateSkuList":null,"confirmTime":null,"customerPurchaseNo":null,"mustInstallDate":false,"secondAddressList":null,"splitOrMerge":null,"spitOrderSign":null,"productAmountWholeLine":230,"auditCompanyName":null,"auditCompanyNameCode":null,"edit":false,"editProductListFlag":false,"ratio":null,"showMoreAttribute":false,"lastNoTaxDiscountAmount":0,"lastDiscountAmount":0,"showInfo":false,"addressConfig":2,"isExpire":false,"settementQuantity":1,"userBalancePrice":0,"isEdit":true,"discountRateOne":100,"_rebateType":false}],"orderStatus":102,"userReceiveId":null,"userReceiveId2":null,"productAmount":230,"paymentType":0,"accountId":1,"version":null,"receiveBankName":"国药集团北京医疗器械有限公司","receiveBankAccount":"110927396010401 ","addressNumber":93465,"receiverName":"郭红声","receiverContact":"15887223281","receiverAddress":"云南省昆明市高新技术开发区产业基地B1-02-01地块物流园二期项目1号库M1-2-1,M1-2-2号","buyerCartIds":[""],"sellerCompanyCode":"00103","companyId":3}},"id":null,"type":4,"userNo":null,"userName":"BJ0621","draftDemandId":null,"num":1,"price":230,"sellerCompanyName":"国药集团北京医疗器械有限公司","companyCode":"00103","companyId":3}
+#预期结果
+checkDict1: {"success":true,"code":"200","message":"OK"}
+
+#草稿订单查询
+"url2": "/order/public/ownListDemand"
+"payload2": {"sellerCompanyCodes":[],"materialCode":"","productCode":"","productInfoValue":"","manufacturerList":null,"orderNum":"","paymentType":null,"preferenceType":null,"changeSign":null,"mainOrderStatus":8,"shipmentType":null,"pageStart":1,"pageSize":10}
+#预期结果
+checkDict2: {"success":true,"code":"200","message":"OK"}
+
+#草稿订单删除
+"url3": "/order/mall/deleteDraft"
+"payload3": {"demandParentId":"%s"}
+#预期结果
+checkDict3: {"success":true,"code":"200","message":"OK","data":null,"freshToken":null}
+
+#测试场景二:快速下单-需求单取消
+#创建需求单
+"url10": "/order/public/saveAllDemandOrder"
+"payload10": {"国药集团北京医疗器械有限公司":{"datas":[{"demandId":null,"demandParentId":null,"demandParentCode":null,"demandCode":null,"customerId":null,"customerName":null,"customerCode":1127254,"loginName":null,"realName":null,"addressNumber":null,"mobile":null,"productName":null,"productCode":null,"sellerCompanyName":null,"sellerCompanyCode":null,"paymentType":null,"receiveBankName":null,"receiveBankAccount":null,"paymentAmount":"230.0000","productAmount":230,"payableAmount":230,"refundAmount":null,"cancelAmount":null,"discountAmount":0,"orderStatus":null,"refundStatus":null,"receiverName":null,"receiverContact":null,"receiverAddress":null,"remark":null,"revokedReason":null,"auditById":null,"auditByName":null,"auditTime":null,"auditRemark":null,"flhsStatus":null,"pushJdeStatus":null,"createTime":null,"updateTime":null,"submitTime":null,"pushJdeTime":null,"successTime":null,"auditStatus":null,"deleteSign":null,"firstOrderFlag":null,"demandItems":[{"demandSkuId":null,"demandId":null,"distributionId":null,"companyCode":"00103","demandCode":null,"demandParentId":null,"sellerCompanyId":null,"sellerCompanyName":null,"sellerCompanyCode":null,"customerCode":null,"productLineCode":"","productLineName":"","propertyStr":"","storageType":"999","suppDist":null,"productId":314,"productName":"红外测温仪","productCode":"12043728","productNature":null,"brandName":null,"optionStr":"YHW-3","imageUrl":null,"lineNumber":null,"price":230,"rebateId":null,"originalPrice":null,"biddingDiscountTax":null,"salesDiscountTax":null,"quantity":1,"sumQuantity":null,"sendQuantity":null,"lackQuantity":null,"cancelQuantity":null,"cancelAmount":null,"refundQuantity":null,"refundAmount":null,"discountQuantity":null,"discountAmount":null,"subtotal":230,"measuringUnit":"支","auxiliaryMeasuringUnit":null,"procurementMeasuringUnit":null,"pricingMeasuringUnit":null,"materialCode":"","manufacturer":"江苏鱼跃医用仪器有限公司","produceRegisterNum":null,"riskRank":null,"productClassify":null,"createTime":null,"updateTime":null,"deleteSign":null,"calCancelFlag":null,"refundFlag":null,"discountRate":100,"realPay":230,"promotionPrice":null,"promotionTotalPrice":0,"demandParentCode":null,"regionId":null,"regionName":null,"spitSign":null,"activityAmount":0,"couponAmount":0,"activityUnitAmount":0,"couponUnitAmount":null,"activityBasicId":null,"couponSgin":null,"couponSgin2":null,"returnQuantity":null,"returnAmount":null,"customerId":null,"prescription":null,"specifications":"YHW-3","lineCodeDelete":null,"sdOutStorage":null,"licenseNo":null,"demandCodes":null,"areaName":null,"agreementPriceId":null,"offerPrice":null,"orderMark":null,"totalPrice":null,"productLimitBuyList":null,"giftSign":0,"giftProductCode":null,"activityCarDataVoList":[],"orderSource":null,"receiverName":null,"receiverContact":null,"receiverAddress":null,"rebateTripId":null,"allSign":null,"salesReturn":null,"nowAmount":null,"taxSign":0,"plusMinuKey":null,"rebateRule":null,"lockType":null,"lineNumberOrg":null,"changeSgin":null,"addSgin":null,"ptbfa1":null,"ptbfa2":null,"ptbfa3":null,"ptbfa4":null,"ptbfa5":null,"yapeiPriceId":null,"ypLinePromotion":null,"yapeiPrice":null,"companyId":3,"buyerCartId":null,"userReceiveIdx":"","userReceiveIdx2":"","limitNum":null,"productLimitBuyId":null,"alreadyBuyNum":null,"limitBuySign":0,"proposeNum":null,"takeEffectRange":null,"takeEffectTime":null,"endTime1":null,"groupId":null,"fsGroupId":null,"proposalQuantity":null,"proposalSign":0,"manufacturerUserNo":null,"manufacturerUserDesc":null,"manufacturerProductNo":null,"manufacturerProductDesc":null,"manufacturerUserId":null,"manufacturerProductId":null,"busProductCode":null,"paidTime":null,"customerName":null,"paymentAmount":null,"specQuantity":null,"disQuantity":null,"fulfilledQuantity":null,"fulCancelQuantity":null,"couponId":null,"couponId2":null,"limitS":null,"starts":null,"ends":null,"userId":null,"productTax":"","taxRate":0.13,"demandSplitSign":"1","hospitalHopeDate":null,"uniqueKey":null,"productType":null,"activityRuleId":null,"allowanceBeginTime":null,"allowanceEndTime":null,"sign":null,"differenceActivityUserId":null,"groupNumber":1,"groupName":null,"skuGroup":null,"subList":null,"dataJson":null,"skuMergeSign":null,"freseniusPriceId":null,"quantityAndGroupAll":null,"booleaTime":null,"spitSgin":0,"groupSpitSign":0,"sort":0,"circleArea":null,"purchaseEntryId":null,"mustInstallDate":false,"installedDate":null,"installedDateStr":null,"demandLines":null,"subLineNumber":null,"demandSubCode":null,"propertyName":null,"propertyVal":null,"propertyNote":null,"sendManualSign":0,"activityType":0,"giftSettlementMethod":null,"giftInitQuantity":null,"packageCode":null,"giftGroupQuantity":1,"siteCompanyCode":null,"hospitalOrderType":null,"isCollectionAllocation":null,"orderStatus":null,"distributionType":null,"groupCode":null,"groupProductType":null,"pSign":0,"backSign":0,"description":"","stockNumber":null,"rebate":false,"purchaseZeroProductList":[],"prePromotionPrice":null,"prepromotionTotalPrice":0,"preDiscountRate":null,"userBalance":0}],"demandSubItems":null,"rebateDetail":null,"rebateAmountList":null,"productLineCode":"","productLineName":"","auditLoginName":null,"showPurchaseNo":false,"isRebate":null,"isShowReate":null,"taxRate":0.13,"rebateType":0,"paymentAmountWholeLine":230,"discountAmountWholeLine":0,"payableAmountWholeLine":230,"discountRate":null,"singleRebateAmount":null,"isRebateEdit":null,"payCertUrl":null,"rebateAmount":null,"demandCance":null,"soAdd":null,"soCance":null,"orderReturn":null,"needCustomerConfirm":false,"measuringUnit":null,"productId":null,"version":null,"mainVersion":null,"agencyConfigId":null,"confirmSign":null,"replySign":null,"agencySign":null,"editIng":null,"editIngStr":null,"jdeType":null,"isElectronicSeal":null,"contractAgreementNo":null,"alesDepartmentNo":null,"alesDepartmentName":null,"salesPersonNo":null,"salesPersonName":null,"customerNote":null,"otherNote":null,"contractAgreementCode":null,"projectName":null,"projectCode":null,"regionId":null,"regionName":null,"productLineBindSign":null,"shipVia":null,"orderSource":null,"userBalance":null,"liquidCode":null,"shipmentTypeStr":null,"specifications":"YHW-3","pageStart":null,"pageSize":null,"changeSgin":null,"yapei":2,"companyId":3,"preemptConfig":null,"productSpec":null,"secondAuditSign":null,"secondAuditById":null,"secondAuditByName":null,"secondAuditTime":null,"secondAuditRemark":null,"secondAuditStatus":null,"rebateRule":"0","rebateControlSign":0,"rebateId":null,"preferenceType":null,"preferenceName":null,"disPrice":null,"lineNum":0,"auditStaySign":0,"fileList":null,"imageUrls":null,"total":null,"submitTimeStr":null,"updateTimeStr":null,"auditTimeStr":null,"acceptTime":null,"acceptTimeStr":null,"paidTime":null,"paidTimeStr":null,"erpHandingTime":null,"erpHandingTimeStr":null,"partShippingTime":null,"partShippingTimeStr":null,"allShippingTime":null,"allShippingTimeStr":null,"pushJdeTimeStr":null,"successTimeStr":null,"onlinePaySuccessTime":null,"onlinePaySuccessTimeStr":null,"bankTransactionSerial":null,"newIsTax":null,"countFormula":null,"countNumber":null,"noTaxRebateAmount":0,"isCollectionAllocation":0,"siteCompanyCode":null,"hospitalOrderType":null,"proofTime":null,"proofURL":null,"proofRemark":null,"proofSign":0,"customerCancelSign":null,"cancelRecords":null,"cancelCount":0,"updateNewTime":null,"updateNewTimeStr":null,"fsDedUseSign":null,"notice":null,"shareType":null,"singleRebateSign":null,"cf":false,"isPre":null,"showDemandAuditLineLabel":false,"orderType":null,"newDiscountRate":null,"oldOrderType":null,"oldNewDiscountRate":null,"pendding":null,"pushJdeStatusDemandSub":null,"circleGiftSign":0,"delay":null,"limitS":null,"starts":null,"ends":null,"completedS":null,"confirmDays":null,"remindS":null,"skuGroupList":null,"groupProductType":0,"purchaseId":null,"purchaseCode":null,"sdCancelTime":null,"sdTipSign":0,"receiverNote":null,"receiverPhoneNote":null,"receiverAddressNote":null,"flag":null,"sourceStr":null,"addressNoNote":null,"detailIsSpit":false,"spitSgin":null,"distributionType":null,"rebateValidity":null,"orderChangeType":null,"logoIcon":null,"detail":null,"changeBigType":null,"promotionType":1,"activityTotalAmount":0,"couponTotalAmount":0,"userReceiveId":null,"editSgin":null,"snSgin":null,"jdeOutAmount":null,"totalAllPaAmount":null,"diffShowSgin":0,"lineCodeDelete":null,"startTime":null,"endTime":null,"changeSign":null,"distributionId":null,"limitBuySign":0,"companyType":null,"afterSale":null,"csId":null,"sdStatusNodeParamList":null,"ypPromotionTotal":null,"acrossMainCode":null,"forceApprovedSign":0,"circleGiftContinueSgin":0,"customerCharge":null,"onlinePaySign":0,"recodeDemandSkuList":null,"mergeDemandSkuList":null,"inventoryNode":null,"customCode":null,"terminalSource":null,"potentialClientsId":null,"settlementStatus":null,"firstOrderAuditStatus":null,"confirmReceiptSign":null,"confirmReceiptTime":null,"afterSaleDays":null,"deliveryCompletedTime":null,"taxSign":0,"orderSplitSign":0,"demandRebateSkuList":null,"confirmTime":null,"customerPurchaseNo":null,"mustInstallDate":false,"secondAddressList":null,"splitOrMerge":null,"spitOrderSign":null,"productAmountWholeLine":230,"auditCompanyName":null,"auditCompanyNameCode":null,"edit":false,"ratio":null,"showMoreAttribute":false,"lastNoTaxDiscountAmount":0,"lastDiscountAmount":0,"settementQuantity":1,"userBalancePrice":0,"isEdit":true,"discountRateOne":100,"_rebateType":false}],"addressConfig":2,"openPreTaxAmount":0,"promotionOrRebate":1,"promotionType":1,"showChangePromotionOrRebate":false,"couponTotalAmount":0,"activityTotalAmount":0,"totalQuantity":1,"totalPrice":230,"discountAmount":0,"demandItems":[{"demandSkuId":null,"demandId":null,"distributionId":null,"companyCode":"00103","demandCode":null,"demandParentId":null,"sellerCompanyId":null,"sellerCompanyName":null,"sellerCompanyCode":null,"customerCode":null,"productLineCode":"","productLineName":"","propertyStr":"","storageType":"999","suppDist":null,"productId":314,"productName":"红外测温仪","productCode":"12043728","productNature":null,"brandName":null,"optionStr":"YHW-3","imageUrl":null,"lineNumber":null,"price":230,"rebateId":null,"originalPrice":null,"biddingDiscountTax":null,"salesDiscountTax":null,"quantity":1,"sumQuantity":null,"sendQuantity":null,"lackQuantity":null,"cancelQuantity":null,"cancelAmount":null,"refundQuantity":null,"refundAmount":null,"discountQuantity":null,"discountAmount":null,"subtotal":230,"measuringUnit":"支","auxiliaryMeasuringUnit":null,"procurementMeasuringUnit":null,"pricingMeasuringUnit":null,"materialCode":"","manufacturer":"江苏鱼跃医用仪器有限公司","produceRegisterNum":null,"riskRank":null,"productClassify":null,"createTime":null,"updateTime":null,"deleteSign":null,"calCancelFlag":null,"refundFlag":null,"discountRate":100,"realPay":230,"promotionPrice":null,"promotionTotalPrice":0,"demandParentCode":null,"regionId":null,"regionName":null,"spitSign":null,"activityAmount":0,"couponAmount":0,"activityUnitAmount":0,"couponUnitAmount":null,"activityBasicId":null,"couponSgin":null,"couponSgin2":null,"returnQuantity":null,"returnAmount":null,"customerId":null,"prescription":null,"specifications":"YHW-3","lineCodeDelete":null,"sdOutStorage":null,"licenseNo":null,"demandCodes":null,"areaName":null,"agreementPriceId":null,"offerPrice":null,"orderMark":null,"totalPrice":null,"productLimitBuyList":null,"giftSign":0,"giftProductCode":null,"activityCarDataVoList":[],"orderSource":null,"receiverName":null,"receiverContact":null,"receiverAddress":null,"rebateTripId":null,"allSign":null,"salesReturn":null,"nowAmount":null,"taxSign":0,"plusMinuKey":null,"rebateRule":null,"lockType":null,"lineNumberOrg":null,"changeSgin":null,"addSgin":null,"ptbfa1":null,"ptbfa2":null,"ptbfa3":null,"ptbfa4":null,"ptbfa5":null,"yapeiPriceId":null,"ypLinePromotion":null,"yapeiPrice":null,"companyId":3,"buyerCartId":null,"userReceiveIdx":"","userReceiveIdx2":"","limitNum":null,"productLimitBuyId":null,"alreadyBuyNum":null,"limitBuySign":0,"proposeNum":null,"takeEffectRange":null,"takeEffectTime":null,"endTime1":null,"groupId":null,"fsGroupId":null,"proposalQuantity":null,"proposalSign":0,"manufacturerUserNo":null,"manufacturerUserDesc":null,"manufacturerProductNo":null,"manufacturerProductDesc":null,"manufacturerUserId":null,"manufacturerProductId":null,"busProductCode":null,"paidTime":null,"customerName":null,"paymentAmount":null,"specQuantity":null,"disQuantity":null,"fulfilledQuantity":null,"fulCancelQuantity":null,"couponId":null,"couponId2":null,"limitS":null,"starts":null,"ends":null,"userId":null,"productTax":"","taxRate":0.13,"demandSplitSign":"1","hospitalHopeDate":null,"uniqueKey":null,"productType":null,"activityRuleId":null,"allowanceBeginTime":null,"allowanceEndTime":null,"sign":null,"differenceActivityUserId":null,"groupNumber":1,"groupName":null,"skuGroup":null,"subList":null,"dataJson":null,"skuMergeSign":null,"freseniusPriceId":null,"quantityAndGroupAll":null,"booleaTime":null,"spitSgin":0,"groupSpitSign":0,"sort":0,"circleArea":null,"purchaseEntryId":null,"mustInstallDate":false,"installedDate":null,"installedDateStr":null,"demandLines":null,"subLineNumber":null,"demandSubCode":null,"propertyName":null,"propertyVal":null,"propertyNote":null,"sendManualSign":0,"activityType":0,"giftSettlementMethod":null,"giftInitQuantity":null,"packageCode":null,"giftGroupQuantity":1,"siteCompanyCode":null,"hospitalOrderType":null,"isCollectionAllocation":null,"orderStatus":null,"distributionType":null,"groupCode":null,"groupProductType":null,"pSign":0,"backSign":0,"description":"","stockNumber":null,"rebate":false,"purchaseZeroProductList":[],"prePromotionPrice":null,"prepromotionTotalPrice":0,"preDiscountRate":null,"userBalance":0}],"productPrice":"230.0000","fileList":[],"showInfo":false,"pageStart":1,"pageSize":5,"receiveInfo":[{"addressId":3278,"addressNo":93465,"addressName":"云南省昆明市高新技术开发区产业基地B1-02-01地块物流园二期项目1号库M1-2-1,M1-2-2号","provinceCode":null,"userId":null,"companyId":null,"receiverName":"郭红声","address":"","isDefault":0,"type":null,"postcode":null,"mobile":"15887223281","updateDate":null,"updateTime":null,"flag":null,"deleteSign":null,"province":null,"city":null,"area":null,"dateTime":null,"provinceStr":null,"cityStr":null,"areaStr":null,"isJde":0}],"defaultBankInfo":{"accountId":1,"companyId":3,"companyName":"国药集团北京医疗器械有限公司","registeredAddress":"北京市朝阳区安定路39号长新大厦16层","bank":"招商银行股份有限公司北京东直门支行 ","accountName":"国药集团北京医疗器械有限公司","accountNumber":"110927396010401 ","disableSign":0,"deleteSign":0,"createTime":"2020-12-30 17:18:49","updateTime":"2021-05-28 09:54:12","createBy":2,"updateBy":2,"realName":"北京医疗器械公司1admin"},"addressList":[{"addressId":3278,"addressNo":93465,"addressName":null,"provinceCode":null,"userId":null,"companyId":3,"receiverName":"郭红声","address":"云南省昆明市高新技术开发区产业基地B1-02-01地块物流园二期项目1号库M1-2-1,M1-2-2号","isDefault":0,"type":3,"postcode":null,"mobile":"15887223281","updateDate":120211,"updateTime":100440,"flag":null,"deleteSign":null,"province":0,"city":0,"area":0,"dateTime":null,"provinceStr":"","cityStr":"","areaStr":"","isJde":0,"cityList":[],"areaList":[]}],"selecteAddresId":3278,"receiverNote":"郭红声","receiverPhoneNote":"15887223281","receiverAddressNote":"云南省昆明市高新技术开发区产业基地B1-02-01地块物流园二期项目1号库M1-2-1,M1-2-2号","addressNoNote":93465,"province":0,"city":0,"cityList":[],"area":0,"areaList":[],"paymentAmount":"230.0000","taxRate":null,"demands":[{"demandId":null,"demandParentId":null,"demandParentCode":null,"demandCode":null,"customerId":null,"customerName":null,"customerCode":1127254,"loginName":null,"realName":null,"addressNumber":null,"mobile":null,"productName":null,"productCode":null,"sellerCompanyName":null,"sellerCompanyCode":null,"paymentType":null,"receiveBankName":null,"receiveBankAccount":null,"paymentAmount":"230.0000","productAmount":230,"payableAmount":230,"refundAmount":null,"cancelAmount":null,"discountAmount":0,"orderStatus":null,"refundStatus":null,"receiverName":null,"receiverContact":null,"receiverAddress":null,"remark":null,"revokedReason":null,"auditById":null,"auditByName":null,"auditTime":null,"auditRemark":null,"flhsStatus":null,"pushJdeStatus":null,"createTime":null,"updateTime":null,"submitTime":null,"pushJdeTime":null,"successTime":null,"auditStatus":null,"deleteSign":null,"firstOrderFlag":null,"demandItems":[{"demandSkuId":null,"demandId":null,"distributionId":null,"companyCode":"00103","demandCode":null,"demandParentId":null,"sellerCompanyId":null,"sellerCompanyName":null,"sellerCompanyCode":null,"customerCode":null,"productLineCode":"","productLineName":"","propertyStr":"","storageType":"999","suppDist":null,"productId":314,"productName":"红外测温仪","productCode":"12043728","productNature":null,"brandName":null,"optionStr":"YHW-3","imageUrl":null,"lineNumber":null,"price":230,"rebateId":null,"originalPrice":null,"biddingDiscountTax":null,"salesDiscountTax":null,"quantity":1,"sumQuantity":null,"sendQuantity":null,"lackQuantity":null,"cancelQuantity":null,"cancelAmount":null,"refundQuantity":null,"refundAmount":null,"discountQuantity":null,"discountAmount":null,"subtotal":230,"measuringUnit":"支","auxiliaryMeasuringUnit":null,"procurementMeasuringUnit":null,"pricingMeasuringUnit":null,"materialCode":"","manufacturer":"江苏鱼跃医用仪器有限公司","produceRegisterNum":null,"riskRank":null,"productClassify":null,"createTime":null,"updateTime":null,"deleteSign":null,"calCancelFlag":null,"refundFlag":null,"discountRate":100,"realPay":230,"promotionPrice":null,"promotionTotalPrice":0,"demandParentCode":null,"regionId":null,"regionName":null,"spitSign":null,"activityAmount":0,"couponAmount":0,"activityUnitAmount":0,"couponUnitAmount":null,"activityBasicId":null,"couponSgin":null,"couponSgin2":null,"returnQuantity":null,"returnAmount":null,"customerId":null,"prescription":null,"specifications":"YHW-3","lineCodeDelete":null,"sdOutStorage":null,"licenseNo":null,"demandCodes":null,"areaName":null,"agreementPriceId":null,"offerPrice":null,"orderMark":null,"totalPrice":null,"productLimitBuyList":null,"giftSign":0,"giftProductCode":null,"activityCarDataVoList":[],"orderSource":null,"receiverName":null,"receiverContact":null,"receiverAddress":null,"rebateTripId":null,"allSign":null,"salesReturn":null,"nowAmount":null,"taxSign":0,"plusMinuKey":null,"rebateRule":null,"lockType":null,"lineNumberOrg":null,"changeSgin":null,"addSgin":null,"ptbfa1":null,"ptbfa2":null,"ptbfa3":null,"ptbfa4":null,"ptbfa5":null,"yapeiPriceId":null,"ypLinePromotion":null,"yapeiPrice":null,"companyId":3,"buyerCartId":null,"userReceiveIdx":"","userReceiveIdx2":"","limitNum":null,"productLimitBuyId":null,"alreadyBuyNum":null,"limitBuySign":0,"proposeNum":null,"takeEffectRange":null,"takeEffectTime":null,"endTime1":null,"groupId":null,"fsGroupId":null,"proposalQuantity":null,"proposalSign":0,"manufacturerUserNo":null,"manufacturerUserDesc":null,"manufacturerProductNo":null,"manufacturerProductDesc":null,"manufacturerUserId":null,"manufacturerProductId":null,"busProductCode":null,"paidTime":null,"customerName":null,"paymentAmount":null,"specQuantity":null,"disQuantity":null,"fulfilledQuantity":null,"fulCancelQuantity":null,"couponId":null,"couponId2":null,"limitS":null,"starts":null,"ends":null,"userId":null,"productTax":"","taxRate":0.13,"demandSplitSign":"1","hospitalHopeDate":null,"uniqueKey":null,"productType":null,"activityRuleId":null,"allowanceBeginTime":null,"allowanceEndTime":null,"sign":null,"differenceActivityUserId":null,"groupNumber":1,"groupName":null,"skuGroup":null,"subList":null,"dataJson":null,"skuMergeSign":null,"freseniusPriceId":null,"quantityAndGroupAll":null,"booleaTime":null,"spitSgin":0,"groupSpitSign":0,"sort":0,"circleArea":null,"purchaseEntryId":null,"mustInstallDate":false,"installedDate":null,"installedDateStr":null,"demandLines":null,"subLineNumber":null,"demandSubCode":null,"propertyName":null,"propertyVal":null,"propertyNote":null,"sendManualSign":0,"activityType":0,"giftSettlementMethod":null,"giftInitQuantity":null,"packageCode":null,"giftGroupQuantity":1,"siteCompanyCode":null,"hospitalOrderType":null,"isCollectionAllocation":null,"orderStatus":null,"distributionType":null,"groupCode":null,"groupProductType":null,"pSign":0,"backSign":0,"description":"","stockNumber":null,"rebate":false,"purchaseZeroProductList":[],"prePromotionPrice":null,"prepromotionTotalPrice":0,"preDiscountRate":null,"userBalance":0,"orderType":null}],"demandSubItems":null,"rebateDetail":null,"rebateAmountList":null,"productLineCode":"","productLineName":"","auditLoginName":null,"showPurchaseNo":false,"isRebate":null,"isShowReate":null,"taxRate":0.13,"rebateType":0,"paymentAmountWholeLine":230,"discountAmountWholeLine":0,"payableAmountWholeLine":230,"discountRate":null,"singleRebateAmount":null,"isRebateEdit":null,"payCertUrl":null,"rebateAmount":null,"demandCance":null,"soAdd":null,"soCance":null,"orderReturn":null,"needCustomerConfirm":false,"measuringUnit":null,"productId":null,"version":null,"mainVersion":null,"agencyConfigId":null,"confirmSign":null,"replySign":null,"agencySign":null,"editIng":null,"editIngStr":null,"jdeType":null,"isElectronicSeal":null,"contractAgreementNo":null,"alesDepartmentNo":null,"alesDepartmentName":null,"salesPersonNo":null,"salesPersonName":null,"customerNote":null,"otherNote":null,"contractAgreementCode":null,"projectName":null,"projectCode":null,"regionId":null,"regionName":null,"productLineBindSign":null,"shipVia":null,"orderSource":null,"userBalance":null,"liquidCode":null,"shipmentTypeStr":null,"specifications":"YHW-3","pageStart":null,"pageSize":null,"changeSgin":null,"yapei":2,"companyId":3,"preemptConfig":null,"productSpec":null,"secondAuditSign":null,"secondAuditById":null,"secondAuditByName":null,"secondAuditTime":null,"secondAuditRemark":null,"secondAuditStatus":null,"rebateRule":"0","rebateControlSign":0,"rebateId":null,"preferenceType":null,"preferenceName":null,"disPrice":null,"lineNum":0,"auditStaySign":0,"fileList":null,"imageUrls":null,"total":null,"submitTimeStr":null,"updateTimeStr":null,"auditTimeStr":null,"acceptTime":null,"acceptTimeStr":null,"paidTime":null,"paidTimeStr":null,"erpHandingTime":null,"erpHandingTimeStr":null,"partShippingTime":null,"partShippingTimeStr":null,"allShippingTime":null,"allShippingTimeStr":null,"pushJdeTimeStr":null,"successTimeStr":null,"onlinePaySuccessTime":null,"onlinePaySuccessTimeStr":null,"bankTransactionSerial":null,"newIsTax":null,"countFormula":null,"countNumber":null,"noTaxRebateAmount":0,"isCollectionAllocation":0,"siteCompanyCode":null,"hospitalOrderType":null,"proofTime":null,"proofURL":null,"proofRemark":null,"proofSign":0,"customerCancelSign":null,"cancelRecords":null,"cancelCount":0,"updateNewTime":null,"updateNewTimeStr":null,"fsDedUseSign":null,"notice":null,"shareType":null,"singleRebateSign":null,"cf":false,"isPre":null,"showDemandAuditLineLabel":false,"orderType":null,"newDiscountRate":null,"oldOrderType":null,"oldNewDiscountRate":null,"pendding":null,"pushJdeStatusDemandSub":null,"circleGiftSign":0,"delay":null,"limitS":null,"starts":null,"ends":null,"completedS":null,"confirmDays":null,"remindS":null,"skuGroupList":null,"groupProductType":0,"purchaseId":null,"purchaseCode":null,"sdCancelTime":null,"sdTipSign":0,"receiverNote":null,"receiverPhoneNote":null,"receiverAddressNote":null,"flag":null,"sourceStr":null,"addressNoNote":null,"detailIsSpit":false,"spitSgin":null,"distributionType":null,"rebateValidity":null,"orderChangeType":null,"logoIcon":null,"detail":null,"changeBigType":null,"promotionType":1,"activityTotalAmount":0,"couponTotalAmount":0,"userReceiveId":null,"editSgin":null,"snSgin":null,"jdeOutAmount":null,"totalAllPaAmount":null,"diffShowSgin":0,"lineCodeDelete":null,"startTime":null,"endTime":null,"changeSign":null,"distributionId":null,"limitBuySign":0,"companyType":null,"afterSale":null,"csId":null,"sdStatusNodeParamList":null,"ypPromotionTotal":null,"acrossMainCode":null,"forceApprovedSign":0,"circleGiftContinueSgin":0,"customerCharge":null,"onlinePaySign":0,"recodeDemandSkuList":null,"mergeDemandSkuList":null,"inventoryNode":null,"customCode":null,"terminalSource":null,"potentialClientsId":null,"settlementStatus":null,"firstOrderAuditStatus":null,"confirmReceiptSign":null,"confirmReceiptTime":null,"afterSaleDays":null,"deliveryCompletedTime":null,"taxSign":0,"orderSplitSign":0,"demandRebateSkuList":null,"confirmTime":null,"customerPurchaseNo":null,"mustInstallDate":false,"secondAddressList":null,"splitOrMerge":null,"spitOrderSign":null,"productAmountWholeLine":230,"auditCompanyName":null,"auditCompanyNameCode":null,"edit":false,"ratio":null,"showMoreAttribute":false,"lastNoTaxDiscountAmount":0,"lastDiscountAmount":0,"settementQuantity":1,"userBalancePrice":0,"isEdit":true,"discountRateOne":100,"_rebateType":false,"pSign":0}],"orderStatus":102,"userReceiveId":"","userReceiveId2":"","productAmount":230,"paymentType":0,"accountId":1,"receiveBankName":"国药集团北京医疗器械有限公司","receiveBankAccount":"110927396010401 ","addressNumber":93465,"receiverName":"郭红声","receiverContact":"15887223281","receiverAddress":"云南省昆明市高新技术开发区产业基地B1-02-01地块物流园二期项目1号库M1-2-1,M1-2-2号","buyerCartIds":[null],"sellerCompanyCode":"00103","companyId":3}}
+#预期结果
+checkDict10: {"success":true,"code":"200"}
+
+#需求单查询
+"url20": "/order/public/ownListDemand"
+"payload20": {"sellerCompanyCodes":[],"materialCode":"","productCode":"","productInfoValue":"","manufacturerList":null,"orderNum":"%s","paymentType":null,"preferenceType":null,"changeSign":null,"mainOrderStatus":null,"shipmentType":null,"pageStart":1,"pageSize":10}
+#预期结果
+checkDict20: {"success":true,"code":"200","message":"OK","data":{"total":1}}
+
+#需求单取消操作
+#需求单申请取消
+"url30": "/order/public/customerApplyCancel"
+"payload30": {"demandCode":"%s","remark":"需求单取消操作验证"}
+#预期结果
+checkDict30: {"success":true,"code":"200","message":"OK","data":1}
+
+
+#测试场景三:快速下单-审核拒绝
+#创建需求单
+"url4": "/order/public/saveAllDemandOrder"
+"payload4": {"国药集团北京医疗器械有限公司":{"datas":[{"demandId":null,"demandParentId":null,"demandParentCode":null,"demandCode":null,"customerId":null,"customerName":null,"customerCode":1000086,"loginName":null,"realName":null,"addressNumber":null,"mobile":null,"productName":null,"productCode":null,"sellerCompanyName":null,"sellerCompanyCode":null,"paymentType":null,"receiveBankName":null,"receiveBankAccount":null,"paymentAmount":"45.0000","productAmount":45,"payableAmount":45,"refundAmount":null,"cancelAmount":null,"discountAmount":0,"orderStatus":null,"refundStatus":null,"receiverName":null,"receiverContact":null,"receiverAddress":null,"remark":null,"revokedReason":null,"auditById":null,"auditByName":null,"auditTime":null,"auditRemark":null,"flhsStatus":null,"pushJdeStatus":null,"createTime":null,"updateTime":null,"submitTime":null,"pushJdeTime":null,"successTime":null,"auditStatus":null,"deleteSign":null,"firstOrderFlag":null,"demandItems":[{"demandSkuId":null,"demandId":null,"distributionId":null,"companyCode":"00103","demandCode":null,"demandParentId":null,"sellerCompanyId":null,"sellerCompanyName":null,"sellerCompanyCode":null,"customerCode":null,"productLineCode":"","productLineName":"","propertyStr":"","storageType":"999","suppDist":null,"productId":822,"productName":"医用防护口罩","productCode":"13295500","productNature":null,"brandName":null,"optionStr":"密合型拱形(13.5cm×12cm)","imageUrl":null,"lineNumber":null,"price":20,"rebateId":null,"originalPrice":null,"biddingDiscountTax":null,"salesDiscountTax":null,"quantity":1,"sumQuantity":null,"sendQuantity":null,"lackQuantity":null,"cancelQuantity":null,"cancelAmount":null,"refundQuantity":null,"refundAmount":null,"discountQuantity":null,"discountAmount":null,"subtotal":20,"measuringUnit":"支","auxiliaryMeasuringUnit":null,"procurementMeasuringUnit":null,"pricingMeasuringUnit":null,"materialCode":"YYPS20210031","manufacturer":"北京中北博健科贸有限公司","produceRegisterNum":null,"riskRank":null,"productClassify":null,"createTime":null,"updateTime":null,"deleteSign":null,"calCancelFlag":null,"refundFlag":null,"discountRate":100,"realPay":20,"promotionPrice":null,"promotionTotalPrice":0,"demandParentCode":null,"regionId":null,"regionName":null,"spitSign":null,"activityAmount":0,"couponAmount":0,"activityUnitAmount":0,"couponUnitAmount":null,"activityBasicId":null,"couponSgin":null,"couponSgin2":null,"returnQuantity":null,"returnAmount":null,"customerId":null,"prescription":null,"specifications":"密合型拱形(13.5cm×12cm)","lineCodeDelete":null,"sdOutStorage":null,"licenseNo":null,"demandCodes":null,"areaName":null,"agreementPriceId":null,"offerPrice":null,"orderMark":null,"totalPrice":null,"productLimitBuyList":null,"giftSign":0,"giftProductCode":null,"activityCarDataVoList":[],"orderSource":null,"receiverName":null,"receiverContact":null,"receiverAddress":null,"rebateTripId":null,"allSign":null,"salesReturn":null,"nowAmount":null,"taxSign":0,"plusMinuKey":null,"rebateRule":null,"lockType":null,"lineNumberOrg":null,"changeSgin":null,"addSgin":null,"ptbfa1":null,"ptbfa2":null,"ptbfa3":null,"ptbfa4":null,"ptbfa5":null,"yapeiPriceId":null,"ypLinePromotion":null,"yapeiPrice":null,"companyId":3,"buyerCartId":null,"userReceiveIdx":"","userReceiveIdx2":"","limitNum":null,"productLimitBuyId":null,"alreadyBuyNum":null,"limitBuySign":0,"proposeNum":null,"takeEffectRange":null,"takeEffectTime":null,"endTime1":null,"groupId":null,"fsGroupId":null,"proposalQuantity":null,"proposalSign":0,"manufacturerUserNo":null,"manufacturerUserDesc":null,"manufacturerProductNo":null,"manufacturerProductDesc":null,"manufacturerUserId":null,"manufacturerProductId":null,"busProductCode":null,"paidTime":null,"customerName":null,"paymentAmount":null,"specQuantity":null,"disQuantity":null,"fulfilledQuantity":null,"fulCancelQuantity":null,"couponId":null,"couponId2":null,"limitS":null,"starts":null,"ends":null,"userId":null,"productTax":"","taxRate":0,"demandSplitSign":"1","hospitalHopeDate":null,"uniqueKey":null,"productType":null,"activityRuleId":null,"allowanceBeginTime":null,"allowanceEndTime":null,"sign":null,"differenceActivityUserId":null,"groupNumber":1,"groupName":null,"skuGroup":null,"subList":null,"dataJson":null,"skuMergeSign":null,"freseniusPriceId":null,"quantityAndGroupAll":null,"booleaTime":null,"spitSgin":0,"groupSpitSign":0,"purchaseEntryId":null,"activityType":0,"giftSettlementMethod":null,"giftInitQuantity":null,"packageCode":null,"giftGroupQuantity":1,"mustInstallDate":false,"installedDate":null,"installedDateStr":null,"demandLines":null,"subLineNumber":null,"demandSubCode":null,"propertyName":null,"propertyVal":null,"propertyNote":null,"sendManualSign":0,"sort":0,"circleArea":null,"siteCompanyCode":null,"hospitalOrderType":null,"isCollectionAllocation":null,"orderStatus":null,"distributionType":null,"groupCode":null,"groupProductType":null,"pSign":0,"backSign":0,"description":"","stockNumber":null,"rebate":false,"purchaseZeroProductList":[],"prePromotionPrice":null,"prepromotionTotalPrice":0,"preDiscountRate":null,"userBalance":0},{"demandSkuId":null,"demandId":null,"distributionId":null,"companyCode":"00103","demandCode":null,"demandParentId":null,"sellerCompanyId":null,"sellerCompanyName":null,"sellerCompanyCode":null,"customerCode":null,"productLineCode":"","productLineName":"","propertyStr":"","storageType":"999","suppDist":null,"productId":160,"productName":"一次性使用手术衣","productCode":"10980792","productNature":null,"brandName":null,"optionStr":"普通型 M120cm×140cm","imageUrl":null,"lineNumber":null,"price":25,"rebateId":null,"originalPrice":null,"biddingDiscountTax":null,"salesDiscountTax":null,"quantity":1,"sumQuantity":null,"sendQuantity":null,"lackQuantity":null,"cancelQuantity":null,"cancelAmount":null,"refundQuantity":null,"refundAmount":null,"discountQuantity":null,"discountAmount":null,"subtotal":25,"measuringUnit":"件","auxiliaryMeasuringUnit":null,"procurementMeasuringUnit":null,"pricingMeasuringUnit":null,"materialCode":"","manufacturer":"稳健医疗用品股份有限公司","produceRegisterNum":null,"riskRank":null,"productClassify":null,"createTime":null,"updateTime":null,"deleteSign":null,"calCancelFlag":null,"refundFlag":null,"discountRate":100,"realPay":25,"promotionPrice":null,"promotionTotalPrice":0,"demandParentCode":null,"regionId":null,"regionName":null,"spitSign":null,"activityAmount":0,"couponAmount":0,"activityUnitAmount":0,"couponUnitAmount":null,"activityBasicId":null,"couponSgin":null,"couponSgin2":null,"returnQuantity":null,"returnAmount":null,"customerId":null,"prescription":null,"specifications":"普通型 M120cm×140cm","lineCodeDelete":null,"sdOutStorage":null,"licenseNo":null,"demandCodes":null,"areaName":null,"agreementPriceId":null,"offerPrice":null,"orderMark":null,"totalPrice":null,"productLimitBuyList":null,"giftSign":0,"giftProductCode":null,"activityCarDataVoList":[],"orderSource":null,"receiverName":null,"receiverContact":null,"receiverAddress":null,"rebateTripId":null,"allSign":null,"salesReturn":null,"nowAmount":null,"taxSign":0,"plusMinuKey":null,"rebateRule":null,"lockType":null,"lineNumberOrg":null,"changeSgin":null,"addSgin":null,"ptbfa1":null,"ptbfa2":null,"ptbfa3":null,"ptbfa4":null,"ptbfa5":null,"yapeiPriceId":null,"ypLinePromotion":null,"yapeiPrice":null,"companyId":3,"buyerCartId":null,"userReceiveIdx":"","userReceiveIdx2":"","limitNum":null,"productLimitBuyId":null,"alreadyBuyNum":null,"limitBuySign":0,"proposeNum":null,"takeEffectRange":null,"takeEffectTime":null,"endTime1":null,"groupId":null,"fsGroupId":null,"proposalQuantity":null,"proposalSign":0,"manufacturerUserNo":null,"manufacturerUserDesc":null,"manufacturerProductNo":null,"manufacturerProductDesc":null,"manufacturerUserId":null,"manufacturerProductId":null,"busProductCode":null,"paidTime":null,"customerName":null,"paymentAmount":null,"specQuantity":null,"disQuantity":null,"fulfilledQuantity":null,"fulCancelQuantity":null,"couponId":null,"couponId2":null,"limitS":null,"starts":null,"ends":null,"userId":null,"productTax":"","taxRate":0,"demandSplitSign":"1","hospitalHopeDate":null,"uniqueKey":null,"productType":null,"activityRuleId":null,"allowanceBeginTime":null,"allowanceEndTime":null,"sign":null,"differenceActivityUserId":null,"groupNumber":1,"groupName":null,"skuGroup":null,"subList":null,"dataJson":null,"skuMergeSign":null,"freseniusPriceId":null,"quantityAndGroupAll":null,"booleaTime":null,"spitSgin":0,"groupSpitSign":0,"purchaseEntryId":null,"activityType":0,"giftSettlementMethod":null,"giftInitQuantity":null,"packageCode":null,"giftGroupQuantity":1,"mustInstallDate":false,"installedDate":null,"installedDateStr":null,"demandLines":null,"subLineNumber":null,"demandSubCode":null,"propertyName":null,"propertyVal":null,"propertyNote":null,"sendManualSign":0,"sort":0,"circleArea":null,"siteCompanyCode":null,"hospitalOrderType":null,"isCollectionAllocation":null,"orderStatus":null,"distributionType":null,"groupCode":null,"groupProductType":null,"pSign":0,"backSign":0,"description":"","stockNumber":null,"rebate":false,"purchaseZeroProductList":[],"prePromotionPrice":null,"prepromotionTotalPrice":0,"preDiscountRate":null,"userBalance":0}],"demandSubItems":null,"rebateDetail":null,"rebateAmountList":null,"productLineCode":"","productLineName":"","auditLoginName":null,"showPurchaseNo":false,"isRebate":null,"isShowReate":null,"taxRate":0,"rebateType":0,"paymentAmountWholeLine":45,"discountAmountWholeLine":0,"payableAmountWholeLine":45,"discountRate":null,"singleRebateAmount":null,"isRebateEdit":null,"payCertUrl":null,"rebateAmount":null,"demandCance":null,"soAdd":null,"soCance":null,"orderReturn":null,"needCustomerConfirm":false,"measuringUnit":null,"productId":null,"version":null,"mainVersion":null,"agencyConfigId":null,"confirmSign":null,"replySign":null,"agencySign":null,"editIng":null,"editIngStr":null,"jdeType":null,"isElectronicSeal":null,"contractAgreementNo":null,"alesDepartmentNo":null,"alesDepartmentName":null,"salesPersonNo":null,"salesPersonName":null,"customerNote":null,"otherNote":null,"contractAgreementCode":null,"projectName":null,"projectCode":null,"regionId":null,"regionName":null,"productLineBindSign":null,"shipVia":null,"orderSource":null,"userBalance":null,"liquidCode":null,"shipmentTypeStr":null,"specifications":"普通型 M120cm×140cm","pageStart":null,"pageSize":null,"changeSgin":null,"yapei":2,"companyId":3,"preemptConfig":null,"productSpec":null,"secondAuditSign":null,"secondAuditById":null,"secondAuditByName":null,"secondAuditTime":null,"secondAuditRemark":null,"secondAuditStatus":null,"rebateRule":"0","rebateControlSign":0,"rebateId":null,"preferenceType":null,"preferenceName":null,"disPrice":null,"lineNum":0,"auditStaySign":0,"fileList":null,"imageUrls":null,"total":null,"submitTimeStr":null,"updateTimeStr":null,"auditTimeStr":null,"acceptTime":null,"acceptTimeStr":null,"paidTime":null,"paidTimeStr":null,"erpHandingTime":null,"erpHandingTimeStr":null,"partShippingTime":null,"partShippingTimeStr":null,"allShippingTime":null,"allShippingTimeStr":null,"pushJdeTimeStr":null,"successTimeStr":null,"onlinePaySuccessTime":null,"onlinePaySuccessTimeStr":null,"bankTransactionSerial":null,"newIsTax":null,"countFormula":null,"countNumber":null,"noTaxRebateAmount":0,"isCollectionAllocation":0,"siteCompanyCode":null,"hospitalOrderType":null,"proofTime":null,"proofURL":null,"proofRemark":null,"proofSign":0,"customerCancelSign":null,"cancelRecords":null,"cancelCount":0,"updateNewTime":null,"updateNewTimeStr":null,"fsDedUseSign":null,"preDisSign":0,"shareType":null,"singleRebateSign":null,"cf":false,"notice":null,"isPre":null,"showDemandAuditLineLabel":false,"orderType":null,"newDiscountRate":null,"oldOrderType":null,"oldNewDiscountRate":null,"pendding":null,"pushJdeStatusDemandSub":null,"circleGiftSign":0,"delay":null,"limitS":null,"starts":null,"ends":null,"completedS":null,"confirmDays":null,"remindS":null,"skuGroupList":null,"groupProductType":0,"purchaseId":null,"purchaseCode":null,"sdCancelTime":null,"sdTipSign":0,"receiverNote":null,"receiverPhoneNote":null,"receiverAddressNote":null,"flag":null,"sourceStr":null,"addressNoNote":null,"detailIsSpit":false,"spitSgin":null,"distributionType":null,"rebateValidity":null,"orderChangeType":null,"logoIcon":null,"detail":null,"changeBigType":null,"promotionType":1,"activityTotalAmount":0,"couponTotalAmount":0,"userReceiveId":null,"editSgin":null,"snSgin":null,"jdeOutAmount":null,"totalAllPaAmount":null,"diffShowSgin":0,"lineCodeDelete":null,"startTime":null,"endTime":null,"changeSign":null,"distributionId":null,"limitBuySign":0,"companyType":null,"afterSale":null,"csId":null,"sdStatusNodeParamList":null,"ypPromotionTotal":null,"acrossMainCode":null,"forceApprovedSign":0,"circleGiftContinueSgin":0,"customerCharge":null,"onlinePaySign":0,"recodeDemandSkuList":null,"mergeDemandSkuList":null,"inventoryNode":null,"customCode":null,"terminalSource":null,"potentialClientsId":null,"settlementStatus":null,"firstOrderAuditStatus":null,"confirmReceiptSign":null,"confirmReceiptTime":null,"afterSaleDays":null,"deliveryCompletedTime":null,"taxSign":0,"orderSplitSign":0,"demandRebateSkuList":null,"confirmTime":null,"customerPurchaseNo":null,"mustInstallDate":false,"secondAddressList":null,"splitOrMerge":null,"spitOrderSign":null,"auditCompanyName":null,"auditCompanyNameCode":null,"edit":false,"productAmountWholeLine":45,"ratio":null,"showMoreAttribute":false,"lastNoTaxDiscountAmount":0,"lastDiscountAmount":0,"settementQuantity":2,"userBalancePrice":0,"isEdit":true,"discountRateOne":100,"_rebateType":false}],"addressConfig":2,"openPreTaxAmount":0,"promotionOrRebate":1,"promotionType":1,"showChangePromotionOrRebate":false,"couponTotalAmount":0,"activityTotalAmount":0,"totalQuantity":2,"totalPrice":45,"discountAmount":0,"demandItems":[{"demandSkuId":null,"demandId":null,"distributionId":null,"companyCode":"00103","demandCode":null,"demandParentId":null,"sellerCompanyId":null,"sellerCompanyName":null,"sellerCompanyCode":null,"customerCode":null,"productLineCode":"","productLineName":"","propertyStr":"","storageType":"999","suppDist":null,"productId":822,"productName":"医用防护口罩","productCode":"13295500","productNature":null,"brandName":null,"optionStr":"密合型拱形(13.5cm×12cm)","imageUrl":null,"lineNumber":null,"price":20,"rebateId":null,"originalPrice":null,"biddingDiscountTax":null,"salesDiscountTax":null,"quantity":1,"sumQuantity":null,"sendQuantity":null,"lackQuantity":null,"cancelQuantity":null,"cancelAmount":null,"refundQuantity":null,"refundAmount":null,"discountQuantity":null,"discountAmount":null,"subtotal":20,"measuringUnit":"支","auxiliaryMeasuringUnit":null,"procurementMeasuringUnit":null,"pricingMeasuringUnit":null,"materialCode":"YYPS20210031","manufacturer":"北京中北博健科贸有限公司","produceRegisterNum":null,"riskRank":null,"productClassify":null,"createTime":null,"updateTime":null,"deleteSign":null,"calCancelFlag":null,"refundFlag":null,"discountRate":100,"realPay":20,"promotionPrice":null,"promotionTotalPrice":0,"demandParentCode":null,"regionId":null,"regionName":null,"spitSign":null,"activityAmount":0,"couponAmount":0,"activityUnitAmount":0,"couponUnitAmount":null,"activityBasicId":null,"couponSgin":null,"couponSgin2":null,"returnQuantity":null,"returnAmount":null,"customerId":null,"prescription":null,"specifications":"密合型拱形(13.5cm×12cm)","lineCodeDelete":null,"sdOutStorage":null,"licenseNo":null,"demandCodes":null,"areaName":null,"agreementPriceId":null,"offerPrice":null,"orderMark":null,"totalPrice":null,"productLimitBuyList":null,"giftSign":0,"giftProductCode":null,"activityCarDataVoList":[],"orderSource":null,"receiverName":null,"receiverContact":null,"receiverAddress":null,"rebateTripId":null,"allSign":null,"salesReturn":null,"nowAmount":null,"taxSign":0,"plusMinuKey":null,"rebateRule":null,"lockType":null,"lineNumberOrg":null,"changeSgin":null,"addSgin":null,"ptbfa1":null,"ptbfa2":null,"ptbfa3":null,"ptbfa4":null,"ptbfa5":null,"yapeiPriceId":null,"ypLinePromotion":null,"yapeiPrice":null,"companyId":3,"buyerCartId":null,"userReceiveIdx":"","userReceiveIdx2":"","limitNum":null,"productLimitBuyId":null,"alreadyBuyNum":null,"limitBuySign":0,"proposeNum":null,"takeEffectRange":null,"takeEffectTime":null,"endTime1":null,"groupId":null,"fsGroupId":null,"proposalQuantity":null,"proposalSign":0,"manufacturerUserNo":null,"manufacturerUserDesc":null,"manufacturerProductNo":null,"manufacturerProductDesc":null,"manufacturerUserId":null,"manufacturerProductId":null,"busProductCode":null,"paidTime":null,"customerName":null,"paymentAmount":null,"specQuantity":null,"disQuantity":null,"fulfilledQuantity":null,"fulCancelQuantity":null,"couponId":null,"couponId2":null,"limitS":null,"starts":null,"ends":null,"userId":null,"productTax":"","taxRate":0,"demandSplitSign":"1","hospitalHopeDate":null,"uniqueKey":null,"productType":null,"activityRuleId":null,"allowanceBeginTime":null,"allowanceEndTime":null,"sign":null,"differenceActivityUserId":null,"groupNumber":1,"groupName":null,"skuGroup":null,"subList":null,"dataJson":null,"skuMergeSign":null,"freseniusPriceId":null,"quantityAndGroupAll":null,"booleaTime":null,"spitSgin":0,"groupSpitSign":0,"purchaseEntryId":null,"activityType":0,"giftSettlementMethod":null,"giftInitQuantity":null,"packageCode":null,"giftGroupQuantity":1,"mustInstallDate":false,"installedDate":null,"installedDateStr":null,"demandLines":null,"subLineNumber":null,"demandSubCode":null,"propertyName":null,"propertyVal":null,"propertyNote":null,"sendManualSign":0,"sort":0,"circleArea":null,"siteCompanyCode":null,"hospitalOrderType":null,"isCollectionAllocation":null,"orderStatus":null,"distributionType":null,"groupCode":null,"groupProductType":null,"pSign":0,"backSign":0,"description":"","stockNumber":null,"rebate":false,"purchaseZeroProductList":[],"prePromotionPrice":null,"prepromotionTotalPrice":0,"preDiscountRate":null,"userBalance":0},{"demandSkuId":null,"demandId":null,"distributionId":null,"companyCode":"00103","demandCode":null,"demandParentId":null,"sellerCompanyId":null,"sellerCompanyName":null,"sellerCompanyCode":null,"customerCode":null,"productLineCode":"","productLineName":"","propertyStr":"","storageType":"999","suppDist":null,"productId":160,"productName":"一次性使用手术衣","productCode":"10980792","productNature":null,"brandName":null,"optionStr":"普通型 M120cm×140cm","imageUrl":null,"lineNumber":null,"price":25,"rebateId":null,"originalPrice":null,"biddingDiscountTax":null,"salesDiscountTax":null,"quantity":1,"sumQuantity":null,"sendQuantity":null,"lackQuantity":null,"cancelQuantity":null,"cancelAmount":null,"refundQuantity":null,"refundAmount":null,"discountQuantity":null,"discountAmount":null,"subtotal":25,"measuringUnit":"件","auxiliaryMeasuringUnit":null,"procurementMeasuringUnit":null,"pricingMeasuringUnit":null,"materialCode":"","manufacturer":"稳健医疗用品股份有限公司","produceRegisterNum":null,"riskRank":null,"productClassify":null,"createTime":null,"updateTime":null,"deleteSign":null,"calCancelFlag":null,"refundFlag":null,"discountRate":100,"realPay":25,"promotionPrice":null,"promotionTotalPrice":0,"demandParentCode":null,"regionId":null,"regionName":null,"spitSign":null,"activityAmount":0,"couponAmount":0,"activityUnitAmount":0,"couponUnitAmount":null,"activityBasicId":null,"couponSgin":null,"couponSgin2":null,"returnQuantity":null,"returnAmount":null,"customerId":null,"prescription":null,"specifications":"普通型 M120cm×140cm","lineCodeDelete":null,"sdOutStorage":null,"licenseNo":null,"demandCodes":null,"areaName":null,"agreementPriceId":null,"offerPrice":null,"orderMark":null,"totalPrice":null,"productLimitBuyList":null,"giftSign":0,"giftProductCode":null,"activityCarDataVoList":[],"orderSource":null,"receiverName":null,"receiverContact":null,"receiverAddress":null,"rebateTripId":null,"allSign":null,"salesReturn":null,"nowAmount":null,"taxSign":0,"plusMinuKey":null,"rebateRule":null,"lockType":null,"lineNumberOrg":null,"changeSgin":null,"addSgin":null,"ptbfa1":null,"ptbfa2":null,"ptbfa3":null,"ptbfa4":null,"ptbfa5":null,"yapeiPriceId":null,"ypLinePromotion":null,"yapeiPrice":null,"companyId":3,"buyerCartId":null,"userReceiveIdx":"","userReceiveIdx2":"","limitNum":null,"productLimitBuyId":null,"alreadyBuyNum":null,"limitBuySign":0,"proposeNum":null,"takeEffectRange":null,"takeEffectTime":null,"endTime1":null,"groupId":null,"fsGroupId":null,"proposalQuantity":null,"proposalSign":0,"manufacturerUserNo":null,"manufacturerUserDesc":null,"manufacturerProductNo":null,"manufacturerProductDesc":null,"manufacturerUserId":null,"manufacturerProductId":null,"busProductCode":null,"paidTime":null,"customerName":null,"paymentAmount":null,"specQuantity":null,"disQuantity":null,"fulfilledQuantity":null,"fulCancelQuantity":null,"couponId":null,"couponId2":null,"limitS":null,"starts":null,"ends":null,"userId":null,"productTax":"","taxRate":0,"demandSplitSign":"1","hospitalHopeDate":null,"uniqueKey":null,"productType":null,"activityRuleId":null,"allowanceBeginTime":null,"allowanceEndTime":null,"sign":null,"differenceActivityUserId":null,"groupNumber":1,"groupName":null,"skuGroup":null,"subList":null,"dataJson":null,"skuMergeSign":null,"freseniusPriceId":null,"quantityAndGroupAll":null,"booleaTime":null,"spitSgin":0,"groupSpitSign":0,"purchaseEntryId":null,"activityType":0,"giftSettlementMethod":null,"giftInitQuantity":null,"packageCode":null,"giftGroupQuantity":1,"mustInstallDate":false,"installedDate":null,"installedDateStr":null,"demandLines":null,"subLineNumber":null,"demandSubCode":null,"propertyName":null,"propertyVal":null,"propertyNote":null,"sendManualSign":0,"sort":0,"circleArea":null,"siteCompanyCode":null,"hospitalOrderType":null,"isCollectionAllocation":null,"orderStatus":null,"distributionType":null,"groupCode":null,"groupProductType":null,"pSign":0,"backSign":0,"description":"","stockNumber":null,"rebate":false,"purchaseZeroProductList":[],"prePromotionPrice":null,"prepromotionTotalPrice":0,"preDiscountRate":null,"userBalance":0}],"productPrice":"45.0000","fileList":[],"showInfo":false,"pageStart":1,"pageSize":5,"receiveInfo":[],"defaultBankInfo":{"accountId":52,"companyId":3,"companyName":"国药集团联合医疗器械有限公司","registeredAddress":"北京市东城区","bank":"建设银行19","accountName":"建设银行北京支行19","accountNumber":"62231478523685414","disableSign":0,"deleteSign":0,"createTime":"2021-01-25 11:17:26","updateTime":"2021-01-25 11:17:26","createBy":2,"realName":"子公司1admin"},"addressList":[{"addressId":5243,"addressNo":0,"addressName":null,"provinceCode":null,"userId":null,"companyId":3,"receiverName":"叶二娘","address":"嵩山少林室","isDefault":1,"type":5,"postcode":null,"mobile":"13223233434","updateDate":null,"updateTime":0,"flag":null,"deleteSign":null,"province":1681,"city":1797,"area":null,"dateTime":null,"provinceStr":"湖北省","cityStr":"仙桃市","areaStr":null,"isJde":0,"cityList":[{"areaId":1682,"areaCode":"420100","areaName":"武汉市","level":null,"cityCode":null,"center":null,"parentId":null},{"areaId":1696,"areaCode":"420200","areaName":"黄石市","level":null,"cityCode":null,"center":null,"parentId":null},{"areaId":1703,"areaCode":"420300","areaName":"十堰市","level":null,"cityCode":null,"center":null,"parentId":null},{"areaId":1712,"areaCode":"420500","areaName":"宜昌市","level":null,"cityCode":null,"center":null,"parentId":null},{"areaId":1726,"areaCode":"420600","areaName":"襄阳市","level":null,"cityCode":null,"center":null,"parentId":null},{"areaId":1736,"areaCode":"420700","areaName":"鄂州市","level":null,"cityCode":null,"center":null,"parentId":null},{"areaId":1740,"areaCode":"420800","areaName":"荆门市","level":null,"cityCode":null,"center":null,"parentId":null},{"areaId":1746,"areaCode":"420900","areaName":"孝感市","level":null,"cityCode":null,"center":null,"parentId":null},{"areaId":1754,"areaCode":"421000","areaName":"荆州市","level":null,"cityCode":null,"center":null,"parentId":null},{"areaId":1763,"areaCode":"421100","areaName":"黄冈市","level":null,"cityCode":null,"center":null,"parentId":null},{"areaId":1774,"areaCode":"421200","areaName":"咸宁市","level":null,"cityCode":null,"center":null,"parentId":null},{"areaId":1781,"areaCode":"421300","areaName":"随州市","level":null,"cityCode":null,"center":null,"parentId":null},{"areaId":1785,"areaCode":"422800","areaName":"恩施土家族苗族自治州","level":null,"cityCode":null,"center":null,"parentId":null},{"areaId":1794,"areaCode":"429005","areaName":"潜江市","level":null,"cityCode":null,"center":null,"parentId":null},{"areaId":1795,"areaCode":"429021","areaName":"神农架林区","level":null,"cityCode":null,"center":null,"parentId":null},{"areaId":1796,"areaCode":"429006","areaName":"天门市","level":null,"cityCode":null,"center":null,"parentId":null},{"areaId":1797,"areaCode":"429004","areaName":"仙桃市","level":null,"cityCode":null,"center":null,"parentId":null}],"areaList":[]}],"selecteAddresId":5243,"receiverNote":"叶二娘","receiverPhoneNote":"13223233434","receiverAddressNote":"湖北省仙桃市嵩山少林室","addressNoNote":0,"province":1681,"city":1797,"cityList":[{"areaId":1682,"areaCode":"420100","areaName":"武汉市","level":null,"cityCode":null,"center":null,"parentId":null},{"areaId":1696,"areaCode":"420200","areaName":"黄石市","level":null,"cityCode":null,"center":null,"parentId":null},{"areaId":1703,"areaCode":"420300","areaName":"十堰市","level":null,"cityCode":null,"center":null,"parentId":null},{"areaId":1712,"areaCode":"420500","areaName":"宜昌市","level":null,"cityCode":null,"center":null,"parentId":null},{"areaId":1726,"areaCode":"420600","areaName":"襄阳市","level":null,"cityCode":null,"center":null,"parentId":null},{"areaId":1736,"areaCode":"420700","areaName":"鄂州市","level":null,"cityCode":null,"center":null,"parentId":null},{"areaId":1740,"areaCode":"420800","areaName":"荆门市","level":null,"cityCode":null,"center":null,"parentId":null},{"areaId":1746,"areaCode":"420900","areaName":"孝感市","level":null,"cityCode":null,"center":null,"parentId":null},{"areaId":1754,"areaCode":"421000","areaName":"荆州市","level":null,"cityCode":null,"center":null,"parentId":null},{"areaId":1763,"areaCode":"421100","areaName":"黄冈市","level":null,"cityCode":null,"center":null,"parentId":null},{"areaId":1774,"areaCode":"421200","areaName":"咸宁市","level":null,"cityCode":null,"center":null,"parentId":null},{"areaId":1781,"areaCode":"421300","areaName":"随州市","level":null,"cityCode":null,"center":null,"parentId":null},{"areaId":1785,"areaCode":"422800","areaName":"恩施土家族苗族自治州","level":null,"cityCode":null,"center":null,"parentId":null},{"areaId":1794,"areaCode":"429005","areaName":"潜江市","level":null,"cityCode":null,"center":null,"parentId":null},{"areaId":1795,"areaCode":"429021","areaName":"神农架林区","level":null,"cityCode":null,"center":null,"parentId":null},{"areaId":1796,"areaCode":"429006","areaName":"天门市","level":null,"cityCode":null,"center":null,"parentId":null},{"areaId":1797,"areaCode":"429004","areaName":"仙桃市","level":null,"cityCode":null,"center":null,"parentId":null}],"area":null,"areaList":[],"paymentAmount":"45.0000","taxRate":0.17,"demands":[{"demandId":null,"demandParentId":null,"demandParentCode":null,"demandCode":null,"customerId":null,"customerName":null,"customerCode":1000086,"loginName":null,"realName":null,"addressNumber":null,"mobile":null,"productName":null,"productCode":null,"sellerCompanyName":null,"sellerCompanyCode":null,"paymentType":null,"receiveBankName":null,"receiveBankAccount":null,"paymentAmount":"45.0000","productAmount":45,"payableAmount":45,"refundAmount":null,"cancelAmount":null,"discountAmount":0,"orderStatus":null,"refundStatus":null,"receiverName":null,"receiverContact":null,"receiverAddress":null,"remark":null,"revokedReason":null,"auditById":null,"auditByName":null,"auditTime":null,"auditRemark":null,"flhsStatus":null,"pushJdeStatus":null,"createTime":null,"updateTime":null,"submitTime":null,"pushJdeTime":null,"successTime":null,"auditStatus":null,"deleteSign":null,"firstOrderFlag":null,"demandItems":[{"demandSkuId":null,"demandId":null,"distributionId":null,"companyCode":"00103","demandCode":null,"demandParentId":null,"sellerCompanyId":null,"sellerCompanyName":null,"sellerCompanyCode":null,"customerCode":null,"productLineCode":"","productLineName":"","propertyStr":"","storageType":"999","suppDist":null,"productId":822,"productName":"医用防护口罩","productCode":"13295500","productNature":null,"brandName":null,"optionStr":"密合型拱形(13.5cm×12cm)","imageUrl":null,"lineNumber":null,"price":20,"rebateId":null,"originalPrice":null,"biddingDiscountTax":null,"salesDiscountTax":null,"quantity":1,"sumQuantity":null,"sendQuantity":null,"lackQuantity":null,"cancelQuantity":null,"cancelAmount":null,"refundQuantity":null,"refundAmount":null,"discountQuantity":null,"discountAmount":null,"subtotal":20,"measuringUnit":"支","auxiliaryMeasuringUnit":null,"procurementMeasuringUnit":null,"pricingMeasuringUnit":null,"materialCode":"YYPS20210031","manufacturer":"北京中北博健科贸有限公司","produceRegisterNum":null,"riskRank":null,"productClassify":null,"createTime":null,"updateTime":null,"deleteSign":null,"calCancelFlag":null,"refundFlag":null,"discountRate":100,"realPay":20,"promotionPrice":null,"promotionTotalPrice":0,"demandParentCode":null,"regionId":null,"regionName":null,"spitSign":null,"activityAmount":0,"couponAmount":0,"activityUnitAmount":0,"couponUnitAmount":null,"activityBasicId":null,"couponSgin":null,"couponSgin2":null,"returnQuantity":null,"returnAmount":null,"customerId":null,"prescription":null,"specifications":"密合型拱形(13.5cm×12cm)","lineCodeDelete":null,"sdOutStorage":null,"licenseNo":null,"demandCodes":null,"areaName":null,"agreementPriceId":null,"offerPrice":null,"orderMark":null,"totalPrice":null,"productLimitBuyList":null,"giftSign":0,"giftProductCode":null,"activityCarDataVoList":[],"orderSource":null,"receiverName":null,"receiverContact":null,"receiverAddress":null,"rebateTripId":null,"allSign":null,"salesReturn":null,"nowAmount":null,"taxSign":0,"plusMinuKey":null,"rebateRule":null,"lockType":null,"lineNumberOrg":null,"changeSgin":null,"addSgin":null,"ptbfa1":null,"ptbfa2":null,"ptbfa3":null,"ptbfa4":null,"ptbfa5":null,"yapeiPriceId":null,"ypLinePromotion":null,"yapeiPrice":null,"companyId":3,"buyerCartId":null,"userReceiveIdx":"","userReceiveIdx2":"","limitNum":null,"productLimitBuyId":null,"alreadyBuyNum":null,"limitBuySign":0,"proposeNum":null,"takeEffectRange":null,"takeEffectTime":null,"endTime1":null,"groupId":null,"fsGroupId":null,"proposalQuantity":null,"proposalSign":0,"manufacturerUserNo":null,"manufacturerUserDesc":null,"manufacturerProductNo":null,"manufacturerProductDesc":null,"manufacturerUserId":null,"manufacturerProductId":null,"busProductCode":null,"paidTime":null,"customerName":null,"paymentAmount":null,"specQuantity":null,"disQuantity":null,"fulfilledQuantity":null,"fulCancelQuantity":null,"couponId":null,"couponId2":null,"limitS":null,"starts":null,"ends":null,"userId":null,"productTax":"","taxRate":0,"demandSplitSign":"1","hospitalHopeDate":null,"uniqueKey":null,"productType":null,"activityRuleId":null,"allowanceBeginTime":null,"allowanceEndTime":null,"sign":null,"differenceActivityUserId":null,"groupNumber":1,"groupName":null,"skuGroup":null,"subList":null,"dataJson":null,"skuMergeSign":null,"freseniusPriceId":null,"quantityAndGroupAll":null,"booleaTime":null,"spitSgin":0,"groupSpitSign":0,"purchaseEntryId":null,"activityType":0,"giftSettlementMethod":null,"giftInitQuantity":null,"packageCode":null,"giftGroupQuantity":1,"mustInstallDate":false,"installedDate":null,"installedDateStr":null,"demandLines":null,"subLineNumber":null,"demandSubCode":null,"propertyName":null,"propertyVal":null,"propertyNote":null,"sendManualSign":0,"sort":0,"circleArea":null,"siteCompanyCode":null,"hospitalOrderType":null,"isCollectionAllocation":null,"orderStatus":null,"distributionType":null,"groupCode":null,"groupProductType":null,"pSign":0,"backSign":0,"description":"","stockNumber":null,"rebate":false,"purchaseZeroProductList":[],"prePromotionPrice":null,"prepromotionTotalPrice":0,"preDiscountRate":null,"userBalance":0,"orderType":null},{"demandSkuId":null,"demandId":null,"distributionId":null,"companyCode":"00103","demandCode":null,"demandParentId":null,"sellerCompanyId":null,"sellerCompanyName":null,"sellerCompanyCode":null,"customerCode":null,"productLineCode":"","productLineName":"","propertyStr":"","storageType":"999","suppDist":null,"productId":160,"productName":"一次性使用手术衣","productCode":"10980792","productNature":null,"brandName":null,"optionStr":"普通型 M120cm×140cm","imageUrl":null,"lineNumber":null,"price":25,"rebateId":null,"originalPrice":null,"biddingDiscountTax":null,"salesDiscountTax":null,"quantity":1,"sumQuantity":null,"sendQuantity":null,"lackQuantity":null,"cancelQuantity":null,"cancelAmount":null,"refundQuantity":null,"refundAmount":null,"discountQuantity":null,"discountAmount":null,"subtotal":25,"measuringUnit":"件","auxiliaryMeasuringUnit":null,"procurementMeasuringUnit":null,"pricingMeasuringUnit":null,"materialCode":"","manufacturer":"稳健医疗用品股份有限公司","produceRegisterNum":null,"riskRank":null,"productClassify":null,"createTime":null,"updateTime":null,"deleteSign":null,"calCancelFlag":null,"refundFlag":null,"discountRate":100,"realPay":25,"promotionPrice":null,"promotionTotalPrice":0,"demandParentCode":null,"regionId":null,"regionName":null,"spitSign":null,"activityAmount":0,"couponAmount":0,"activityUnitAmount":0,"couponUnitAmount":null,"activityBasicId":null,"couponSgin":null,"couponSgin2":null,"returnQuantity":null,"returnAmount":null,"customerId":null,"prescription":null,"specifications":"普通型 M120cm×140cm","lineCodeDelete":null,"sdOutStorage":null,"licenseNo":null,"demandCodes":null,"areaName":null,"agreementPriceId":null,"offerPrice":null,"orderMark":null,"totalPrice":null,"productLimitBuyList":null,"giftSign":0,"giftProductCode":null,"activityCarDataVoList":[],"orderSource":null,"receiverName":null,"receiverContact":null,"receiverAddress":null,"rebateTripId":null,"allSign":null,"salesReturn":null,"nowAmount":null,"taxSign":0,"plusMinuKey":null,"rebateRule":null,"lockType":null,"lineNumberOrg":null,"changeSgin":null,"addSgin":null,"ptbfa1":null,"ptbfa2":null,"ptbfa3":null,"ptbfa4":null,"ptbfa5":null,"yapeiPriceId":null,"ypLinePromotion":null,"yapeiPrice":null,"companyId":3,"buyerCartId":null,"userReceiveIdx":"","userReceiveIdx2":"","limitNum":null,"productLimitBuyId":null,"alreadyBuyNum":null,"limitBuySign":0,"proposeNum":null,"takeEffectRange":null,"takeEffectTime":null,"endTime1":null,"groupId":null,"fsGroupId":null,"proposalQuantity":null,"proposalSign":0,"manufacturerUserNo":null,"manufacturerUserDesc":null,"manufacturerProductNo":null,"manufacturerProductDesc":null,"manufacturerUserId":null,"manufacturerProductId":null,"busProductCode":null,"paidTime":null,"customerName":null,"paymentAmount":null,"specQuantity":null,"disQuantity":null,"fulfilledQuantity":null,"fulCancelQuantity":null,"couponId":null,"couponId2":null,"limitS":null,"starts":null,"ends":null,"userId":null,"productTax":"","taxRate":0,"demandSplitSign":"1","hospitalHopeDate":null,"uniqueKey":null,"productType":null,"activityRuleId":null,"allowanceBeginTime":null,"allowanceEndTime":null,"sign":null,"differenceActivityUserId":null,"groupNumber":1,"groupName":null,"skuGroup":null,"subList":null,"dataJson":null,"skuMergeSign":null,"freseniusPriceId":null,"quantityAndGroupAll":null,"booleaTime":null,"spitSgin":0,"groupSpitSign":0,"purchaseEntryId":null,"activityType":0,"giftSettlementMethod":null,"giftInitQuantity":null,"packageCode":null,"giftGroupQuantity":1,"mustInstallDate":false,"installedDate":null,"installedDateStr":null,"demandLines":null,"subLineNumber":null,"demandSubCode":null,"propertyName":null,"propertyVal":null,"propertyNote":null,"sendManualSign":0,"sort":0,"circleArea":null,"siteCompanyCode":null,"hospitalOrderType":null,"isCollectionAllocation":null,"orderStatus":null,"distributionType":null,"groupCode":null,"groupProductType":null,"pSign":0,"backSign":0,"description":"","stockNumber":null,"rebate":false,"purchaseZeroProductList":[],"prePromotionPrice":null,"prepromotionTotalPrice":0,"preDiscountRate":null,"userBalance":0,"orderType":null}],"demandSubItems":null,"rebateDetail":null,"rebateAmountList":null,"productLineCode":"","productLineName":"","auditLoginName":null,"showPurchaseNo":false,"isRebate":null,"isShowReate":null,"taxRate":0,"rebateType":0,"paymentAmountWholeLine":45,"discountAmountWholeLine":0,"payableAmountWholeLine":45,"discountRate":null,"singleRebateAmount":null,"isRebateEdit":null,"payCertUrl":null,"rebateAmount":null,"demandCance":null,"soAdd":null,"soCance":null,"orderReturn":null,"needCustomerConfirm":false,"measuringUnit":null,"productId":null,"version":null,"mainVersion":null,"agencyConfigId":null,"confirmSign":null,"replySign":null,"agencySign":null,"editIng":null,"editIngStr":null,"jdeType":null,"isElectronicSeal":null,"contractAgreementNo":null,"alesDepartmentNo":null,"alesDepartmentName":null,"salesPersonNo":null,"salesPersonName":null,"customerNote":null,"otherNote":null,"contractAgreementCode":null,"projectName":null,"projectCode":null,"regionId":null,"regionName":null,"productLineBindSign":null,"shipVia":null,"orderSource":null,"userBalance":null,"liquidCode":null,"shipmentTypeStr":null,"specifications":"普通型 M120cm×140cm","pageStart":null,"pageSize":null,"changeSgin":null,"yapei":2,"companyId":3,"preemptConfig":null,"productSpec":null,"secondAuditSign":null,"secondAuditById":null,"secondAuditByName":null,"secondAuditTime":null,"secondAuditRemark":null,"secondAuditStatus":null,"rebateRule":"0","rebateControlSign":0,"rebateId":null,"preferenceType":null,"preferenceName":null,"disPrice":null,"lineNum":0,"auditStaySign":0,"fileList":null,"imageUrls":null,"total":null,"submitTimeStr":null,"updateTimeStr":null,"auditTimeStr":null,"acceptTime":null,"acceptTimeStr":null,"paidTime":null,"paidTimeStr":null,"erpHandingTime":null,"erpHandingTimeStr":null,"partShippingTime":null,"partShippingTimeStr":null,"allShippingTime":null,"allShippingTimeStr":null,"pushJdeTimeStr":null,"successTimeStr":null,"onlinePaySuccessTime":null,"onlinePaySuccessTimeStr":null,"bankTransactionSerial":null,"newIsTax":null,"countFormula":null,"countNumber":null,"noTaxRebateAmount":0,"isCollectionAllocation":0,"siteCompanyCode":null,"hospitalOrderType":null,"proofTime":null,"proofURL":null,"proofRemark":null,"proofSign":0,"customerCancelSign":null,"cancelRecords":null,"cancelCount":0,"updateNewTime":null,"updateNewTimeStr":null,"fsDedUseSign":null,"preDisSign":0,"shareType":null,"singleRebateSign":null,"cf":false,"notice":null,"isPre":null,"showDemandAuditLineLabel":false,"orderType":null,"newDiscountRate":null,"oldOrderType":null,"oldNewDiscountRate":null,"pendding":null,"pushJdeStatusDemandSub":null,"circleGiftSign":0,"delay":null,"limitS":null,"starts":null,"ends":null,"completedS":null,"confirmDays":null,"remindS":null,"skuGroupList":null,"groupProductType":0,"purchaseId":null,"purchaseCode":null,"sdCancelTime":null,"sdTipSign":0,"receiverNote":null,"receiverPhoneNote":null,"receiverAddressNote":null,"flag":null,"sourceStr":null,"addressNoNote":null,"detailIsSpit":false,"spitSgin":null,"distributionType":null,"rebateValidity":null,"orderChangeType":null,"logoIcon":null,"detail":null,"changeBigType":null,"promotionType":1,"activityTotalAmount":0,"couponTotalAmount":0,"userReceiveId":null,"editSgin":null,"snSgin":null,"jdeOutAmount":null,"totalAllPaAmount":null,"diffShowSgin":0,"lineCodeDelete":null,"startTime":null,"endTime":null,"changeSign":null,"distributionId":null,"limitBuySign":0,"companyType":null,"afterSale":null,"csId":null,"sdStatusNodeParamList":null,"ypPromotionTotal":null,"acrossMainCode":null,"forceApprovedSign":0,"circleGiftContinueSgin":0,"customerCharge":null,"onlinePaySign":0,"recodeDemandSkuList":null,"mergeDemandSkuList":null,"inventoryNode":null,"customCode":null,"terminalSource":null,"potentialClientsId":null,"settlementStatus":null,"firstOrderAuditStatus":null,"confirmReceiptSign":null,"confirmReceiptTime":null,"afterSaleDays":null,"deliveryCompletedTime":null,"taxSign":0,"orderSplitSign":0,"demandRebateSkuList":null,"confirmTime":null,"customerPurchaseNo":null,"mustInstallDate":false,"secondAddressList":null,"splitOrMerge":null,"spitOrderSign":null,"auditCompanyName":null,"auditCompanyNameCode":null,"edit":false,"productAmountWholeLine":45,"ratio":null,"showMoreAttribute":false,"lastNoTaxDiscountAmount":0,"lastDiscountAmount":0,"settementQuantity":2,"userBalancePrice":0,"isEdit":true,"discountRateOne":100,"_rebateType":false,"pSign":0}],"orderStatus":102,"userReceiveId":"","userReceiveId2":"","productAmount":45,"paymentType":0,"accountId":52,"receiveBankName":"建设银行北京支行19","receiveBankAccount":"62231478523685414","buyerCartIds":[null,null],"sellerCompanyCode":"00103","companyId":3}}
+#预期结果
+checkDict4: {"success":true,"code":"200"}
+
+#需求单查询
+"url5": "/order/back/listDemand"
+"payload5": {"times":[null],"listOrderStatus":[],"productName":null,"demandCode":null,"demandParentCode":"%s","customerName":null,"manufacturer":null,"materialCode":null,"sellerCompanyName":null,"produceRegisterNum":null,"productLineName":null,"auditByName":null,"orderSource":null,"changeTypeList":null,"isRebateEdit":null,"jdeType":null,"pageSize":8,"pageStart":1,"orderChangeType":null,"snSgin":null,"changeSign":null,"customerCode":null,"distributionType":null,"busCustomerCode":null,"loginName":null,"cancelSign":0,"shipmentType":null,"startTime":null}
+#预期结果
+checkDict5: {"success":true,"code":"200","message":"OK"}
+
+#需求单审核拒绝操作
+#需求单审核拒绝
+"url6": "/order/back/refuseDemand"
+"payload6": {"demandId":"%s","auditStatus":2,"auditRemark":"审核拒绝测试"}
+#预期结果
+checkDict6: {"success":true,"code":"200","message":"OK","data":1,"freshToken":null}
+
+
+#测试场景四:快速下单一审通过
+#创建需求单
+"url40": "/order/public/saveAllDemandOrder"
+"payload40": {"国药集团联合医疗器械有限公司":{"datas":[{"demandId":null,"demandParentId":null,"demandParentCode":null,"demandCode":null,"customerId":null,"customerName":null,"customerCode":1000086,"loginName":null,"realName":null,"addressNumber":null,"mobile":null,"productName":null,"productCode":null,"sellerCompanyName":null,"sellerCompanyCode":null,"paymentType":null,"receiveBankName":null,"receiveBankAccount":null,"paymentAmount":"68.8800","productAmount":68.88,"payableAmount":68.88,"refundAmount":null,"cancelAmount":null,"discountAmount":0,"orderStatus":null,"refundStatus":null,"receiverName":null,"receiverContact":null,"receiverAddress":null,"remark":null,"revokedReason":null,"auditById":null,"auditByName":null,"auditTime":null,"auditRemark":null,"flhsStatus":null,"pushJdeStatus":null,"createTime":null,"updateTime":null,"submitTime":null,"pushJdeTime":null,"successTime":null,"auditStatus":null,"deleteSign":null,"firstOrderFlag":null,"demandItems":[{"demandSkuId":null,"demandId":null,"distributionId":null,"companyCode":"00102","demandCode":null,"demandParentId":null,"sellerCompanyId":null,"sellerCompanyName":null,"sellerCompanyCode":null,"customerCode":null,"productLineCode":"DS-002","productLineName":"电商产品线","propertyStr":"","storageType":"999","suppDist":null,"productId":9,"productName":"威尔特","productCode":"10145928","productNature":null,"brandName":null,"optionStr":"犬瘟热","imageUrl":"https://pro-cmdc.oss-cn-beijing.aliyuncs.com/productFile/2020/12/30/a5937bce-1fd4-4219-8271-b15d0e9260ca.JPG","lineNumber":null,"price":68.88,"rebateId":null,"originalPrice":null,"biddingDiscountTax":null,"salesDiscountTax":null,"quantity":1,"sumQuantity":null,"sendQuantity":null,"lackQuantity":null,"cancelQuantity":null,"cancelAmount":null,"refundQuantity":null,"refundAmount":null,"discountQuantity":null,"discountAmount":null,"subtotal":68.88,"measuringUnit":"个","auxiliaryMeasuringUnit":null,"procurementMeasuringUnit":null,"pricingMeasuringUnit":null,"materialCode":"","manufacturer":"北京康思润业生物技术有限公司-黄翼","produceRegisterNum":null,"riskRank":null,"productClassify":null,"createTime":null,"updateTime":null,"deleteSign":null,"calCancelFlag":null,"refundFlag":null,"discountRate":100,"realPay":68.88,"promotionPrice":null,"promotionTotalPrice":0,"demandParentCode":null,"regionId":null,"regionName":null,"spitSign":null,"activityAmount":0,"couponAmount":0,"activityUnitAmount":0,"couponUnitAmount":null,"activityBasicId":null,"couponSgin":null,"couponSgin2":null,"returnQuantity":null,"returnAmount":null,"customerId":null,"prescription":null,"specifications":"犬瘟热","lineCodeDelete":null,"sdOutStorage":null,"licenseNo":null,"demandCodes":null,"areaName":null,"agreementPriceId":null,"offerPrice":null,"orderMark":null,"totalPrice":null,"productLimitBuyList":null,"giftSign":0,"giftProductCode":null,"activityCarDataVoList":[],"orderSource":null,"receiverName":null,"receiverContact":null,"receiverAddress":null,"rebateTripId":null,"allSign":null,"salesReturn":null,"nowAmount":null,"taxSign":0,"plusMinuKey":null,"rebateRule":null,"lockType":null,"lineNumberOrg":null,"changeSgin":null,"addSgin":null,"ptbfa1":null,"ptbfa2":null,"ptbfa3":null,"ptbfa4":null,"ptbfa5":null,"yapeiPriceId":null,"ypLinePromotion":null,"yapeiPrice":null,"companyId":2,"buyerCartId":null,"userReceiveIdx":"","userReceiveIdx2":"","limitNum":null,"productLimitBuyId":null,"alreadyBuyNum":null,"limitBuySign":0,"proposeNum":null,"takeEffectRange":null,"takeEffectTime":null,"endTime1":null,"groupId":null,"fsGroupId":null,"proposalQuantity":null,"proposalSign":0,"manufacturerUserNo":null,"manufacturerUserDesc":null,"manufacturerProductNo":null,"manufacturerProductDesc":null,"manufacturerUserId":null,"manufacturerProductId":null,"busProductCode":null,"paidTime":null,"customerName":null,"paymentAmount":null,"specQuantity":null,"disQuantity":null,"fulfilledQuantity":null,"fulCancelQuantity":null,"couponId":null,"couponId2":null,"limitS":null,"starts":null,"ends":null,"userId":null,"productTax":"","taxRate":0.17,"demandSplitSign":"1","hospitalHopeDate":null,"uniqueKey":null,"productType":null,"activityRuleId":null,"allowanceBeginTime":null,"allowanceEndTime":null,"sign":null,"differenceActivityUserId":null,"groupNumber":1,"groupName":null,"skuGroup":null,"subList":null,"dataJson":null,"skuMergeSign":null,"freseniusPriceId":null,"quantityAndGroupAll":null,"booleaTime":null,"spitSgin":0,"groupSpitSign":0,"purchaseEntryId":null,"activityType":0,"giftSettlementMethod":null,"giftInitQuantity":null,"packageCode":null,"giftGroupQuantity":1,"mustInstallDate":false,"installedDate":null,"installedDateStr":null,"demandLines":null,"subLineNumber":null,"demandSubCode":null,"propertyName":null,"propertyVal":null,"propertyNote":null,"sendManualSign":0,"sort":0,"circleArea":null,"siteCompanyCode":null,"hospitalOrderType":null,"isCollectionAllocation":null,"orderStatus":null,"distributionType":null,"groupCode":null,"groupProductType":null,"pSign":0,"backSign":0,"description":"","stockNumber":null,"rebate":true,"purchaseZeroProductList":[],"prePromotionPrice":null,"prepromotionTotalPrice":0,"preDiscountRate":null,"userBalance":0,"useLimitEnd":1,"useLimitStart":0,"maxuseLimit":68.88}],"demandSubItems":null,"rebateDetail":[{"rebateoperaskuid":null,"filialecode":"00102","rebateid":91,"customercode":null,"transactionamount":null,"transactiontype":null,"rebateStartTime":null,"rebateValidity":null,"balance":null,"deletesign":null,"note":null,"createtime":null,"updatetime":null,"demandId":null,"demandCode":null,"relevanceName":null,"rebateName":null,"customerCompanyName":null,"lineCodeDelete":null,"rebateTripId":null,"monNum":null,"relevanceCode":"DS-002","pageSize":null,"pageNum":null,"startTime":null,"endTime":null,"userId":null,"customerCodeList":null,"filialeCodeList":null,"companyName":null,"reSign":null,"demandParentCode":null,"distributionCode":null,"frontNote":null,"backNote":null,"cancelId":null,"effectivetype":null,"validityperiodSign":null,"rebatename":"test100","useLimitStart":0,"useLimitEnd":1,"istax":1,"taxround":0,"isdisposable":0,"productCode":null,"isOperated":null,"userPrice":null,"rebateFalg":null}],"rebateAmountList":null,"productLineCode":"DS-002","productLineName":"电商产品线","auditLoginName":null,"showPurchaseNo":false,"isRebate":null,"isShowReate":null,"taxRate":0.17,"rebateType":1,"paymentAmountWholeLine":68.88,"discountAmountWholeLine":0,"payableAmountWholeLine":68.88,"discountRate":null,"singleRebateAmount":null,"isRebateEdit":null,"payCertUrl":null,"rebateAmount":null,"demandCance":null,"soAdd":null,"soCance":null,"orderReturn":null,"needCustomerConfirm":false,"measuringUnit":null,"productId":null,"version":null,"mainVersion":null,"agencyConfigId":null,"confirmSign":null,"replySign":null,"agencySign":null,"editIng":null,"editIngStr":null,"jdeType":null,"isElectronicSeal":null,"contractAgreementNo":null,"alesDepartmentNo":null,"alesDepartmentName":null,"salesPersonNo":null,"salesPersonName":null,"customerNote":null,"otherNote":null,"contractAgreementCode":null,"projectName":null,"projectCode":null,"regionId":null,"regionName":null,"productLineBindSign":null,"shipVia":null,"orderSource":null,"userBalance":null,"liquidCode":null,"shipmentTypeStr":null,"specifications":"犬瘟热","pageStart":null,"pageSize":null,"changeSgin":null,"yapei":2,"companyId":2,"preemptConfig":null,"productSpec":null,"secondAuditSign":null,"secondAuditById":null,"secondAuditByName":null,"secondAuditTime":null,"secondAuditRemark":null,"secondAuditStatus":null,"rebateRule":"1;2;3;4","rebateControlSign":0,"rebateId":null,"preferenceType":null,"preferenceName":null,"disPrice":null,"lineNum":0,"auditStaySign":0,"fileList":null,"imageUrls":null,"total":null,"submitTimeStr":null,"updateTimeStr":null,"auditTimeStr":null,"acceptTime":null,"acceptTimeStr":null,"paidTime":null,"paidTimeStr":null,"erpHandingTime":null,"erpHandingTimeStr":null,"partShippingTime":null,"partShippingTimeStr":null,"allShippingTime":null,"allShippingTimeStr":null,"pushJdeTimeStr":null,"successTimeStr":null,"onlinePaySuccessTime":null,"onlinePaySuccessTimeStr":null,"bankTransactionSerial":null,"newIsTax":1,"countFormula":4,"countNumber":0.13,"noTaxRebateAmount":0,"isCollectionAllocation":0,"siteCompanyCode":null,"hospitalOrderType":null,"proofTime":null,"proofURL":null,"proofRemark":null,"proofSign":0,"customerCancelSign":null,"cancelRecords":null,"cancelCount":0,"updateNewTime":null,"updateNewTimeStr":null,"fsDedUseSign":null,"preDisSign":0,"shareType":1,"singleRebateSign":1,"cf":false,"notice":"1柔柔弱弱","isPre":null,"showDemandAuditLineLabel":false,"orderType":null,"newDiscountRate":null,"oldOrderType":null,"oldNewDiscountRate":null,"pendding":null,"pushJdeStatusDemandSub":null,"circleGiftSign":0,"delay":null,"limitS":null,"starts":null,"ends":null,"completedS":null,"confirmDays":null,"remindS":null,"skuGroupList":null,"groupProductType":0,"purchaseId":null,"purchaseCode":null,"sdCancelTime":null,"sdTipSign":0,"receiverNote":null,"receiverPhoneNote":null,"receiverAddressNote":null,"flag":null,"sourceStr":null,"addressNoNote":null,"detailIsSpit":false,"spitSgin":null,"distributionType":null,"rebateValidity":null,"orderChangeType":null,"logoIcon":null,"detail":null,"changeBigType":null,"promotionType":1,"activityTotalAmount":0,"couponTotalAmount":0,"userReceiveId":null,"editSgin":null,"snSgin":null,"jdeOutAmount":null,"totalAllPaAmount":null,"diffShowSgin":0,"lineCodeDelete":null,"startTime":null,"endTime":null,"changeSign":null,"distributionId":null,"limitBuySign":0,"companyType":null,"afterSale":null,"csId":null,"sdStatusNodeParamList":null,"ypPromotionTotal":null,"acrossMainCode":null,"forceApprovedSign":0,"circleGiftContinueSgin":0,"customerCharge":null,"onlinePaySign":0,"recodeDemandSkuList":null,"mergeDemandSkuList":null,"inventoryNode":null,"customCode":null,"terminalSource":null,"potentialClientsId":null,"settlementStatus":null,"firstOrderAuditStatus":null,"confirmReceiptSign":null,"confirmReceiptTime":null,"afterSaleDays":null,"deliveryCompletedTime":null,"taxSign":0,"orderSplitSign":0,"demandRebateSkuList":null,"confirmTime":null,"customerPurchaseNo":null,"mustInstallDate":false,"secondAddressList":null,"splitOrMerge":null,"spitOrderSign":null,"edit":false,"productAmountWholeLine":68.88,"auditCompanyName":null,"auditCompanyNameCode":null,"ratio":null,"showMoreAttribute":false,"lastNoTaxDiscountAmount":0,"lastDiscountAmount":0,"settementQuantity":1,"userBalancePrice":0,"isEdit":true,"discountRateOne":100,"_rebateType":true}],"addressConfig":1,"openPreTaxAmount":1,"notice":"888品类齐全,轻松购物快多仓直发,极速配送好正品行货,精致服务省天天低价,畅选无忧品类齐全,轻松购物快多仓直发,极速配送好正品行货,精致服务省天天低价,畅选无忧品类齐全,轻松购物快多仓直发,极速配送好正品行货,精致服务省天天低价,畅选无忧品类齐全,轻松购物快多仓直发,极速配送好正品行货,精致服务省天天低价,畅选无忧品类齐全,轻松购物快多仓直发,极速配送好正品行货,精致服","promotionOrRebate":1,"promotionType":1,"showChangePromotionOrRebate":false,"couponTotalAmount":0,"activityTotalAmount":0,"totalQuantity":1,"totalPrice":68.88,"discountAmount":0,"demandItems":[{"demandSkuId":null,"demandId":null,"distributionId":null,"companyCode":"00102","demandCode":null,"demandParentId":null,"sellerCompanyId":null,"sellerCompanyName":null,"sellerCompanyCode":null,"customerCode":null,"productLineCode":"DS-002","productLineName":"电商产品线","propertyStr":"","storageType":"999","suppDist":null,"productId":9,"productName":"威尔特","productCode":"10145928","productNature":null,"brandName":null,"optionStr":"犬瘟热","imageUrl":"https://pro-cmdc.oss-cn-beijing.aliyuncs.com/productFile/2020/12/30/a5937bce-1fd4-4219-8271-b15d0e9260ca.JPG","lineNumber":null,"price":68.88,"rebateId":null,"originalPrice":null,"biddingDiscountTax":null,"salesDiscountTax":null,"quantity":1,"sumQuantity":null,"sendQuantity":null,"lackQuantity":null,"cancelQuantity":null,"cancelAmount":null,"refundQuantity":null,"refundAmount":null,"discountQuantity":null,"discountAmount":null,"subtotal":68.88,"measuringUnit":"个","auxiliaryMeasuringUnit":null,"procurementMeasuringUnit":null,"pricingMeasuringUnit":null,"materialCode":"","manufacturer":"北京康思润业生物技术有限公司-黄翼","produceRegisterNum":null,"riskRank":null,"productClassify":null,"createTime":null,"updateTime":null,"deleteSign":null,"calCancelFlag":null,"refundFlag":null,"discountRate":100,"realPay":68.88,"promotionPrice":null,"promotionTotalPrice":0,"demandParentCode":null,"regionId":null,"regionName":null,"spitSign":null,"activityAmount":0,"couponAmount":0,"activityUnitAmount":0,"couponUnitAmount":null,"activityBasicId":null,"couponSgin":null,"couponSgin2":null,"returnQuantity":null,"returnAmount":null,"customerId":null,"prescription":null,"specifications":"犬瘟热","lineCodeDelete":null,"sdOutStorage":null,"licenseNo":null,"demandCodes":null,"areaName":null,"agreementPriceId":null,"offerPrice":null,"orderMark":null,"totalPrice":null,"productLimitBuyList":null,"giftSign":0,"giftProductCode":null,"activityCarDataVoList":[],"orderSource":null,"receiverName":null,"receiverContact":null,"receiverAddress":null,"rebateTripId":null,"allSign":null,"salesReturn":null,"nowAmount":null,"taxSign":0,"plusMinuKey":null,"rebateRule":null,"lockType":null,"lineNumberOrg":null,"changeSgin":null,"addSgin":null,"ptbfa1":null,"ptbfa2":null,"ptbfa3":null,"ptbfa4":null,"ptbfa5":null,"yapeiPriceId":null,"ypLinePromotion":null,"yapeiPrice":null,"companyId":2,"buyerCartId":null,"userReceiveIdx":"","userReceiveIdx2":"","limitNum":null,"productLimitBuyId":null,"alreadyBuyNum":null,"limitBuySign":0,"proposeNum":null,"takeEffectRange":null,"takeEffectTime":null,"endTime1":null,"groupId":null,"fsGroupId":null,"proposalQuantity":null,"proposalSign":0,"manufacturerUserNo":null,"manufacturerUserDesc":null,"manufacturerProductNo":null,"manufacturerProductDesc":null,"manufacturerUserId":null,"manufacturerProductId":null,"busProductCode":null,"paidTime":null,"customerName":null,"paymentAmount":null,"specQuantity":null,"disQuantity":null,"fulfilledQuantity":null,"fulCancelQuantity":null,"couponId":null,"couponId2":null,"limitS":null,"starts":null,"ends":null,"userId":null,"productTax":"","taxRate":0.17,"demandSplitSign":"1","hospitalHopeDate":null,"uniqueKey":null,"productType":null,"activityRuleId":null,"allowanceBeginTime":null,"allowanceEndTime":null,"sign":null,"differenceActivityUserId":null,"groupNumber":1,"groupName":null,"skuGroup":null,"subList":null,"dataJson":null,"skuMergeSign":null,"freseniusPriceId":null,"quantityAndGroupAll":null,"booleaTime":null,"spitSgin":0,"groupSpitSign":0,"purchaseEntryId":null,"activityType":0,"giftSettlementMethod":null,"giftInitQuantity":null,"packageCode":null,"giftGroupQuantity":1,"mustInstallDate":false,"installedDate":null,"installedDateStr":null,"demandLines":null,"subLineNumber":null,"demandSubCode":null,"propertyName":null,"propertyVal":null,"propertyNote":null,"sendManualSign":0,"sort":0,"circleArea":null,"siteCompanyCode":null,"hospitalOrderType":null,"isCollectionAllocation":null,"orderStatus":null,"distributionType":null,"groupCode":null,"groupProductType":null,"pSign":0,"backSign":0,"description":"","stockNumber":null,"rebate":true,"purchaseZeroProductList":[],"prePromotionPrice":null,"prepromotionTotalPrice":0,"preDiscountRate":null,"userBalance":0,"useLimitEnd":1,"useLimitStart":0,"maxuseLimit":68.88}],"productPrice":"68.8800","fileList":[],"showInfo":false,"pageStart":1,"pageSize":5,"receiveInfo":[{"addressId":16309,"addressNo":19199,"addressName":"武汉市洪山区高新大道777号","provinceCode":null,"userId":null,"companyId":null,"receiverName":"萧峰","address":"","isDefault":0,"type":null,"postcode":null,"mobile":"13878900987","updateDate":null,"updateTime":null,"flag":null,"deleteSign":null,"province":null,"city":null,"area":null,"dateTime":null,"provinceStr":null,"cityStr":null,"areaStr":null,"isJde":0}],"defaultBankInfo":{"accountId":32,"companyId":2,"companyName":"国药集团联合医疗器械有限公司","registeredAddress":"北京市顺义区金航中路3号院社科中心1号楼3单元2层301","bank":"中国工商银行北京支行","accountName":"国药集团联合医疗器械有限公司","accountNumber":"108902839271937437","disableSign":0,"deleteSign":0,"createTime":"2021-01-12 16:12:03","updateTime":"2021-01-12 16:12:33","createBy":2,"updateBy":2,"realName":"子公司1admin"},"addressList":[{"addressId":16309,"addressNo":19199,"addressName":null,"provinceCode":null,"userId":null,"companyId":2,"receiverName":"萧峰","address":"武汉市洪山区高新大道777号","isDefault":0,"type":3,"postcode":null,"mobile":"13878900987","updateDate":123258,"updateTime":174051,"flag":null,"deleteSign":null,"province":0,"city":0,"area":0,"dateTime":null,"provinceStr":"","cityStr":"","areaStr":"","isJde":0,"cityList":[],"areaList":[]}],"selecteAddresId":16309,"receiverNote":"萧峰","receiverPhoneNote":"13878900987","receiverAddressNote":"武汉市洪山区高新大道777号","addressNoNote":19199,"province":0,"city":0,"cityList":[],"area":0,"areaList":[],"paymentAmount":"68.8800","taxRate":0.17,"demands":[{"demandId":null,"demandParentId":null,"demandParentCode":null,"demandCode":null,"customerId":null,"customerName":null,"customerCode":1000086,"loginName":null,"realName":null,"addressNumber":null,"mobile":null,"productName":null,"productCode":null,"sellerCompanyName":null,"sellerCompanyCode":null,"paymentType":null,"receiveBankName":null,"receiveBankAccount":null,"paymentAmount":"68.8800","productAmount":68.88,"payableAmount":68.88,"refundAmount":null,"cancelAmount":null,"discountAmount":0,"orderStatus":null,"refundStatus":null,"receiverName":null,"receiverContact":null,"receiverAddress":null,"remark":null,"revokedReason":null,"auditById":null,"auditByName":null,"auditTime":null,"auditRemark":null,"flhsStatus":null,"pushJdeStatus":null,"createTime":null,"updateTime":null,"submitTime":null,"pushJdeTime":null,"successTime":null,"auditStatus":null,"deleteSign":null,"firstOrderFlag":null,"demandItems":[{"demandSkuId":null,"demandId":null,"distributionId":null,"companyCode":"00102","demandCode":null,"demandParentId":null,"sellerCompanyId":null,"sellerCompanyName":null,"sellerCompanyCode":null,"customerCode":null,"productLineCode":"DS-002","productLineName":"电商产品线","propertyStr":"","storageType":"999","suppDist":null,"productId":9,"productName":"威尔特","productCode":"10145928","productNature":null,"brandName":null,"optionStr":"犬瘟热","imageUrl":"https://pro-cmdc.oss-cn-beijing.aliyuncs.com/productFile/2020/12/30/a5937bce-1fd4-4219-8271-b15d0e9260ca.JPG","lineNumber":null,"price":68.88,"rebateId":null,"originalPrice":null,"biddingDiscountTax":null,"salesDiscountTax":null,"quantity":1,"sumQuantity":null,"sendQuantity":null,"lackQuantity":null,"cancelQuantity":null,"cancelAmount":null,"refundQuantity":null,"refundAmount":null,"discountQuantity":null,"discountAmount":null,"subtotal":68.88,"measuringUnit":"个","auxiliaryMeasuringUnit":null,"procurementMeasuringUnit":null,"pricingMeasuringUnit":null,"materialCode":"","manufacturer":"北京康思润业生物技术有限公司-黄翼","produceRegisterNum":null,"riskRank":null,"productClassify":null,"createTime":null,"updateTime":null,"deleteSign":null,"calCancelFlag":null,"refundFlag":null,"discountRate":100,"realPay":68.88,"promotionPrice":null,"promotionTotalPrice":0,"demandParentCode":null,"regionId":null,"regionName":null,"spitSign":null,"activityAmount":0,"couponAmount":0,"activityUnitAmount":0,"couponUnitAmount":null,"activityBasicId":null,"couponSgin":null,"couponSgin2":null,"returnQuantity":null,"returnAmount":null,"customerId":null,"prescription":null,"specifications":"犬瘟热","lineCodeDelete":null,"sdOutStorage":null,"licenseNo":null,"demandCodes":null,"areaName":null,"agreementPriceId":null,"offerPrice":null,"orderMark":null,"totalPrice":null,"productLimitBuyList":null,"giftSign":0,"giftProductCode":null,"activityCarDataVoList":[],"orderSource":null,"receiverName":null,"receiverContact":null,"receiverAddress":null,"rebateTripId":null,"allSign":null,"salesReturn":null,"nowAmount":null,"taxSign":0,"plusMinuKey":null,"rebateRule":null,"lockType":null,"lineNumberOrg":null,"changeSgin":null,"addSgin":null,"ptbfa1":null,"ptbfa2":null,"ptbfa3":null,"ptbfa4":null,"ptbfa5":null,"yapeiPriceId":null,"ypLinePromotion":null,"yapeiPrice":null,"companyId":2,"buyerCartId":null,"userReceiveIdx":"","userReceiveIdx2":"","limitNum":null,"productLimitBuyId":null,"alreadyBuyNum":null,"limitBuySign":0,"proposeNum":null,"takeEffectRange":null,"takeEffectTime":null,"endTime1":null,"groupId":null,"fsGroupId":null,"proposalQuantity":null,"proposalSign":0,"manufacturerUserNo":null,"manufacturerUserDesc":null,"manufacturerProductNo":null,"manufacturerProductDesc":null,"manufacturerUserId":null,"manufacturerProductId":null,"busProductCode":null,"paidTime":null,"customerName":null,"paymentAmount":null,"specQuantity":null,"disQuantity":null,"fulfilledQuantity":null,"fulCancelQuantity":null,"couponId":null,"couponId2":null,"limitS":null,"starts":null,"ends":null,"userId":null,"productTax":"","taxRate":0.17,"demandSplitSign":"1","hospitalHopeDate":null,"uniqueKey":null,"productType":null,"activityRuleId":null,"allowanceBeginTime":null,"allowanceEndTime":null,"sign":null,"differenceActivityUserId":null,"groupNumber":1,"groupName":null,"skuGroup":null,"subList":null,"dataJson":null,"skuMergeSign":null,"freseniusPriceId":null,"quantityAndGroupAll":null,"booleaTime":null,"spitSgin":0,"groupSpitSign":0,"purchaseEntryId":null,"activityType":0,"giftSettlementMethod":null,"giftInitQuantity":null,"packageCode":null,"giftGroupQuantity":1,"mustInstallDate":false,"installedDate":null,"installedDateStr":null,"demandLines":null,"subLineNumber":null,"demandSubCode":null,"propertyName":null,"propertyVal":null,"propertyNote":null,"sendManualSign":0,"sort":0,"circleArea":null,"siteCompanyCode":null,"hospitalOrderType":null,"isCollectionAllocation":null,"orderStatus":null,"distributionType":null,"groupCode":null,"groupProductType":null,"pSign":0,"backSign":0,"description":"","stockNumber":null,"rebate":true,"purchaseZeroProductList":[],"prePromotionPrice":null,"prepromotionTotalPrice":0,"preDiscountRate":null,"userBalance":0,"useLimitEnd":1,"useLimitStart":0,"maxuseLimit":68.88,"orderType":null}],"demandSubItems":null,"rebateDetail":[{"rebateoperaskuid":null,"filialecode":"00102","rebateid":91,"customercode":null,"transactionamount":null,"transactiontype":null,"rebateStartTime":null,"rebateValidity":null,"balance":null,"deletesign":null,"note":null,"createtime":null,"updatetime":null,"demandId":null,"demandCode":null,"relevanceName":null,"rebateName":null,"customerCompanyName":null,"lineCodeDelete":null,"rebateTripId":null,"monNum":null,"relevanceCode":"DS-002","pageSize":null,"pageNum":null,"startTime":null,"endTime":null,"userId":null,"customerCodeList":null,"filialeCodeList":null,"companyName":null,"reSign":null,"demandParentCode":null,"distributionCode":null,"frontNote":null,"backNote":null,"cancelId":null,"effectivetype":null,"validityperiodSign":null,"rebatename":"test100","useLimitStart":0,"useLimitEnd":1,"istax":1,"taxround":0,"isdisposable":0,"productCode":null,"isOperated":null,"userPrice":null,"rebateFalg":null}],"rebateAmountList":null,"productLineCode":"DS-002","productLineName":"电商产品线","auditLoginName":null,"showPurchaseNo":false,"isRebate":null,"isShowReate":null,"taxRate":0.17,"rebateType":1,"paymentAmountWholeLine":68.88,"discountAmountWholeLine":0,"payableAmountWholeLine":68.88,"discountRate":null,"singleRebateAmount":null,"isRebateEdit":null,"payCertUrl":null,"rebateAmount":null,"demandCance":null,"soAdd":null,"soCance":null,"orderReturn":null,"needCustomerConfirm":false,"measuringUnit":null,"productId":null,"version":null,"mainVersion":null,"agencyConfigId":null,"confirmSign":null,"replySign":null,"agencySign":null,"editIng":null,"editIngStr":null,"jdeType":null,"isElectronicSeal":null,"contractAgreementNo":null,"alesDepartmentNo":null,"alesDepartmentName":null,"salesPersonNo":null,"salesPersonName":null,"customerNote":null,"otherNote":null,"contractAgreementCode":null,"projectName":null,"projectCode":null,"regionId":null,"regionName":null,"productLineBindSign":null,"shipVia":null,"orderSource":null,"userBalance":null,"liquidCode":null,"shipmentTypeStr":null,"specifications":"犬瘟热","pageStart":null,"pageSize":null,"changeSgin":null,"yapei":2,"companyId":2,"preemptConfig":null,"productSpec":null,"secondAuditSign":null,"secondAuditById":null,"secondAuditByName":null,"secondAuditTime":null,"secondAuditRemark":null,"secondAuditStatus":null,"rebateRule":"1;2;3;4","rebateControlSign":0,"rebateId":null,"preferenceType":null,"preferenceName":null,"disPrice":null,"lineNum":0,"auditStaySign":0,"fileList":null,"imageUrls":null,"total":null,"submitTimeStr":null,"updateTimeStr":null,"auditTimeStr":null,"acceptTime":null,"acceptTimeStr":null,"paidTime":null,"paidTimeStr":null,"erpHandingTime":null,"erpHandingTimeStr":null,"partShippingTime":null,"partShippingTimeStr":null,"allShippingTime":null,"allShippingTimeStr":null,"pushJdeTimeStr":null,"successTimeStr":null,"onlinePaySuccessTime":null,"onlinePaySuccessTimeStr":null,"bankTransactionSerial":null,"newIsTax":1,"countFormula":4,"countNumber":0.13,"noTaxRebateAmount":0,"isCollectionAllocation":0,"siteCompanyCode":null,"hospitalOrderType":null,"proofTime":null,"proofURL":null,"proofRemark":null,"proofSign":0,"customerCancelSign":null,"cancelRecords":null,"cancelCount":0,"updateNewTime":null,"updateNewTimeStr":null,"fsDedUseSign":null,"preDisSign":0,"shareType":1,"singleRebateSign":1,"cf":false,"notice":"1柔柔弱弱","isPre":null,"showDemandAuditLineLabel":false,"orderType":null,"newDiscountRate":null,"oldOrderType":null,"oldNewDiscountRate":null,"pendding":null,"pushJdeStatusDemandSub":null,"circleGiftSign":0,"delay":null,"limitS":null,"starts":null,"ends":null,"completedS":null,"confirmDays":null,"remindS":null,"skuGroupList":null,"groupProductType":0,"purchaseId":null,"purchaseCode":null,"sdCancelTime":null,"sdTipSign":0,"receiverNote":null,"receiverPhoneNote":null,"receiverAddressNote":null,"flag":null,"sourceStr":null,"addressNoNote":null,"detailIsSpit":false,"spitSgin":null,"distributionType":null,"rebateValidity":null,"orderChangeType":null,"logoIcon":null,"detail":null,"changeBigType":null,"promotionType":1,"activityTotalAmount":0,"couponTotalAmount":0,"userReceiveId":null,"editSgin":null,"snSgin":null,"jdeOutAmount":null,"totalAllPaAmount":null,"diffShowSgin":0,"lineCodeDelete":null,"startTime":null,"endTime":null,"changeSign":null,"distributionId":null,"limitBuySign":0,"companyType":null,"afterSale":null,"csId":null,"sdStatusNodeParamList":null,"ypPromotionTotal":null,"acrossMainCode":null,"forceApprovedSign":0,"circleGiftContinueSgin":0,"customerCharge":null,"onlinePaySign":0,"recodeDemandSkuList":null,"mergeDemandSkuList":null,"inventoryNode":null,"customCode":null,"terminalSource":null,"potentialClientsId":null,"settlementStatus":null,"firstOrderAuditStatus":null,"confirmReceiptSign":null,"confirmReceiptTime":null,"afterSaleDays":null,"deliveryCompletedTime":null,"taxSign":0,"orderSplitSign":0,"demandRebateSkuList":null,"confirmTime":null,"customerPurchaseNo":null,"mustInstallDate":false,"secondAddressList":null,"splitOrMerge":null,"spitOrderSign":null,"edit":false,"productAmountWholeLine":68.88,"auditCompanyName":null,"auditCompanyNameCode":null,"ratio":null,"showMoreAttribute":false,"lastNoTaxDiscountAmount":0,"lastDiscountAmount":0,"settementQuantity":1,"userBalancePrice":0,"isEdit":true,"discountRateOne":100,"_rebateType":true,"pSign":0}],"orderStatus":102,"userReceiveId":"","userReceiveId2":"","productAmount":68.88,"paymentType":0,"accountId":32,"receiveBankName":"国药集团联合医疗器械有限公司","receiveBankAccount":"108902839271937437","addressNumber":19199,"receiverName":"萧峰","receiverContact":"13878900987","receiverAddress":"武汉市洪山区高新大道777号","buyerCartIds":[null],"sellerCompanyCode":"00102","companyId":2}}
+#预期结果
+checkDict40: {"success":true,"code":"200"}
+
+#需求单查询
+"url50": "/order/back/listDemand"
+"payload50": {"times":[null],"listOrderStatus":[],"productName":null,"demandCode":null,"demandParentCode":"%s","customerName":null,"manufacturer":null,"materialCode":null,"sellerCompanyName":null,"produceRegisterNum":null,"productLineName":null,"auditByName":null,"orderSource":null,"changeTypeList":null,"isRebateEdit":null,"jdeType":null,"pageSize":8,"pageStart":1,"orderChangeType":null,"snSgin":null,"changeSign":null,"customerCode":null,"distributionType":null,"busCustomerCode":null,"loginName":null,"cancelSign":0,"shipmentType":null,"startTime":null}
+#预期结果
+checkDict50: {"success":true,"code":"200","message":"OK"}
+
+#获取商品清单
+"url51": "/order/back/getRebateInfoByDemandId"
+"payload51": {"demandId":"%s"}
+
+#mergeDemandSku报文
+"url52": "/order/back/mergeDemandSku"
+"payload52": {"demandItems":"%s","demandId":"%s","forceApprovedSign":0}
+
+
+#listDemandAudit报文
+"url520": "/order/back/listDemandAudit"
+"payload520": {"manufacturer":"","productName":"","materialCode":"","productLineName":"","optionStr":"","productCode":"","groupName":"","demandId":"%s"}
+
+
+#需求单审核通过操作
+#需求单审核通过
+"url60": "/order/back/auditDemand"
+"payload60":
+#预期结果
+checkDict60: {"success":true,"code":"200","message":null,"data":[],"freshToken":null}
+
+
+
+
+
+
+#二审操作验证
+#测试场景一:二审通过
+#二审列表
+"url80": "/order/public/secondAuditList"
+"payload80": {"demandParentCode":"","pageStart":1,"pageSize":10,"secondAuditStatus":0,"auditByName":"","customerName":"","demandCode":"","secondAuditByName":"","startTime":null,"endTime":null}
+#预期结果
+checkDict80: {"success":true,"code":"200","message":"OK"}
+
+#二审通过操作
+"url81": "/order/back/secondAuditDemand"
+"payload81": {"demandId":"%s","demandCode":"%s","secondAuditRemark":"二审审核测试"}
+#预期结果
+checkDict81: {"success":true,"code":"200","message":"请求成功","data":null,"freshToken":null}
+
+#二审拒绝操作
+"url82": "/order/back/refuseSecondDemand"
+"payload82": {"demandId":"%s","demandCode":"%s","secondAuditRemark":"二审审核测试"}
+#预期结果
+checkDict82: {"success":true,"code":"200","message":"OK","data":1,"freshToken":null}
+
+
+
+#审核取消操作
+#列表查询
+"url83": "/order/back/listDemand"
+"payload83": {"times":[null],"listOrderStatus":[],"productName":null,"demandCode":null,"demandParentCode":"%s","customerName":null,"manufacturer":null,"materialCode":null,"sellerCompanyName":null,"produceRegisterNum":null,"productLineName":null,"auditByName":null,"orderSource":null,"changeTypeList":null,"isRebateEdit":null,"jdeType":null,"pageSize":8,"pageStart":1,"orderChangeType":null,"snSgin":null,"changeSign":null,"customerCode":null,"distributionType":null,"busCustomerCode":null,"loginName":null,"cancelSign":0,"shipmentType":null,"startTime":null}
+#预期结果
+checkDict83: {"success":true,"code":"200","message":"OK"}
+
+#需求审核
+"url84": "/order/back/refuseDemand"
+"payload84": {"demandId":"%d","auditStatus":2,"auditRemark":"审核拒绝原因"}
+#预期结果
+checkDict84: {"success":true,"code":"200","message":"OK","data":1,"freshToken":null}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/data/cmdc_demand_audit/data b/data/cmdc_demand_audit/data
new file mode 100644
index 0000000000000000000000000000000000000000..6e5e3b677f0a8758da29e7dd36b9acfc7931ba1c
--- /dev/null
+++ b/data/cmdc_demand_audit/data
@@ -0,0 +1,51 @@
+#后台管理系统代客下单
+#步骤一登录后台管理系统
+#后台运营管理系统登录信息
+"username": "admin2"
+"password": "Aa123456"
+
+json_headers: {
+ "Content-Type": "application/json",
+ "Cmdc_access_token": "%s"
+}
+
+#步骤二提交创建需求单(代客下单)
+#需求单创建接口地址
+"url1": "/order/saveBackDemandOrder"
+#需求单创建
+"payload1": {"orderStatus":102,"demandItems":[{"maxProductNum":999999,"minProductNum":1,"addMinProductNum":1,"minProductNumSign":false,"isMultiple":false,"quantityTip":"","productId":7892,"productCode":"11852135","materialCode":"VH-100","productName":"测瓣器及其组件","specifications":"VH-100","manufacturer":"SORIN GROUP ITALIA S.R.L. 索林集团意大利有限责任公司","productLineName":"HV","productLineCode":"4011","zonePriceVOList":null,"price":1879,"storageType":"999","optionStr":"VH-100","measuringUnit":"BX","ippMiniPurchaseNum":null,"ippMultipleSign":null,"ippPurchaseMultiple":null,"ippStatus":null,"quantity":1,"isGift":0,"measuringUnit1":"盒","imageUrl":"https://pro-cmdc.oss-cn-beijing.aliyuncs.com/productFile/2021/09/29/3721d7b9-0cd6-4d45-a5f2-f41595cd231b.jpg","companyCode":"00111","areaName":null,"areaPrice":1879,"agreementPriceId":null,"hidden":null,"description":"","taxRate":"0.13","allMaterialSign":null,"materialCodeExact":null,"specificationsExact":null,"hospitalOrderType":null,"hospitalHopeDate":null,"siteCompanyCode":null,"propertyName":null,"propertyVal":null,"propertyNote":null,"mustInstallDate":false,"showDemandAuditLineLabel":false,"editProductCode":false,"quantityErr":false,"fresenuis":false,"singleFresenuis":null,"zeroSign":false,"purchaseZeroProductList":[],"activityBasicId":null,"giftList":[],"selectGiftArr":[],"selectZeroGiftObj":{"mainProductList":[],"giftProductList":[]},"giftGroupQuantity":1,"giftSign":0,"customerCode":"1071246","realPay":"1879.00"}],"paymentAmount":1879,"productAmount":1879,"userId":18,"userNo":"1071246","customerCode":"1071246","userName":"上海勘泽贸易商行","companyId":"6","paymentType":1,"receiveBankName":"国药集团上海医疗器械有限公司","receiveBankAccount":"36830188000041806","accountId":3,"receiverName":"刘海涛","receiverContact":"18940124666","receiverAddress":"金山区朱泾镇鸿安路599号2幢北2楼210、211室","addressNumber":76216,"remark":"","receiverNote":"刘海涛","receiverPhoneNote":"18940124666","receiverAddressNote":"金山区朱泾镇鸿安路599号2幢北2楼210、211室","addressNoNote":76216,"fileList":[],"sellerCompanyCode":"00111","sellerCompanyName":"国药集团上海医疗器械有限公司","orderSource":2,"replaceCustomerOrder":{"orderStatus":102,"demandItems":[{"maxProductNum":999999,"minProductNum":1,"addMinProductNum":1,"minProductNumSign":false,"isMultiple":false,"quantityTip":"","productId":7892,"productCode":"11852135","materialCode":"VH-100","productName":"测瓣器及其组件","specifications":"VH-100","manufacturer":"SORIN GROUP ITALIA S.R.L. 索林集团意大利有限责任公司","productLineName":"HV","productLineCode":"4011","zonePriceVOList":null,"price":1879,"storageType":"999","optionStr":"VH-100","measuringUnit":"BX","ippMiniPurchaseNum":null,"ippMultipleSign":null,"ippPurchaseMultiple":null,"ippStatus":null,"quantity":1,"isGift":0,"measuringUnit1":"盒","imageUrl":"https://pro-cmdc.oss-cn-beijing.aliyuncs.com/productFile/2021/09/29/3721d7b9-0cd6-4d45-a5f2-f41595cd231b.jpg","companyCode":"00111","areaName":null,"areaPrice":1879,"agreementPriceId":null,"hidden":null,"description":"","taxRate":"0.13","allMaterialSign":null,"materialCodeExact":null,"specificationsExact":null,"hospitalOrderType":null,"hospitalHopeDate":null,"siteCompanyCode":null,"propertyName":null,"propertyVal":null,"propertyNote":null,"mustInstallDate":false,"showDemandAuditLineLabel":false,"editProductCode":false,"quantityErr":false,"fresenuis":false,"singleFresenuis":null,"zeroSign":false,"purchaseZeroProductList":[],"activityBasicId":null,"giftList":[],"selectGiftArr":[],"selectZeroGiftObj":{"mainProductList":[],"giftProductList":[]},"giftGroupQuantity":1}],"paymentAmount":1879,"productAmount":1879,"userId":18,"userNo":"1071246","customerCode":"1071246","userName":"上海勘泽贸易商行","companyId":"6","paymentType":1,"receiveBankName":"国药集团上海医疗器械有限公司","receiveBankAccount":"36830188000041806","accountId":3,"receiverName":"刘海涛","receiverContact":"18940124666","receiverAddress":"金山区朱泾镇鸿安路599号2幢北2楼210、211室","addressNumber":76216,"remark":"","receiverNote":"刘海涛","receiverPhoneNote":"18940124666","receiverAddressNote":"金山区朱泾镇鸿安路599号2幢北2楼210、211室","addressNoNote":76216,"fileList":[],"sellerCompanyCode":"00111","sellerCompanyName":"国药集团上海医疗器械有限公司","orderSource":2,"customerInfo":{"userId":18,"userName":"BJ0500","rejectUserName":null,"password":null,"realName":"赵林","userNo":"1071246","telephone":"15640336952","rejectTelephone":null,"registerAddress":"[{\\\"province\\\":810,\\\"city\\\":849,\\\"area\\\":850}]","detailAddress":"金山区朱泾镇鸿安路599号2幢北2楼210、211室","businessScope":"[{\\\"province\\\":\\\"\\\",\\\"city\\\":2237,\\\"area\\\":\\\"\\\"}]","companyProperty":101,"companyId":null,"companyCode":null,"companyName":"国药集团上海医疗器械有限公司","companyNameList":null,"customerCompanyName":"上海勘泽贸易商行","lienceNo":"91310116MA1JAFLT2B","userType":2,"companyType":null,"status":3,"disableSign":0,"deleteSign":null,"createBy":null,"updateBy":null,"createTime":null,"updateTime":null,"licenceSketchUrl":null,"licenceUrl":null,"openId":null,"referrer":null,"gift":null,"identity":null,"department":null,"platformStatus":1,"rejectionReason":null,"registerType":null,"siteType":null,"departmentCode":null,"personName":null,"registration":null,"realPassword":null,"recommend":null,"taxRate":0.13,"roleNames":null,"subCompanyName":"国药集团上海医疗器械有限公司","roleIds":null,"addressList":null,"licenseList":null,"labelList":null,"managerList":null,"createTimeStr":null,"categoriesList":null,"merchantsAddress":null,"merchantStatus":null,"refuseReason":null,"merchantsId":null,"userTransactionAmount":"0","gray":null,"bindingTime":null,"bindSign":1,"jdeStatus":0,"jdePhone":"","recommender":null,"coopeSgin":null,"bindflowList":null,"userJDEInfo":null}},"draftId":null,"demands":[{"demandId":null,"demandParentId":null,"demandParentCode":null,"demandCode":null,"customerId":null,"customerName":null,"customerCode":1071246,"loginName":null,"realName":null,"addressNumber":null,"mobile":null,"productName":null,"productCode":null,"sellerCompanyName":null,"sellerCompanyCode":null,"paymentType":null,"receiveBankName":null,"receiveBankAccount":null,"paymentAmount":"1879.00","productAmount":1879,"payableAmount":1879,"refundAmount":null,"cancelAmount":null,"discountAmount":0,"orderStatus":null,"refundStatus":null,"receiverName":null,"receiverContact":null,"receiverAddress":null,"remark":null,"revokedReason":null,"auditById":null,"auditByName":null,"auditTime":null,"auditRemark":null,"flhsStatus":null,"pushJdeStatus":null,"createTime":null,"updateTime":null,"submitTime":null,"pushJdeTime":null,"successTime":null,"auditStatus":null,"deleteSign":null,"firstOrderFlag":null,"demandItems":[{"demandSkuId":null,"demandId":null,"distributionId":null,"companyCode":"00111","demandCode":null,"demandParentId":null,"sellerCompanyId":null,"sellerCompanyName":null,"sellerCompanyCode":null,"customerCode":1071246,"productLineCode":"4011","productLineName":"HV","propertyStr":null,"storageType":"999","suppDist":null,"productId":7892,"productName":"测瓣器及其组件","productCode":"11852135","productNature":null,"brandName":null,"optionStr":"VH-100","imageUrl":"https://pro-cmdc.oss-cn-beijing.aliyuncs.com/productFile/2021/09/29/3721d7b9-0cd6-4d45-a5f2-f41595cd231b.jpg","lineNumber":null,"price":1879,"rebateId":null,"originalPrice":null,"biddingDiscountTax":null,"salesDiscountTax":null,"quantity":1,"sumQuantity":null,"sendQuantity":null,"lackQuantity":null,"cancelQuantity":null,"cancelAmount":null,"refundQuantity":null,"refundAmount":null,"discountQuantity":null,"discountAmount":null,"subtotal":1879,"measuringUnit":"盒","auxiliaryMeasuringUnit":null,"procurementMeasuringUnit":null,"pricingMeasuringUnit":null,"materialCode":"VH-100","manufacturer":"SORIN GROUP ITALIA S.R.L. 索林集团意大利有限责任公司","produceRegisterNum":null,"riskRank":null,"productClassify":null,"createTime":null,"updateTime":null,"deleteSign":null,"calCancelFlag":null,"refundFlag":null,"discountRate":0,"realPay":1879,"promotionPrice":null,"promotionTotalPrice":0,"demandParentCode":null,"regionId":null,"regionName":null,"spitSign":null,"activityAmount":null,"couponAmount":null,"activityUnitAmount":0,"couponUnitAmount":null,"activityBasicId":null,"couponSgin":null,"couponSgin2":null,"returnQuantity":null,"returnAmount":null,"customerId":null,"prescription":null,"specifications":"VH-100","lineCodeDelete":null,"sdOutStorage":null,"licenseNo":null,"demandCodes":null,"areaName":null,"agreementPriceId":null,"offerPrice":null,"orderMark":null,"totalPrice":null,"productLimitBuyList":null,"giftSign":0,"giftProductCode":null,"activityCarDataVoList":null,"orderSource":null,"receiverName":null,"receiverContact":null,"receiverAddress":null,"rebateTripId":null,"allSign":null,"salesReturn":null,"nowAmount":null,"taxSign":0,"plusMinuKey":null,"rebateRule":null,"lockType":null,"lineNumberOrg":null,"changeSgin":null,"addSgin":null,"ptbfa1":null,"ptbfa2":null,"ptbfa3":null,"ptbfa4":null,"ptbfa5":null,"yapeiPriceId":null,"ypLinePromotion":null,"yapeiPrice":null,"companyId":null,"buyerCartId":0,"userReceiveIdx":null,"userReceiveIdx2":null,"limitNum":null,"productLimitBuyId":null,"alreadyBuyNum":null,"limitBuySign":0,"proposeNum":null,"takeEffectRange":null,"takeEffectTime":null,"endTime1":null,"groupId":null,"fsGroupId":null,"proposalQuantity":null,"proposalSign":0,"manufacturerUserNo":null,"manufacturerUserDesc":null,"manufacturerProductNo":null,"manufacturerProductDesc":null,"manufacturerUserId":null,"manufacturerProductId":null,"busProductCode":null,"paidTime":null,"customerName":null,"paymentAmount":null,"specQuantity":null,"disQuantity":null,"fulfilledQuantity":null,"fulCancelQuantity":null,"couponId":null,"couponId2":null,"limitS":null,"starts":null,"ends":null,"userId":null,"productTax":"","taxRate":0.13,"demandSplitSign":"1","hospitalHopeDate":null,"uniqueKey":null,"productType":null,"activityRuleId":null,"allowanceBeginTime":null,"allowanceEndTime":null,"sign":null,"differenceActivityUserId":null,"groupNumber":1,"groupName":null,"skuGroup":null,"subList":null,"dataJson":null,"skuMergeSign":null,"freseniusPriceId":null,"quantityAndGroupAll":null,"booleaTime":null,"spitSgin":0,"groupSpitSign":0,"sort":0,"circleArea":null,"purchaseEntryId":null,"mustInstallDate":false,"installedDate":null,"installedDateStr":null,"demandLines":null,"subLineNumber":null,"demandSubCode":null,"propertyName":null,"propertyVal":null,"propertyNote":null,"sendManualSign":0,"activityType":0,"giftSettlementMethod":null,"giftInitQuantity":null,"packageCode":null,"giftGroupQuantity":1,"siteCompanyCode":null,"hospitalOrderType":null,"isCollectionAllocation":null,"orderStatus":null,"distributionType":null,"groupCode":null,"groupProductType":null,"pSign":0,"backSign":0,"description":"","stockNumber":null,"rebate":false,"userBalance":null,"purchaseQuantity":1,"purchaseZeroProductList":[]}],"demandSubItems":null,"rebateDetail":null,"rebateAmountList":null,"productLineCode":"4011","productLineName":"HV","auditLoginName":null,"showPurchaseNo":false,"isRebate":null,"isShowReate":null,"taxRate":0.13,"rebateType":0,"paymentAmountWholeLine":1879,"discountAmountWholeLine":0,"payableAmountWholeLine":1879,"discountRate":0,"singleRebateAmount":null,"isRebateEdit":null,"payCertUrl":null,"rebateAmount":null,"demandCance":null,"soAdd":null,"soCance":null,"orderReturn":null,"needCustomerConfirm":false,"measuringUnit":null,"productId":null,"version":null,"mainVersion":null,"agencyConfigId":null,"confirmSign":null,"replySign":null,"agencySign":null,"editIng":null,"editIngStr":null,"jdeType":null,"isElectronicSeal":null,"contractAgreementNo":null,"alesDepartmentNo":null,"alesDepartmentName":null,"salesPersonNo":null,"salesPersonName":null,"customerNote":null,"otherNote":null,"contractAgreementCode":null,"projectName":null,"projectCode":null,"regionId":null,"regionName":null,"productLineBindSign":null,"shipVia":null,"orderSource":null,"userBalance":null,"liquidCode":null,"shipmentTypeStr":null,"specifications":"VH-100","pageStart":null,"pageSize":null,"changeSgin":null,"yapei":2,"companyId":null,"userReceiveId2":null,"preemptConfig":null,"productSpec":null,"secondAuditSign":null,"secondAuditById":null,"secondAuditByName":null,"secondAuditTime":null,"secondAuditRemark":null,"secondAuditStatus":null,"rebateRule":"0","rebateControlSign":0,"rebateId":null,"preferenceType":null,"preferenceName":null,"disPrice":null,"lineNum":0,"auditStaySign":0,"fileList":null,"imageUrls":null,"total":null,"submitTimeStr":null,"updateTimeStr":null,"auditTimeStr":null,"acceptTime":null,"acceptTimeStr":null,"paidTime":null,"paidTimeStr":null,"erpHandingTime":null,"erpHandingTimeStr":null,"partShippingTime":null,"partShippingTimeStr":null,"allShippingTime":null,"allShippingTimeStr":null,"pushJdeTimeStr":null,"successTimeStr":null,"onlinePaySuccessTime":null,"onlinePaySuccessTimeStr":null,"bankTransactionSerial":null,"newIsTax":null,"countFormula":null,"countNumber":null,"noTaxRebateAmount":0,"isCollectionAllocation":0,"siteCompanyCode":null,"hospitalOrderType":null,"proofTime":null,"proofURL":null,"proofRemark":null,"proofSign":0,"customerCancelSign":null,"cancelRecords":null,"cancelCount":0,"updateNewTime":null,"updateNewTimeStr":null,"fsDedUseSign":null,"notice":null,"shareType":null,"singleRebateSign":null,"cf":false,"isPre":null,"showDemandAuditLineLabel":false,"orderType":null,"newDiscountRate":null,"oldOrderType":null,"oldNewDiscountRate":null,"pendding":null,"pushJdeStatusDemandSub":null,"circleGiftSign":0,"delay":null,"limitS":null,"starts":null,"ends":null,"completedS":null,"confirmDays":null,"remindS":null,"skuGroupList":null,"groupProductType":0,"purchaseId":null,"purchaseCode":null,"sdCancelTime":null,"sdTipSign":0,"receiverNote":null,"receiverPhoneNote":null,"receiverAddressNote":null,"flag":null,"sourceStr":null,"addressNoNote":null,"detailIsSpit":false,"spitSgin":null,"distributionType":null,"rebateValidity":null,"orderChangeType":null,"logoIcon":null,"detail":null,"changeBigType":null,"promotionType":null,"activityTotalAmount":null,"couponTotalAmount":null,"userReceiveId":null,"editSgin":null,"snSgin":null,"jdeOutAmount":null,"totalAllPaAmount":null,"diffShowSgin":0,"lineCodeDelete":null,"startTime":null,"endTime":null,"changeSign":null,"distributionId":null,"limitBuySign":0,"companyType":null,"afterSale":null,"csId":null,"sdStatusNodeParamList":null,"ypPromotionTotal":null,"acrossMainCode":null,"forceApprovedSign":0,"circleGiftContinueSgin":0,"customerCharge":null,"onlinePaySign":0,"recodeDemandSkuList":null,"mergeDemandSkuList":null,"inventoryNode":null,"customCode":null,"terminalSource":null,"potentialClientsId":null,"settlementStatus":null,"firstOrderAuditStatus":null,"confirmReceiptSign":null,"confirmReceiptTime":null,"afterSaleDays":null,"deliveryCompletedTime":null,"taxSign":0,"orderSplitSign":0,"demandRebateSkuList":null,"confirmTime":null,"customerPurchaseNo":null,"mustInstallDate":false,"secondAddressList":null,"splitOrMerge":null,"spitOrderSign":null,"productAmountWholeLine":1879,"auditCompanyName":null,"auditCompanyNameCode":null,"edit":false,"showMoreAttribute":false,"ratio":null,"ratioFlag":false,"rebateFlags":false,"userBalancePrice":0,"allQuantity":1,"totalPriceNum":0,"maxTotalLimitPrice":0,"lastNoTaxDiscountAmount":0,"lastDiscountAmount":0}]}
+
+
+#步骤三查询已创建的需求单
+#需求单列表接口地址
+"url2": "/order/back/listDemand"
+#根据订单状态(102-待审核)、订单来源(2-代客下单)、供应商名称查询需求单
+"payload2": {"times":[null],"listOrderStatus":["102"],"productName":null,"demandCode":null,"demandParentCode":null,"customerName":"上海勘泽贸易商行","manufacturer":null,"materialCode":null,"sellerCompanyName":null,"produceRegisterNum":null,"productLineName":null,"auditByName":null,"orderSource":null,"changeTypeList":null,"isRebateEdit":null,"jdeType":null,"pageSize":8,"pageStart":1,"orderChangeType":null,"snSgin":null,"changeSign":null,"customerCode":null,"distributionType":null,"busCustomerCode":null,"loginName":null,"cancelSign":0,"shipmentType":null,"startTime":null}
+
+#步骤四对已创建的需求单进行审核处理
+#需求单审核接口地址
+"url3": "/order/back/auditDemand"
+#审核通过
+"payload3": {"demandId":38596,"demandParentId":36577,"demandParentCode":"s2310090900018","demandCode":"16968152283263140","customerId":18,"customerName":"上海勘泽贸易商行","customerCode":1071246,"loginName":"BJ0500","realName":"赵林","addressNumber":76216,"mobile":"15640336952","productName":null,"productCode":null,"sellerCompanyName":"国药集团上海医疗器械有限公司","sellerCompanyCode":"00111","paymentType":1,"receiveBankName":"国药集团上海医疗器械有限公司","receiveBankAccount":"36830188000041806","paymentAmount":1879,"productAmount":1879,"payableAmount":1879,"refundAmount":0,"cancelAmount":0,"discountAmount":0,"orderStatus":102,"refundStatus":null,"receiverName":"刘海涛","receiverContact":"18940124666","receiverAddress":"金山区朱泾镇鸿安路599号2幢北2楼210、211室","remark":null,"revokedReason":null,"auditById":null,"auditByName":null,"auditTime":null,"auditRemark":null,"flhsStatus":0,"pushJdeStatus":null,"createTime":"2023-10-09 09:33:48","updateTime":"2023-10-09 09:33:48","submitTime":"2023-10-09 09:33:48","pushJdeTime":null,"successTime":null,"auditStatus":1,"deleteSign":0,"firstOrderFlag":0,"demandItems":[{"demandSkuId":198228,"productName":"测瓣器及其组件","productId":7892,"productCode":"11852135","productLineCode":"4011","productLineName":"HV","sellerCompanyName":"国药集团上海医疗器械有限公司","sellerCompanyCode":"00111","optionStr":"VH-100","imageUrl":"https://pro-cmdc.oss-cn-beijing.aliyuncs.com/productFile/2021/09/29/3721d7b9-0cd6-4d45-a5f2-f41595cd231b.jpg","price":1879,"quantity":1,"subtotal":1879,"materialCode":"VH-100","manufacturer":"SORIN GROUP ITALIA S.R.L. 索林集团意大利有限责任公司","produceRegisterNum":"国械备20152082号","riskRank":null,"productClassify":null,"storageType":"999","measuringUnit":"盒","auxiliaryMeasuringUnit":null,"procurementMeasuringUnit":null,"pricingMeasuringUnit":null,"productNature":null,"productInventory":[],"totalInventory":0,"promotionPrice":0,"promotionTotalPrice":0,"discountRate":0,"realPay":1879,"customerCode":"1071246","isRebate":"0","rebateId":"82","rebateDetail":{"rebateoperaskuid":null,"filialecode":"00111","rebateid":82,"customercode":null,"transactionamount":null,"transactiontype":null,"rebateStartTime":null,"rebateValidity":null,"balance":null,"deletesign":null,"note":null,"createtime":null,"updatetime":null,"demandId":null,"demandCode":null,"relevanceName":null,"rebateName":null,"customerCompanyName":null,"lineCodeDelete":null,"rebateTripId":null,"monNum":null,"relevanceCode":"4011","pageSize":null,"pageNum":null,"startTime":null,"endTime":null,"userId":null,"customerCodeList":null,"filialeCodeList":null,"companyName":null,"reSign":null,"demandParentCode":null,"distributionCode":null,"frontNote":null,"backNote":null,"cancelId":null,"effectivetype":null,"validityperiodSign":null,"rebatename":"HV返利","useLimitStart":0,"useLimitEnd":1,"istax":1,"taxround":0,"isdisposable":0,"productCode":null,"isOperated":null,"userPrice":null,"rebateFalg":null},"useMaxLimit":"1.0000","useBalance":0,"taxRate":0.13,"rebateType":0,"singleRebateAmount":null,"multipleCodeProductList":null,"stockNumber":0,"prescription":"2099-12-31","ippMiniPurchaseNum":null,"ippMultipleSign":null,"ippPurchaseMultiple":null,"ippStatus":null,"simpleMultipleCodeProductList":[{"groupId":71,"optionStr":"VH-100","manufacturer":"SORIN GROUP ITALIA S.R.L. 索林集团意大利有限责任公司","materialCode":"VH-100","produceRegisterNum":"国械备20152082号","prescription":"2019-02-03","imageUrl":"https://pro-cmdc.oss-cn-beijing.aliyuncs.com/productFile/2021/09/29/3721d7b9-0cd6-4d45-a5f2-f41595cd231b.jpg","measuringUnit":"盒","price":1879,"productName":"测瓣器及其组件","productCode":"11852135","quantity":0,"productId":7892,"ptbfa1":null,"ptbfa2":null,"ptbfa3":null,"ptbfa4":null,"ptbfa5":null,"areaName":null,"offerPrice":null,"referencePrice":1879,"limitNum":null,"productLimitBuyId":null,"alreadyBuyNum":null,"takeEffectRange":null,"showlimitNum":null,"showproductLimitBuyId":null,"showalreadyBuyNum":null,"showtakeEffectRange":null,"limitBuySign":0},{"groupId":71,"optionStr":"VH-100","manufacturer":"恪心意大利有限公司 Corcym S.r.l.","materialCode":"VH-100","produceRegisterNum":"国械备20152082号","prescription":"2021-11-23","imageUrl":null,"measuringUnit":"盒","price":1111,"productName":"测瓣器及其组件","productCode":"16911089","quantity":0,"productId":39610,"ptbfa1":null,"ptbfa2":null,"ptbfa3":null,"ptbfa4":null,"ptbfa5":null,"areaName":null,"offerPrice":null,"referencePrice":1111,"limitNum":null,"productLimitBuyId":null,"alreadyBuyNum":null,"takeEffectRange":null,"showlimitNum":null,"showproductLimitBuyId":null,"showalreadyBuyNum":null,"showtakeEffectRange":null,"limitBuySign":0}],"activityAmount":0,"couponAmount":0,"activityUnitAmount":0,"couponUnitAmount":null,"activityBasicId":null,"useLimitStart":"0.0000","lineNumberOrg":1,"ptbfa1":null,"ptbfa2":null,"ptbfa3":null,"ptbfa4":null,"ptbfa5":null,"yapeiPriceId":null,"areaName":null,"agreementPriceId":null,"offerPrice":null,"limitNum":null,"productLimitBuyId":null,"alreadyBuyNum":null,"takeEffectRange":null,"limitBuySign":0,"overdueSign":0,"sxPrice":null,"invalidStr":null,"submitTime":"2023-10-09T01:33:48.000+0000","manufacturerUserNo":null,"manufacturerUserDesc":null,"manufacturerProductNo":null,"manufacturerProductDesc":null,"manufacturerUserId":null,"manufacturerProductId":null,"groupId":71,"groupNumber":1,"groupProductType":null,"groupCode":null,"giftSign":0,"giftProductCode":"11852135","description":"","demandCode":"16968152283263140","lineNum":1,"threeRebateBalance":null,"threeRebateMaxScale":null,"rebateTripId":null,"companyType":null,"busProductCode":null,"rebateControlSign":0,"rebateRule":null,"hospitalHopeDate":null,"uniqueKey":null,"activityRuleId":null,"differenceActivityUserId":null,"replaceSgin":0,"skuGroup":{},"fsGroupId":null,"demandSkuVOList":null,"companyCode":null,"demandId":null,"dataJson":null,"lineNumber":null,"freseniusPriceId":null,"groupSpitSign":0,"plusMinuKey":null,"purchaseEntryId":null,"installedDate":null,"propertyName":null,"propertyVal":null,"propertyNote":null,"activityType":0,"giftSettlementMethod":null,"giftInitQuantity":null,"packageCode":null,"sdOutStorage":0,"lineCodeDelete":0,"showState":true,"purchaseZeroProductList":[],"giftList":[],"selectGiftArr":[]}],"demandSubItems":[{"demandId":38596,"demandParentId":36577,"demandParentCode":"s2310090900018","demandCode":"16968152283263140","customerId":18,"customerName":"上海勘泽贸易商行","customerCode":1071246,"loginName":"BJ0500","realName":"赵林","addressNumber":76216,"mobile":"15640336952","productName":null,"productCode":null,"sellerCompanyName":"国药集团上海医疗器械有限公司","sellerCompanyCode":"00111","paymentType":1,"receiveBankName":"国药集团上海医疗器械有限公司","receiveBankAccount":"36830188000041806","paymentAmount":1879,"productAmount":1879,"payableAmount":1879,"refundAmount":0,"cancelAmount":0,"discountAmount":0,"orderStatus":102,"refundStatus":null,"receiverName":"刘海涛","receiverContact":"18940124666","receiverAddress":"金山区朱泾镇鸿安路599号2幢北2楼210、211室","remark":null,"revokedReason":null,"auditById":null,"auditByName":null,"auditTime":null,"auditRemark":null,"flhsStatus":0,"pushJdeStatus":null,"createTime":null,"updateTime":null,"submitTime":null,"pushJdeTime":null,"successTime":null,"auditStatus":1,"deleteSign":0,"firstOrderFlag":0,"demandItems":null,"demandSubItems":[{"demandSkuId":198228,"demandId":null,"distributionId":null,"companyCode":null,"demandCode":"16968152283263140","demandParentId":null,"sellerCompanyId":null,"sellerCompanyName":"国药集团上海医疗器械有限公司","sellerCompanyCode":"00111","customerCode":1071246,"productLineCode":"4011","productLineName":"HV","propertyStr":null,"storageType":"999","suppDist":null,"productId":7892,"productName":"测瓣器及其组件","productCode":"11852135","productNature":null,"brandName":null,"optionStr":"VH-100","imageUrl":"https://pro-cmdc.oss-cn-beijing.aliyuncs.com/productFile/2021/09/29/3721d7b9-0cd6-4d45-a5f2-f41595cd231b.jpg","lineNumber":null,"price":1879,"rebateId":82,"originalPrice":null,"biddingDiscountTax":null,"salesDiscountTax":null,"quantity":1,"sumQuantity":null,"sendQuantity":null,"lackQuantity":null,"cancelQuantity":null,"cancelAmount":null,"refundQuantity":null,"refundAmount":null,"discountQuantity":null,"discountAmount":null,"subtotal":1879,"measuringUnit":"盒","auxiliaryMeasuringUnit":null,"procurementMeasuringUnit":null,"pricingMeasuringUnit":null,"materialCode":"VH-100","manufacturer":"SORIN GROUP ITALIA S.R.L. 索林集团意大利有限责任公司","produceRegisterNum":"国械备20152082号","riskRank":null,"productClassify":null,"createTime":null,"updateTime":null,"deleteSign":null,"calCancelFlag":null,"refundFlag":null,"discountRate":0,"realPay":1879,"promotionPrice":0,"promotionTotalPrice":0,"demandParentCode":null,"regionId":null,"regionName":null,"spitSign":null,"activityAmount":0,"couponAmount":0,"activityUnitAmount":0,"couponUnitAmount":null,"activityBasicId":null,"couponSgin":null,"couponSgin2":null,"returnQuantity":null,"returnAmount":null,"customerId":null,"prescription":"2099-12-31","specifications":null,"lineCodeDelete":0,"sdOutStorage":0,"licenseNo":null,"demandCodes":null,"areaName":null,"agreementPriceId":null,"offerPrice":null,"orderMark":null,"totalPrice":null,"productLimitBuyList":null,"giftSign":0,"giftProductCode":"11852135","activityCarDataVoList":null,"orderSource":null,"receiverName":null,"receiverContact":null,"receiverAddress":null,"rebateTripId":null,"allSign":null,"salesReturn":null,"nowAmount":null,"taxSign":0,"plusMinuKey":null,"rebateRule":null,"lockType":null,"lineNumberOrg":1,"changeSgin":null,"addSgin":null,"ptbfa1":null,"ptbfa2":null,"ptbfa3":null,"ptbfa4":null,"ptbfa5":null,"yapeiPriceId":null,"ypLinePromotion":null,"yapeiPrice":null,"companyId":null,"buyerCartId":null,"userReceiveIdx":null,"userReceiveIdx2":null,"limitNum":null,"productLimitBuyId":null,"alreadyBuyNum":null,"limitBuySign":0,"proposeNum":null,"takeEffectRange":null,"takeEffectTime":null,"endTime1":null,"groupId":71,"fsGroupId":null,"proposalQuantity":null,"proposalSign":0,"manufacturerUserNo":null,"manufacturerUserDesc":null,"manufacturerProductNo":null,"manufacturerProductDesc":null,"manufacturerUserId":null,"manufacturerProductId":null,"busProductCode":null,"paidTime":null,"customerName":null,"paymentAmount":null,"specQuantity":null,"disQuantity":null,"fulfilledQuantity":null,"fulCancelQuantity":null,"couponId":null,"couponId2":null,"limitS":null,"starts":null,"ends":null,"userId":null,"productTax":null,"taxRate":0.13,"demandSplitSign":null,"hospitalHopeDate":null,"uniqueKey":null,"productType":null,"activityRuleId":null,"allowanceBeginTime":null,"allowanceEndTime":null,"sign":null,"differenceActivityUserId":null,"groupNumber":1,"groupName":null,"skuGroup":{"id":null,"groupId":null,"companyCode":null,"groupProductType":null,"createTime":null,"updateTime":null,"demandSkuId":null,"demandId":null,"dataJson":null,"lineNumber":null,"freseniusPriceId":null,"groupNumber":null,"demandSkuList":null,"demandSkuVOList":null},"subList":null,"dataJson":null,"skuMergeSign":"11852135-1879-0-0-0-1879","freseniusPriceId":null,"quantityAndGroupAll":null,"booleaTime":null,"spitSgin":0,"groupSpitSign":0,"sort":0,"circleArea":null,"purchaseEntryId":null,"mustInstallDate":false,"installedDate":null,"installedDateStr":"","demandLines":null,"subLineNumber":null,"demandSubCode":null,"propertyName":null,"propertyVal":null,"propertyNote":null,"sendManualSign":0,"activityType":0,"giftSettlementMethod":null,"giftInitQuantity":null,"packageCode":null,"giftGroupQuantity":null,"siteCompanyCode":null,"hospitalOrderType":null,"isCollectionAllocation":null,"orderStatus":null,"distributionType":null,"groupCode":null,"groupProductType":null,"pSign":0,"backSign":0,"description":"","stockNumber":"0","rebate":false,"shipmentType":0,"isRebate":"0","hideInTable":false}],"rebateDetail":null,"rebateAmountList":null,"productLineCode":"4011","productLineName":"HV","auditLoginName":null,"showPurchaseNo":false,"isRebate":null,"isShowReate":1,"taxRate":0.13,"rebateType":0,"paymentAmountWholeLine":null,"discountAmountWholeLine":null,"payableAmountWholeLine":null,"discountRate":0,"singleRebateAmount":null,"isRebateEdit":0,"payCertUrl":null,"rebateAmount":0,"demandCance":0,"soAdd":0,"soCance":0,"orderReturn":0,"needCustomerConfirm":false,"measuringUnit":null,"productId":null,"version":null,"mainVersion":null,"agencyConfigId":null,"confirmSign":null,"replySign":null,"agencySign":null,"editIng":0,"editIngStr":null,"jdeType":0,"isElectronicSeal":null,"contractAgreementNo":"BM-1071246","alesDepartmentNo":"111002","alesDepartmentName":"法律事务部","salesPersonNo":"80054216","salesPersonName":"苏荷艳","customerNote":"","otherNote":"","contractAgreementCode":"77411","projectName":"捷迈","projectCode":"17001218","regionId":null,"regionName":null,"productLineBindSign":2,"shipVia":"2","orderSource":2,"userBalance":null,"liquidCode":"04","shipmentTypeStr":"","specifications":null,"pageStart":null,"pageSize":null,"changeSgin":0,"yapei":2,"companyId":null,"userReceiveId2":null,"preemptConfig":null,"productSpec":1,"secondAuditSign":0,"secondAuditById":null,"secondAuditByName":null,"secondAuditTime":null,"secondAuditRemark":null,"secondAuditStatus":null,"rebateRule":null,"rebateControlSign":0,"rebateId":null,"preferenceType":null,"preferenceName":null,"disPrice":null,"lineNum":0,"auditStaySign":0,"fileList":null,"imageUrls":null,"total":null,"submitTimeStr":"2023-10-09 09:33:48","updateTimeStr":"2023-10-09 09:33:48","auditTimeStr":null,"acceptTime":null,"acceptTimeStr":null,"paidTime":null,"paidTimeStr":null,"erpHandingTime":null,"erpHandingTimeStr":null,"partShippingTime":null,"partShippingTimeStr":null,"allShippingTime":null,"allShippingTimeStr":null,"pushJdeTimeStr":null,"successTimeStr":null,"onlinePaySuccessTime":null,"onlinePaySuccessTimeStr":null,"bankTransactionSerial":null,"newIsTax":null,"countFormula":null,"countNumber":null,"noTaxRebateAmount":0,"isCollectionAllocation":0,"siteCompanyCode":null,"hospitalOrderType":null,"proofTime":null,"proofURL":null,"proofRemark":null,"proofSign":0,"customerCancelSign":0,"cancelRecords":[],"cancelCount":0,"updateNewTime":null,"updateNewTimeStr":null,"fsDedUseSign":0,"notice":null,"shareType":null,"singleRebateSign":null,"cf":false,"isPre":null,"showDemandAuditLineLabel":false,"orderType":null,"newDiscountRate":null,"oldOrderType":null,"oldNewDiscountRate":null,"pendding":null,"pushJdeStatusDemandSub":[{"demandSubId":190399,"demandId":38596,"demandParentId":36577,"demandCode":"16968152283263140","demandSubCode":"16968152283263140","customerId":18,"customerName":"上海勘泽贸易商行","customerCode":1071246,"loginName":"BJ0500","realName":"赵林","addressNumber":76216,"mobile":"15640336952","productLineCode":"4011","productLineName":"HV","sellerCompanyName":"国药集团上海医疗器械有限公司","sellerCompanyCode":"00111","productAmount":1879,"cancelAmount":0,"payableAmount":0,"discountAmount":0,"receiverName":"刘海涛","receiverContact":"18940124666","receiverAddress":"金山区朱泾镇鸿安路599号2幢北2楼210、211室","remark":null,"pushJdeStatus":null,"submitTime":"2023-10-09T01:33:48.000+0000","pushJdeTime":null,"successTime":null,"deleteSign":null,"taxRate":0.13,"singleRebateAmount":null,"rebateType":0,"isRebateEdit":0,"discountRate":0,"changeType":null,"payCertUrl":null,"rebateAmount":0,"demandCance":0,"soAdd":0,"soCance":0,"orderReturn":0,"needCustomerConfirm":false,"isEdit":null,"agencyConfigId":null,"confirmSign":null,"replySign":null,"contractAgreementNo":null,"alesDepartmentNo":null,"alesDepartmentName":null,"salesPersonNo":null,"salesPersonName":null,"customerNote":"","otherNote":null,"jdeType":0,"shipVia":null,"contractAgreementCode":null,"projectName":null,"projectCode":null,"orderSource":2,"regionId":null,"regionName":null,"receiverNote":null,"receiverPhoneNote":null,"receiverAddressNote":null,"addressNoNote":76216,"rebateValidity":null,"liquidCode":null,"promotionType":1,"activityTotalAmount":null,"couponTotalAmount":null,"userReceiveId":null,"editSgin":0,"snSgin":0,"totalAllPaAmount":null,"jdeOutAmount":null,"diffShowSgin":0,"changeSgin":0,"yapei":2,"acrossMainCode":null,"sdCancelTime":null,"sdTipSign":0,"customerCharge":0,"isElectronicSeal":null,"userReceiveId2":null,"inventoryNode":null,"customCode":null,"terminalSource":1,"confirmReceiptSign":null,"confirmReceiptTime":null,"deliveryCompletedTime":null,"taxSign":0,"delay":null,"rebateControlSign":0,"erpRejectTime":null,"erpHandingTime":null,"allShippingTime":null,"partShippingTime":null,"confirmTime":null,"noTaxRebateAmount":0,"newIsTax":null,"countFormula":null,"countNumber":null,"siteCompanyCode":null,"hospitalOrderType":null,"shipmentType":null,"distributionType":null,"isShowReate":null,"spitSgin":null,"detailIsSpit":false,"createTime":"2023-10-09T01:33:48.000+0000","updateTime":"2023-10-09T01:33:48.000+0000","paymentAmount":null,"demandSubItems":null,"sdlnty":null}],"circleGiftSign":0,"delay":0,"limitS":null,"starts":null,"ends":null,"completedS":null,"confirmDays":null,"remindS":null,"skuGroupList":null,"groupProductType":0,"purchaseId":null,"purchaseCode":null,"sdCancelTime":null,"sdTipSign":0,"receiverNote":null,"receiverPhoneNote":null,"receiverAddressNote":null,"flag":null,"sourceStr":null,"addressNoNote":"76216","detailIsSpit":false,"spitSgin":null,"distributionType":"2","rebateValidity":null,"orderChangeType":null,"logoIcon":null,"detail":null,"changeBigType":null,"promotionType":1,"activityTotalAmount":0,"couponTotalAmount":0,"userReceiveId":null,"editSgin":0,"snSgin":0,"jdeOutAmount":null,"totalAllPaAmount":null,"diffShowSgin":0,"lineCodeDelete":0,"startTime":null,"endTime":null,"changeSign":null,"distributionId":null,"limitBuySign":0,"companyType":"2","afterSale":null,"csId":null,"sdStatusNodeParamList":null,"ypPromotionTotal":null,"acrossMainCode":null,"forceApprovedSign":0,"circleGiftContinueSgin":0,"customerCharge":0,"onlinePaySign":0,"recodeDemandSkuList":null,"mergeDemandSkuList":null,"inventoryNode":null,"customCode":null,"terminalSource":1,"potentialClientsId":null,"settlementStatus":"000","firstOrderAuditStatus":null,"confirmReceiptSign":"0","confirmReceiptTime":null,"afterSaleDays":null,"deliveryCompletedTime":null,"taxSign":0,"orderSplitSign":0,"demandRebateSkuList":null,"confirmTime":null,"customerPurchaseNo":null,"mustInstallDate":false,"secondAddressList":null,"splitOrMerge":0,"spitOrderSign":1,"productAmountWholeLine":null,"auditCompanyName":null,"auditCompanyNameCode":null,"edit":false,"serialNumber":1,"lockHover":false,"shipmentType":0,"activityAmount":0,"couponAmount":0}],"rebateDetail":null,"rebateAmountList":null,"productLineCode":"4011","productLineName":"HV","auditLoginName":null,"showPurchaseNo":false,"isRebate":null,"isShowReate":1,"taxRate":0.13,"rebateType":0,"paymentAmountWholeLine":null,"discountAmountWholeLine":null,"payableAmountWholeLine":null,"discountRate":0,"singleRebateAmount":null,"isRebateEdit":0,"payCertUrl":null,"rebateAmount":0,"demandCance":0,"soAdd":0,"soCance":0,"orderReturn":0,"needCustomerConfirm":false,"measuringUnit":null,"productId":null,"version":null,"mainVersion":null,"agencyConfigId":null,"confirmSign":null,"replySign":null,"agencySign":null,"editIng":0,"editIngStr":null,"jdeType":0,"isElectronicSeal":null,"contractAgreementNo":null,"alesDepartmentNo":null,"alesDepartmentName":null,"salesPersonNo":null,"salesPersonName":null,"customerNote":"","otherNote":null,"contractAgreementCode":null,"projectName":null,"projectCode":null,"regionId":null,"regionName":null,"productLineBindSign":2,"shipVia":1,"orderSource":2,"userBalance":null,"liquidCode":null,"shipmentTypeStr":"","specifications":null,"pageStart":null,"pageSize":null,"changeSgin":0,"yapei":2,"companyId":null,"userReceiveId2":null,"preemptConfig":null,"productSpec":1,"secondAuditSign":0,"secondAuditById":"","secondAuditByName":"","secondAuditTime":null,"secondAuditRemark":null,"secondAuditStatus":null,"rebateRule":null,"rebateControlSign":0,"rebateId":null,"preferenceType":null,"preferenceName":null,"disPrice":null,"lineNum":0,"auditStaySign":0,"fileList":null,"imageUrls":null,"total":null,"submitTimeStr":"2023-10-09 09:33:48","updateTimeStr":"2023-10-09 09:33:48","auditTimeStr":null,"acceptTime":null,"acceptTimeStr":null,"paidTime":null,"paidTimeStr":null,"erpHandingTime":null,"erpHandingTimeStr":null,"partShippingTime":null,"partShippingTimeStr":null,"allShippingTime":null,"allShippingTimeStr":null,"pushJdeTimeStr":null,"successTimeStr":null,"onlinePaySuccessTime":null,"onlinePaySuccessTimeStr":null,"bankTransactionSerial":null,"newIsTax":null,"countFormula":null,"countNumber":null,"noTaxRebateAmount":0,"isCollectionAllocation":0,"siteCompanyCode":null,"hospitalOrderType":null,"proofTime":null,"proofURL":null,"proofRemark":null,"proofSign":0,"customerCancelSign":0,"cancelRecords":[],"cancelCount":0,"updateNewTime":null,"updateNewTimeStr":null,"fsDedUseSign":0,"notice":null,"shareType":null,"singleRebateSign":null,"cf":false,"isPre":null,"showDemandAuditLineLabel":false,"orderType":null,"newDiscountRate":null,"oldOrderType":null,"oldNewDiscountRate":null,"pendding":null,"pushJdeStatusDemandSub":[{"demandSubId":190399,"demandId":38596,"demandParentId":36577,"demandCode":"16968152283263140","demandSubCode":"16968152283263140","customerId":18,"customerName":"上海勘泽贸易商行","customerCode":1071246,"loginName":"BJ0500","realName":"赵林","addressNumber":76216,"mobile":"15640336952","productLineCode":"4011","productLineName":"HV","sellerCompanyName":"国药集团上海医疗器械有限公司","sellerCompanyCode":"00111","productAmount":1879,"cancelAmount":0,"payableAmount":0,"discountAmount":0,"receiverName":"刘海涛","receiverContact":"18940124666","receiverAddress":"金山区朱泾镇鸿安路599号2幢北2楼210、211室","remark":null,"pushJdeStatus":null,"submitTime":"2023-10-09T01:33:48.000+0000","pushJdeTime":null,"successTime":null,"deleteSign":null,"taxRate":0.13,"singleRebateAmount":null,"rebateType":0,"isRebateEdit":0,"discountRate":0,"changeType":null,"payCertUrl":null,"rebateAmount":0,"demandCance":0,"soAdd":0,"soCance":0,"orderReturn":0,"needCustomerConfirm":false,"isEdit":null,"agencyConfigId":null,"confirmSign":null,"replySign":null,"contractAgreementNo":null,"alesDepartmentNo":null,"alesDepartmentName":null,"salesPersonNo":null,"salesPersonName":null,"customerNote":"","otherNote":null,"jdeType":0,"shipVia":null,"contractAgreementCode":null,"projectName":null,"projectCode":null,"orderSource":2,"regionId":null,"regionName":null,"receiverNote":null,"receiverPhoneNote":null,"receiverAddressNote":null,"addressNoNote":76216,"rebateValidity":null,"liquidCode":null,"promotionType":1,"activityTotalAmount":null,"couponTotalAmount":null,"userReceiveId":null,"editSgin":0,"snSgin":0,"totalAllPaAmount":null,"jdeOutAmount":null,"diffShowSgin":0,"changeSgin":0,"yapei":2,"acrossMainCode":null,"sdCancelTime":null,"sdTipSign":0,"customerCharge":0,"isElectronicSeal":null,"userReceiveId2":null,"inventoryNode":null,"customCode":null,"terminalSource":1,"confirmReceiptSign":null,"confirmReceiptTime":null,"deliveryCompletedTime":null,"taxSign":0,"delay":null,"rebateControlSign":0,"erpRejectTime":null,"erpHandingTime":null,"allShippingTime":null,"partShippingTime":null,"confirmTime":null,"noTaxRebateAmount":0,"newIsTax":null,"countFormula":null,"countNumber":null,"siteCompanyCode":null,"hospitalOrderType":null,"shipmentType":null,"distributionType":null,"isShowReate":null,"spitSgin":null,"detailIsSpit":false,"createTime":"2023-10-09T01:33:48.000+0000","updateTime":"2023-10-09T01:33:48.000+0000","paymentAmount":null,"demandSubItems":null,"sdlnty":null}],"circleGiftSign":0,"delay":0,"limitS":null,"starts":null,"ends":null,"completedS":null,"confirmDays":null,"remindS":null,"skuGroupList":null,"groupProductType":0,"purchaseId":null,"purchaseCode":null,"sdCancelTime":null,"sdTipSign":0,"receiverNote":null,"receiverPhoneNote":null,"receiverAddressNote":null,"flag":null,"sourceStr":null,"addressNoNote":76216,"detailIsSpit":false,"spitSgin":null,"distributionType":null,"rebateValidity":null,"orderChangeType":null,"logoIcon":null,"detail":null,"changeBigType":null,"promotionType":1,"activityTotalAmount":0,"couponTotalAmount":null,"userReceiveId":null,"editSgin":0,"snSgin":0,"jdeOutAmount":null,"totalAllPaAmount":null,"diffShowSgin":0,"lineCodeDelete":0,"startTime":null,"endTime":null,"changeSign":null,"distributionId":null,"limitBuySign":0,"companyType":"2","afterSale":null,"csId":null,"sdStatusNodeParamList":null,"ypPromotionTotal":null,"acrossMainCode":null,"forceApprovedSign":0,"circleGiftContinueSgin":0,"customerCharge":0,"onlinePaySign":0,"recodeDemandSkuList":null,"mergeDemandSkuList":[{"demandSkuId":198228,"demandId":null,"distributionId":null,"companyCode":null,"demandCode":"16968152283263140","demandParentId":null,"sellerCompanyId":null,"sellerCompanyName":"国药集团上海医疗器械有限公司","sellerCompanyCode":"00111","customerCode":1071246,"productLineCode":"4011","productLineName":"HV","propertyStr":null,"storageType":"999","suppDist":null,"productId":7892,"productName":"测瓣器及其组件","productCode":"11852135","productNature":null,"brandName":null,"optionStr":"VH-100","imageUrl":"https://pro-cmdc.oss-cn-beijing.aliyuncs.com/productFile/2021/09/29/3721d7b9-0cd6-4d45-a5f2-f41595cd231b.jpg","lineNumber":null,"price":1879,"rebateId":82,"originalPrice":null,"biddingDiscountTax":null,"salesDiscountTax":null,"quantity":1,"sumQuantity":null,"sendQuantity":null,"lackQuantity":null,"cancelQuantity":null,"cancelAmount":null,"refundQuantity":null,"refundAmount":null,"discountQuantity":null,"discountAmount":null,"subtotal":1879,"measuringUnit":"盒","auxiliaryMeasuringUnit":null,"procurementMeasuringUnit":null,"pricingMeasuringUnit":null,"materialCode":"VH-100","manufacturer":"SORIN GROUP ITALIA S.R.L. 索林集团意大利有限责任公司","produceRegisterNum":"国械备20152082号","riskRank":null,"productClassify":null,"createTime":null,"updateTime":null,"deleteSign":null,"calCancelFlag":null,"refundFlag":null,"discountRate":0,"realPay":1879,"promotionPrice":0,"promotionTotalPrice":0,"demandParentCode":null,"regionId":null,"regionName":null,"spitSign":null,"activityAmount":0,"couponAmount":0,"activityUnitAmount":0,"couponUnitAmount":null,"activityBasicId":null,"couponSgin":null,"couponSgin2":null,"returnQuantity":null,"returnAmount":null,"customerId":null,"prescription":"2099-12-31","specifications":null,"lineCodeDelete":0,"sdOutStorage":0,"licenseNo":null,"demandCodes":null,"areaName":null,"agreementPriceId":null,"offerPrice":null,"orderMark":null,"totalPrice":null,"productLimitBuyList":null,"giftSign":0,"giftProductCode":"11852135","activityCarDataVoList":null,"orderSource":null,"receiverName":null,"receiverContact":null,"receiverAddress":null,"rebateTripId":null,"allSign":null,"salesReturn":null,"nowAmount":null,"taxSign":0,"plusMinuKey":null,"rebateRule":null,"lockType":null,"lineNumberOrg":1,"changeSgin":null,"addSgin":null,"ptbfa1":null,"ptbfa2":null,"ptbfa3":null,"ptbfa4":null,"ptbfa5":null,"yapeiPriceId":null,"ypLinePromotion":null,"yapeiPrice":null,"companyId":null,"buyerCartId":null,"userReceiveIdx":null,"userReceiveIdx2":null,"limitNum":null,"productLimitBuyId":null,"alreadyBuyNum":null,"limitBuySign":0,"proposeNum":null,"takeEffectRange":null,"takeEffectTime":null,"endTime1":null,"groupId":71,"fsGroupId":null,"proposalQuantity":null,"proposalSign":0,"manufacturerUserNo":null,"manufacturerUserDesc":null,"manufacturerProductNo":null,"manufacturerProductDesc":null,"manufacturerUserId":null,"manufacturerProductId":null,"busProductCode":null,"paidTime":null,"customerName":null,"paymentAmount":null,"specQuantity":null,"disQuantity":null,"fulfilledQuantity":null,"fulCancelQuantity":null,"couponId":null,"couponId2":null,"limitS":null,"starts":null,"ends":null,"userId":null,"productTax":null,"taxRate":0.13,"demandSplitSign":null,"hospitalHopeDate":null,"uniqueKey":null,"productType":null,"activityRuleId":null,"allowanceBeginTime":null,"allowanceEndTime":null,"sign":null,"differenceActivityUserId":null,"groupNumber":1,"groupName":null,"skuGroup":{"id":null,"groupId":null,"companyCode":null,"groupProductType":null,"createTime":null,"updateTime":null,"demandSkuId":null,"demandId":null,"dataJson":null,"lineNumber":null,"freseniusPriceId":null,"groupNumber":null,"demandSkuList":null,"demandSkuVOList":null},"subList":null,"dataJson":null,"skuMergeSign":"11852135-1879-0-0-0-1879","freseniusPriceId":null,"quantityAndGroupAll":null,"booleaTime":null,"spitSgin":0,"groupSpitSign":0,"sort":0,"circleArea":null,"purchaseEntryId":null,"mustInstallDate":false,"installedDate":null,"installedDateStr":"","demandLines":null,"subLineNumber":null,"demandSubCode":null,"propertyName":null,"propertyVal":null,"propertyNote":null,"sendManualSign":0,"activityType":0,"giftSettlementMethod":null,"giftInitQuantity":null,"packageCode":null,"giftGroupQuantity":null,"siteCompanyCode":null,"hospitalOrderType":null,"isCollectionAllocation":null,"orderStatus":null,"distributionType":null,"groupCode":null,"groupProductType":null,"pSign":0,"backSign":0,"description":"","stockNumber":"0","rebate":false,"shipmentType":0,"isRebate":"0","hideInTable":false}],"inventoryNode":null,"customCode":null,"terminalSource":1,"potentialClientsId":null,"settlementStatus":"000","firstOrderAuditStatus":null,"confirmReceiptSign":"0","confirmReceiptTime":null,"afterSaleDays":null,"deliveryCompletedTime":null,"taxSign":0,"orderSplitSign":0,"demandRebateSkuList":null,"confirmTime":null,"customerPurchaseNo":null,"mustInstallDate":false,"secondAddressList":null,"splitOrMerge":0,"spitOrderSign":1,"productAmountWholeLine":null,"auditCompanyName":null,"auditCompanyNameCode":null,"edit":false,"serialNumber":1,"lockHover":false}
+#预期结果
+checkDict1: {"success":true,"code":"200","message":null,"data":[],"freshToken":null}
+
+
+#多采商场快速下单
+#步骤一登录多采商城
+#多采商城登录信息
+"username1": "BJ0621"
+"password1": "Aa123456"
+
+json_headers1: {
+ "Cmdc_access_token": "%s",
+ "Sourcetype": "mall"
+}
+
+#步骤二创建并提交需求单
+#需求单创建接口地址
+"url4": "/order/public/saveAllDemandOrder"
+#需求单创建
+"payload4": {"国药集团北京医疗器械有限公司":{"datas":[{"demandId":null,"demandParentId":null,"demandParentCode":null,"demandCode":null,"customerId":null,"customerName":null,"customerCode":1127254,"loginName":null,"realName":null,"addressNumber":null,"mobile":null,"productName":null,"productCode":null,"sellerCompanyName":null,"sellerCompanyCode":null,"paymentType":null,"receiveBankName":null,"receiveBankAccount":null,"paymentAmount":"230.0000","productAmount":230,"payableAmount":230,"refundAmount":null,"cancelAmount":null,"discountAmount":0,"orderStatus":null,"refundStatus":null,"receiverName":null,"receiverContact":null,"receiverAddress":null,"remark":null,"revokedReason":null,"auditById":null,"auditByName":null,"auditTime":null,"auditRemark":null,"flhsStatus":null,"pushJdeStatus":null,"createTime":null,"updateTime":null,"submitTime":null,"pushJdeTime":null,"successTime":null,"auditStatus":null,"deleteSign":null,"firstOrderFlag":null,"demandItems":[{"demandSkuId":null,"demandId":null,"distributionId":null,"companyCode":"00103","demandCode":null,"demandParentId":null,"sellerCompanyId":null,"sellerCompanyName":null,"sellerCompanyCode":null,"customerCode":null,"productLineCode":"","productLineName":"","propertyStr":"","storageType":"999","suppDist":null,"productId":314,"productName":"红外测温仪","productCode":"12043728","productNature":null,"brandName":null,"optionStr":"YHW-3","imageUrl":null,"lineNumber":null,"price":230,"rebateId":null,"originalPrice":null,"biddingDiscountTax":null,"salesDiscountTax":null,"quantity":1,"sumQuantity":null,"sendQuantity":null,"lackQuantity":null,"cancelQuantity":null,"cancelAmount":null,"refundQuantity":null,"refundAmount":null,"discountQuantity":null,"discountAmount":null,"subtotal":230,"measuringUnit":"支","auxiliaryMeasuringUnit":null,"procurementMeasuringUnit":null,"pricingMeasuringUnit":null,"materialCode":"","manufacturer":"江苏鱼跃医用仪器有限公司","produceRegisterNum":null,"riskRank":null,"productClassify":null,"createTime":null,"updateTime":null,"deleteSign":null,"calCancelFlag":null,"refundFlag":null,"discountRate":100,"realPay":230,"promotionPrice":null,"promotionTotalPrice":0,"demandParentCode":null,"regionId":null,"regionName":null,"spitSign":null,"activityAmount":0,"couponAmount":0,"activityUnitAmount":0,"couponUnitAmount":null,"activityBasicId":null,"couponSgin":null,"couponSgin2":null,"returnQuantity":null,"returnAmount":null,"customerId":null,"prescription":null,"specifications":"YHW-3","lineCodeDelete":null,"sdOutStorage":null,"licenseNo":null,"demandCodes":null,"areaName":null,"agreementPriceId":null,"offerPrice":null,"orderMark":null,"totalPrice":null,"productLimitBuyList":null,"giftSign":0,"giftProductCode":null,"activityCarDataVoList":[],"orderSource":null,"receiverName":null,"receiverContact":null,"receiverAddress":null,"rebateTripId":null,"allSign":null,"salesReturn":null,"nowAmount":null,"taxSign":0,"plusMinuKey":null,"rebateRule":null,"lockType":null,"lineNumberOrg":null,"changeSgin":null,"addSgin":null,"ptbfa1":null,"ptbfa2":null,"ptbfa3":null,"ptbfa4":null,"ptbfa5":null,"yapeiPriceId":null,"ypLinePromotion":null,"yapeiPrice":null,"companyId":3,"buyerCartId":null,"userReceiveIdx":"","userReceiveIdx2":"","limitNum":null,"productLimitBuyId":null,"alreadyBuyNum":null,"limitBuySign":0,"proposeNum":null,"takeEffectRange":null,"takeEffectTime":null,"endTime1":null,"groupId":null,"fsGroupId":null,"proposalQuantity":null,"proposalSign":0,"manufacturerUserNo":null,"manufacturerUserDesc":null,"manufacturerProductNo":null,"manufacturerProductDesc":null,"manufacturerUserId":null,"manufacturerProductId":null,"busProductCode":null,"paidTime":null,"customerName":null,"paymentAmount":null,"specQuantity":null,"disQuantity":null,"fulfilledQuantity":null,"fulCancelQuantity":null,"couponId":null,"couponId2":null,"limitS":null,"starts":null,"ends":null,"userId":null,"productTax":"","taxRate":0.13,"demandSplitSign":"1","hospitalHopeDate":null,"uniqueKey":null,"productType":null,"activityRuleId":null,"allowanceBeginTime":null,"allowanceEndTime":null,"sign":null,"differenceActivityUserId":null,"groupNumber":1,"groupName":null,"skuGroup":null,"subList":null,"dataJson":null,"skuMergeSign":null,"freseniusPriceId":null,"quantityAndGroupAll":null,"booleaTime":null,"spitSgin":0,"groupSpitSign":0,"sort":0,"circleArea":null,"purchaseEntryId":null,"mustInstallDate":false,"installedDate":null,"installedDateStr":null,"demandLines":null,"subLineNumber":null,"demandSubCode":null,"propertyName":null,"propertyVal":null,"propertyNote":null,"sendManualSign":0,"activityType":0,"giftSettlementMethod":null,"giftInitQuantity":null,"packageCode":null,"giftGroupQuantity":1,"siteCompanyCode":null,"hospitalOrderType":null,"isCollectionAllocation":null,"orderStatus":null,"distributionType":null,"groupCode":null,"groupProductType":null,"pSign":0,"backSign":0,"description":"","stockNumber":null,"rebate":false,"purchaseZeroProductList":[],"prePromotionPrice":null,"prepromotionTotalPrice":0,"preDiscountRate":null,"userBalance":0}],"demandSubItems":null,"rebateDetail":null,"rebateAmountList":null,"productLineCode":"","productLineName":"","auditLoginName":null,"showPurchaseNo":false,"isRebate":null,"isShowReate":null,"taxRate":0.13,"rebateType":0,"paymentAmountWholeLine":230,"discountAmountWholeLine":0,"payableAmountWholeLine":230,"discountRate":null,"singleRebateAmount":null,"isRebateEdit":null,"payCertUrl":null,"rebateAmount":null,"demandCance":null,"soAdd":null,"soCance":null,"orderReturn":null,"needCustomerConfirm":false,"measuringUnit":null,"productId":null,"version":null,"mainVersion":null,"agencyConfigId":null,"confirmSign":null,"replySign":null,"agencySign":null,"editIng":null,"editIngStr":null,"jdeType":null,"isElectronicSeal":null,"contractAgreementNo":null,"alesDepartmentNo":null,"alesDepartmentName":null,"salesPersonNo":null,"salesPersonName":null,"customerNote":null,"otherNote":null,"contractAgreementCode":null,"projectName":null,"projectCode":null,"regionId":null,"regionName":null,"productLineBindSign":null,"shipVia":null,"orderSource":null,"userBalance":null,"liquidCode":null,"shipmentTypeStr":null,"specifications":"YHW-3","pageStart":null,"pageSize":null,"changeSgin":null,"yapei":2,"companyId":3,"preemptConfig":null,"productSpec":null,"secondAuditSign":null,"secondAuditById":null,"secondAuditByName":null,"secondAuditTime":null,"secondAuditRemark":null,"secondAuditStatus":null,"rebateRule":"0","rebateControlSign":0,"rebateId":null,"preferenceType":null,"preferenceName":null,"disPrice":null,"lineNum":0,"auditStaySign":0,"fileList":null,"imageUrls":null,"total":null,"submitTimeStr":null,"updateTimeStr":null,"auditTimeStr":null,"acceptTime":null,"acceptTimeStr":null,"paidTime":null,"paidTimeStr":null,"erpHandingTime":null,"erpHandingTimeStr":null,"partShippingTime":null,"partShippingTimeStr":null,"allShippingTime":null,"allShippingTimeStr":null,"pushJdeTimeStr":null,"successTimeStr":null,"onlinePaySuccessTime":null,"onlinePaySuccessTimeStr":null,"bankTransactionSerial":null,"newIsTax":null,"countFormula":null,"countNumber":null,"noTaxRebateAmount":0,"isCollectionAllocation":0,"siteCompanyCode":null,"hospitalOrderType":null,"proofTime":null,"proofURL":null,"proofRemark":null,"proofSign":0,"customerCancelSign":null,"cancelRecords":null,"cancelCount":0,"updateNewTime":null,"updateNewTimeStr":null,"fsDedUseSign":null,"notice":null,"shareType":null,"singleRebateSign":null,"cf":false,"isPre":null,"showDemandAuditLineLabel":false,"orderType":null,"newDiscountRate":null,"oldOrderType":null,"oldNewDiscountRate":null,"pendding":null,"pushJdeStatusDemandSub":null,"circleGiftSign":0,"delay":null,"limitS":null,"starts":null,"ends":null,"completedS":null,"confirmDays":null,"remindS":null,"skuGroupList":null,"groupProductType":0,"purchaseId":null,"purchaseCode":null,"sdCancelTime":null,"sdTipSign":0,"receiverNote":null,"receiverPhoneNote":null,"receiverAddressNote":null,"flag":null,"sourceStr":null,"addressNoNote":null,"detailIsSpit":false,"spitSgin":null,"distributionType":null,"rebateValidity":null,"orderChangeType":null,"logoIcon":null,"detail":null,"changeBigType":null,"promotionType":1,"activityTotalAmount":0,"couponTotalAmount":0,"userReceiveId":null,"editSgin":null,"snSgin":null,"jdeOutAmount":null,"totalAllPaAmount":null,"diffShowSgin":0,"lineCodeDelete":null,"startTime":null,"endTime":null,"changeSign":null,"distributionId":null,"limitBuySign":0,"companyType":null,"afterSale":null,"csId":null,"sdStatusNodeParamList":null,"ypPromotionTotal":null,"acrossMainCode":null,"forceApprovedSign":0,"circleGiftContinueSgin":0,"customerCharge":null,"onlinePaySign":0,"recodeDemandSkuList":null,"mergeDemandSkuList":null,"inventoryNode":null,"customCode":null,"terminalSource":null,"potentialClientsId":null,"settlementStatus":null,"firstOrderAuditStatus":null,"confirmReceiptSign":null,"confirmReceiptTime":null,"afterSaleDays":null,"deliveryCompletedTime":null,"taxSign":0,"orderSplitSign":0,"demandRebateSkuList":null,"confirmTime":null,"customerPurchaseNo":null,"mustInstallDate":false,"secondAddressList":null,"splitOrMerge":null,"spitOrderSign":null,"productAmountWholeLine":230,"auditCompanyName":null,"auditCompanyNameCode":null,"edit":false,"ratio":null,"showMoreAttribute":false,"lastNoTaxDiscountAmount":0,"lastDiscountAmount":0,"settementQuantity":1,"userBalancePrice":0,"isEdit":true,"discountRateOne":100,"_rebateType":false}],"addressConfig":2,"openPreTaxAmount":0,"promotionOrRebate":1,"promotionType":1,"showChangePromotionOrRebate":false,"couponTotalAmount":0,"activityTotalAmount":0,"totalQuantity":1,"totalPrice":230,"discountAmount":0,"demandItems":[{"demandSkuId":null,"demandId":null,"distributionId":null,"companyCode":"00103","demandCode":null,"demandParentId":null,"sellerCompanyId":null,"sellerCompanyName":null,"sellerCompanyCode":null,"customerCode":null,"productLineCode":"","productLineName":"","propertyStr":"","storageType":"999","suppDist":null,"productId":314,"productName":"红外测温仪","productCode":"12043728","productNature":null,"brandName":null,"optionStr":"YHW-3","imageUrl":null,"lineNumber":null,"price":230,"rebateId":null,"originalPrice":null,"biddingDiscountTax":null,"salesDiscountTax":null,"quantity":1,"sumQuantity":null,"sendQuantity":null,"lackQuantity":null,"cancelQuantity":null,"cancelAmount":null,"refundQuantity":null,"refundAmount":null,"discountQuantity":null,"discountAmount":null,"subtotal":230,"measuringUnit":"支","auxiliaryMeasuringUnit":null,"procurementMeasuringUnit":null,"pricingMeasuringUnit":null,"materialCode":"","manufacturer":"江苏鱼跃医用仪器有限公司","produceRegisterNum":null,"riskRank":null,"productClassify":null,"createTime":null,"updateTime":null,"deleteSign":null,"calCancelFlag":null,"refundFlag":null,"discountRate":100,"realPay":230,"promotionPrice":null,"promotionTotalPrice":0,"demandParentCode":null,"regionId":null,"regionName":null,"spitSign":null,"activityAmount":0,"couponAmount":0,"activityUnitAmount":0,"couponUnitAmount":null,"activityBasicId":null,"couponSgin":null,"couponSgin2":null,"returnQuantity":null,"returnAmount":null,"customerId":null,"prescription":null,"specifications":"YHW-3","lineCodeDelete":null,"sdOutStorage":null,"licenseNo":null,"demandCodes":null,"areaName":null,"agreementPriceId":null,"offerPrice":null,"orderMark":null,"totalPrice":null,"productLimitBuyList":null,"giftSign":0,"giftProductCode":null,"activityCarDataVoList":[],"orderSource":null,"receiverName":null,"receiverContact":null,"receiverAddress":null,"rebateTripId":null,"allSign":null,"salesReturn":null,"nowAmount":null,"taxSign":0,"plusMinuKey":null,"rebateRule":null,"lockType":null,"lineNumberOrg":null,"changeSgin":null,"addSgin":null,"ptbfa1":null,"ptbfa2":null,"ptbfa3":null,"ptbfa4":null,"ptbfa5":null,"yapeiPriceId":null,"ypLinePromotion":null,"yapeiPrice":null,"companyId":3,"buyerCartId":null,"userReceiveIdx":"","userReceiveIdx2":"","limitNum":null,"productLimitBuyId":null,"alreadyBuyNum":null,"limitBuySign":0,"proposeNum":null,"takeEffectRange":null,"takeEffectTime":null,"endTime1":null,"groupId":null,"fsGroupId":null,"proposalQuantity":null,"proposalSign":0,"manufacturerUserNo":null,"manufacturerUserDesc":null,"manufacturerProductNo":null,"manufacturerProductDesc":null,"manufacturerUserId":null,"manufacturerProductId":null,"busProductCode":null,"paidTime":null,"customerName":null,"paymentAmount":null,"specQuantity":null,"disQuantity":null,"fulfilledQuantity":null,"fulCancelQuantity":null,"couponId":null,"couponId2":null,"limitS":null,"starts":null,"ends":null,"userId":null,"productTax":"","taxRate":0.13,"demandSplitSign":"1","hospitalHopeDate":null,"uniqueKey":null,"productType":null,"activityRuleId":null,"allowanceBeginTime":null,"allowanceEndTime":null,"sign":null,"differenceActivityUserId":null,"groupNumber":1,"groupName":null,"skuGroup":null,"subList":null,"dataJson":null,"skuMergeSign":null,"freseniusPriceId":null,"quantityAndGroupAll":null,"booleaTime":null,"spitSgin":0,"groupSpitSign":0,"sort":0,"circleArea":null,"purchaseEntryId":null,"mustInstallDate":false,"installedDate":null,"installedDateStr":null,"demandLines":null,"subLineNumber":null,"demandSubCode":null,"propertyName":null,"propertyVal":null,"propertyNote":null,"sendManualSign":0,"activityType":0,"giftSettlementMethod":null,"giftInitQuantity":null,"packageCode":null,"giftGroupQuantity":1,"siteCompanyCode":null,"hospitalOrderType":null,"isCollectionAllocation":null,"orderStatus":null,"distributionType":null,"groupCode":null,"groupProductType":null,"pSign":0,"backSign":0,"description":"","stockNumber":null,"rebate":false,"purchaseZeroProductList":[],"prePromotionPrice":null,"prepromotionTotalPrice":0,"preDiscountRate":null,"userBalance":0}],"productPrice":"230.0000","fileList":[],"showInfo":false,"pageStart":1,"pageSize":5,"defaultBankInfo":{"accountId":1,"companyId":3,"companyName":"国药集团北京医疗器械有限公司","registeredAddress":"北京市朝阳区安定路39号长新大厦16层","bank":"招商银行股份有限公司北京东直门支行 ","accountName":"国药集团北京医疗器械有限公司","accountNumber":"110927396010401 ","disableSign":0,"deleteSign":0,"createTime":"2020-12-30 17:18:49","updateTime":"2021-05-28 09:54:12","createBy":2,"updateBy":2,"realName":"北京医疗器械公司1admin"},"addressList":[{"addressId":3278,"addressNo":93465,"addressName":null,"provinceCode":null,"userId":null,"companyId":3,"receiverName":"郭红声","address":"云南省昆明市高新技术开发区产业基地B1-02-01地块物流园二期项目1号库M1-2-1,M1-2-2号","isDefault":0,"type":3,"postcode":null,"mobile":"15887223281","updateDate":120211,"updateTime":100440,"flag":null,"deleteSign":null,"province":0,"city":0,"area":0,"dateTime":null,"provinceStr":"","cityStr":"","areaStr":"","isJde":0,"cityList":[],"areaList":[]}],"selecteAddresId":3278,"receiverNote":"郭红声","receiverPhoneNote":"15887223281","receiverAddressNote":"云南省昆明市高新技术开发区产业基地B1-02-01地块物流园二期项目1号库M1-2-1,M1-2-2号","addressNoNote":93465,"province":0,"city":0,"cityList":[],"area":0,"areaList":[],"receiveInfo":[{"addressId":3278,"addressNo":93465,"addressName":"云南省昆明市高新技术开发区产业基地B1-02-01地块物流园二期项目1号库M1-2-1,M1-2-2号","provinceCode":null,"userId":null,"companyId":null,"receiverName":"郭红声","address":"","isDefault":0,"type":null,"postcode":null,"mobile":"15887223281","updateDate":null,"updateTime":null,"flag":null,"deleteSign":null,"province":null,"city":null,"area":null,"dateTime":null,"provinceStr":null,"cityStr":null,"areaStr":null,"isJde":0}],"paymentAmount":"230.0000","taxRate":null,"demands":[{"demandId":null,"demandParentId":null,"demandParentCode":null,"demandCode":null,"customerId":null,"customerName":null,"customerCode":1127254,"loginName":null,"realName":null,"addressNumber":null,"mobile":null,"productName":null,"productCode":null,"sellerCompanyName":null,"sellerCompanyCode":null,"paymentType":null,"receiveBankName":null,"receiveBankAccount":null,"paymentAmount":"230.0000","productAmount":230,"payableAmount":230,"refundAmount":null,"cancelAmount":null,"discountAmount":0,"orderStatus":null,"refundStatus":null,"receiverName":null,"receiverContact":null,"receiverAddress":null,"remark":null,"revokedReason":null,"auditById":null,"auditByName":null,"auditTime":null,"auditRemark":null,"flhsStatus":null,"pushJdeStatus":null,"createTime":null,"updateTime":null,"submitTime":null,"pushJdeTime":null,"successTime":null,"auditStatus":null,"deleteSign":null,"firstOrderFlag":null,"demandItems":[{"demandSkuId":null,"demandId":null,"distributionId":null,"companyCode":"00103","demandCode":null,"demandParentId":null,"sellerCompanyId":null,"sellerCompanyName":null,"sellerCompanyCode":null,"customerCode":null,"productLineCode":"","productLineName":"","propertyStr":"","storageType":"999","suppDist":null,"productId":314,"productName":"红外测温仪","productCode":"12043728","productNature":null,"brandName":null,"optionStr":"YHW-3","imageUrl":null,"lineNumber":null,"price":230,"rebateId":null,"originalPrice":null,"biddingDiscountTax":null,"salesDiscountTax":null,"quantity":1,"sumQuantity":null,"sendQuantity":null,"lackQuantity":null,"cancelQuantity":null,"cancelAmount":null,"refundQuantity":null,"refundAmount":null,"discountQuantity":null,"discountAmount":null,"subtotal":230,"measuringUnit":"支","auxiliaryMeasuringUnit":null,"procurementMeasuringUnit":null,"pricingMeasuringUnit":null,"materialCode":"","manufacturer":"江苏鱼跃医用仪器有限公司","produceRegisterNum":null,"riskRank":null,"productClassify":null,"createTime":null,"updateTime":null,"deleteSign":null,"calCancelFlag":null,"refundFlag":null,"discountRate":100,"realPay":230,"promotionPrice":null,"promotionTotalPrice":0,"demandParentCode":null,"regionId":null,"regionName":null,"spitSign":null,"activityAmount":0,"couponAmount":0,"activityUnitAmount":0,"couponUnitAmount":null,"activityBasicId":null,"couponSgin":null,"couponSgin2":null,"returnQuantity":null,"returnAmount":null,"customerId":null,"prescription":null,"specifications":"YHW-3","lineCodeDelete":null,"sdOutStorage":null,"licenseNo":null,"demandCodes":null,"areaName":null,"agreementPriceId":null,"offerPrice":null,"orderMark":null,"totalPrice":null,"productLimitBuyList":null,"giftSign":0,"giftProductCode":null,"activityCarDataVoList":[],"orderSource":null,"receiverName":null,"receiverContact":null,"receiverAddress":null,"rebateTripId":null,"allSign":null,"salesReturn":null,"nowAmount":null,"taxSign":0,"plusMinuKey":null,"rebateRule":null,"lockType":null,"lineNumberOrg":null,"changeSgin":null,"addSgin":null,"ptbfa1":null,"ptbfa2":null,"ptbfa3":null,"ptbfa4":null,"ptbfa5":null,"yapeiPriceId":null,"ypLinePromotion":null,"yapeiPrice":null,"companyId":3,"buyerCartId":null,"userReceiveIdx":"","userReceiveIdx2":"","limitNum":null,"productLimitBuyId":null,"alreadyBuyNum":null,"limitBuySign":0,"proposeNum":null,"takeEffectRange":null,"takeEffectTime":null,"endTime1":null,"groupId":null,"fsGroupId":null,"proposalQuantity":null,"proposalSign":0,"manufacturerUserNo":null,"manufacturerUserDesc":null,"manufacturerProductNo":null,"manufacturerProductDesc":null,"manufacturerUserId":null,"manufacturerProductId":null,"busProductCode":null,"paidTime":null,"customerName":null,"paymentAmount":null,"specQuantity":null,"disQuantity":null,"fulfilledQuantity":null,"fulCancelQuantity":null,"couponId":null,"couponId2":null,"limitS":null,"starts":null,"ends":null,"userId":null,"productTax":"","taxRate":0.13,"demandSplitSign":"1","hospitalHopeDate":null,"uniqueKey":null,"productType":null,"activityRuleId":null,"allowanceBeginTime":null,"allowanceEndTime":null,"sign":null,"differenceActivityUserId":null,"groupNumber":1,"groupName":null,"skuGroup":null,"subList":null,"dataJson":null,"skuMergeSign":null,"freseniusPriceId":null,"quantityAndGroupAll":null,"booleaTime":null,"spitSgin":0,"groupSpitSign":0,"sort":0,"circleArea":null,"purchaseEntryId":null,"mustInstallDate":false,"installedDate":null,"installedDateStr":null,"demandLines":null,"subLineNumber":null,"demandSubCode":null,"propertyName":null,"propertyVal":null,"propertyNote":null,"sendManualSign":0,"activityType":0,"giftSettlementMethod":null,"giftInitQuantity":null,"packageCode":null,"giftGroupQuantity":1,"siteCompanyCode":null,"hospitalOrderType":null,"isCollectionAllocation":null,"orderStatus":null,"distributionType":null,"groupCode":null,"groupProductType":null,"pSign":0,"backSign":0,"description":"","stockNumber":null,"rebate":false,"purchaseZeroProductList":[],"prePromotionPrice":null,"prepromotionTotalPrice":0,"preDiscountRate":null,"userBalance":0,"orderType":null}],"demandSubItems":null,"rebateDetail":null,"rebateAmountList":null,"productLineCode":"","productLineName":"","auditLoginName":null,"showPurchaseNo":false,"isRebate":null,"isShowReate":null,"taxRate":0.13,"rebateType":0,"paymentAmountWholeLine":230,"discountAmountWholeLine":0,"payableAmountWholeLine":230,"discountRate":null,"singleRebateAmount":null,"isRebateEdit":null,"payCertUrl":null,"rebateAmount":null,"demandCance":null,"soAdd":null,"soCance":null,"orderReturn":null,"needCustomerConfirm":false,"measuringUnit":null,"productId":null,"version":null,"mainVersion":null,"agencyConfigId":null,"confirmSign":null,"replySign":null,"agencySign":null,"editIng":null,"editIngStr":null,"jdeType":null,"isElectronicSeal":null,"contractAgreementNo":null,"alesDepartmentNo":null,"alesDepartmentName":null,"salesPersonNo":null,"salesPersonName":null,"customerNote":null,"otherNote":null,"contractAgreementCode":null,"projectName":null,"projectCode":null,"regionId":null,"regionName":null,"productLineBindSign":null,"shipVia":null,"orderSource":null,"userBalance":null,"liquidCode":null,"shipmentTypeStr":null,"specifications":"YHW-3","pageStart":null,"pageSize":null,"changeSgin":null,"yapei":2,"companyId":3,"preemptConfig":null,"productSpec":null,"secondAuditSign":null,"secondAuditById":null,"secondAuditByName":null,"secondAuditTime":null,"secondAuditRemark":null,"secondAuditStatus":null,"rebateRule":"0","rebateControlSign":0,"rebateId":null,"preferenceType":null,"preferenceName":null,"disPrice":null,"lineNum":0,"auditStaySign":0,"fileList":null,"imageUrls":null,"total":null,"submitTimeStr":null,"updateTimeStr":null,"auditTimeStr":null,"acceptTime":null,"acceptTimeStr":null,"paidTime":null,"paidTimeStr":null,"erpHandingTime":null,"erpHandingTimeStr":null,"partShippingTime":null,"partShippingTimeStr":null,"allShippingTime":null,"allShippingTimeStr":null,"pushJdeTimeStr":null,"successTimeStr":null,"onlinePaySuccessTime":null,"onlinePaySuccessTimeStr":null,"bankTransactionSerial":null,"newIsTax":null,"countFormula":null,"countNumber":null,"noTaxRebateAmount":0,"isCollectionAllocation":0,"siteCompanyCode":null,"hospitalOrderType":null,"proofTime":null,"proofURL":null,"proofRemark":null,"proofSign":0,"customerCancelSign":null,"cancelRecords":null,"cancelCount":0,"updateNewTime":null,"updateNewTimeStr":null,"fsDedUseSign":null,"notice":null,"shareType":null,"singleRebateSign":null,"cf":false,"isPre":null,"showDemandAuditLineLabel":false,"orderType":null,"newDiscountRate":null,"oldOrderType":null,"oldNewDiscountRate":null,"pendding":null,"pushJdeStatusDemandSub":null,"circleGiftSign":0,"delay":null,"limitS":null,"starts":null,"ends":null,"completedS":null,"confirmDays":null,"remindS":null,"skuGroupList":null,"groupProductType":0,"purchaseId":null,"purchaseCode":null,"sdCancelTime":null,"sdTipSign":0,"receiverNote":null,"receiverPhoneNote":null,"receiverAddressNote":null,"flag":null,"sourceStr":null,"addressNoNote":null,"detailIsSpit":false,"spitSgin":null,"distributionType":null,"rebateValidity":null,"orderChangeType":null,"logoIcon":null,"detail":null,"changeBigType":null,"promotionType":1,"activityTotalAmount":0,"couponTotalAmount":0,"userReceiveId":null,"editSgin":null,"snSgin":null,"jdeOutAmount":null,"totalAllPaAmount":null,"diffShowSgin":0,"lineCodeDelete":null,"startTime":null,"endTime":null,"changeSign":null,"distributionId":null,"limitBuySign":0,"companyType":null,"afterSale":null,"csId":null,"sdStatusNodeParamList":null,"ypPromotionTotal":null,"acrossMainCode":null,"forceApprovedSign":0,"circleGiftContinueSgin":0,"customerCharge":null,"onlinePaySign":0,"recodeDemandSkuList":null,"mergeDemandSkuList":null,"inventoryNode":null,"customCode":null,"terminalSource":null,"potentialClientsId":null,"settlementStatus":null,"firstOrderAuditStatus":null,"confirmReceiptSign":null,"confirmReceiptTime":null,"afterSaleDays":null,"deliveryCompletedTime":null,"taxSign":0,"orderSplitSign":0,"demandRebateSkuList":null,"confirmTime":null,"customerPurchaseNo":null,"mustInstallDate":false,"secondAddressList":null,"splitOrMerge":null,"spitOrderSign":null,"productAmountWholeLine":230,"auditCompanyName":null,"auditCompanyNameCode":null,"edit":false,"ratio":null,"showMoreAttribute":false,"lastNoTaxDiscountAmount":0,"lastDiscountAmount":0,"settementQuantity":1,"userBalancePrice":0,"isEdit":true,"discountRateOne":100,"_rebateType":false,"pSign":0}],"orderStatus":102,"userReceiveId":"","userReceiveId2":"","productAmount":230,"paymentType":0,"accountId":1,"receiveBankName":"国药集团北京医疗器械有限公司","receiveBankAccount":"110927396010401 ","addressNumber":93465,"receiverName":"郭红声","receiverContact":"15887223281","receiverAddress":"云南省昆明市高新技术开发区产业基地B1-02-01地块物流园二期项目1号库M1-2-1,M1-2-2号","buyerCartIds":[null],"sellerCompanyCode":"00103","companyId":3}}
+
+checkDict2: {"success":false,"code":"demand","message":"订单已拒绝,无法审核","data":null,"freshToken":null}
diff --git a/data/cmdc_demand_create_pc/data b/data/cmdc_demand_create_pc/data
new file mode 100644
index 0000000000000000000000000000000000000000..78f088eb1267c42ad63f92b3f429aa645782c2c4
--- /dev/null
+++ b/data/cmdc_demand_create_pc/data
@@ -0,0 +1,28 @@
+# 多采商城登录信息
+"username": "BJ0621"
+"password": "Aa123456"
+
+
+#需求单创建接口地址
+"url": "/order/public/saveAllDemandOrder"
+
+#测试场景:需求单创建
+json_headers: {
+ "Cmdc_access_token": "%s",
+ "Sourcetype": "mall"
+}
+
+"payload": {"国药集团北京医疗器械有限公司":{"datas":[{"demandId":null,"demandParentId":null,"demandParentCode":null,"demandCode":null,"customerId":null,"customerName":null,"customerCode":1127254,"loginName":null,"realName":null,"addressNumber":null,"mobile":null,"productName":null,"productCode":null,"sellerCompanyName":null,"sellerCompanyCode":null,"paymentType":null,"receiveBankName":null,"receiveBankAccount":null,"paymentAmount":"230.0000","productAmount":230,"payableAmount":230,"refundAmount":null,"cancelAmount":null,"discountAmount":0,"orderStatus":null,"refundStatus":null,"receiverName":null,"receiverContact":null,"receiverAddress":null,"remark":null,"revokedReason":null,"auditById":null,"auditByName":null,"auditTime":null,"auditRemark":null,"flhsStatus":null,"pushJdeStatus":null,"createTime":null,"updateTime":null,"submitTime":null,"pushJdeTime":null,"successTime":null,"auditStatus":null,"deleteSign":null,"firstOrderFlag":null,"demandItems":[{"demandSkuId":null,"demandId":null,"distributionId":null,"companyCode":"00103","demandCode":null,"demandParentId":null,"sellerCompanyId":null,"sellerCompanyName":null,"sellerCompanyCode":null,"customerCode":null,"productLineCode":"","productLineName":"","propertyStr":"","storageType":"999","suppDist":null,"productId":314,"productName":"红外测温仪","productCode":"12043728","productNature":null,"brandName":null,"optionStr":"YHW-3","imageUrl":null,"lineNumber":null,"price":230,"rebateId":null,"originalPrice":null,"biddingDiscountTax":null,"salesDiscountTax":null,"quantity":1,"sumQuantity":null,"sendQuantity":null,"lackQuantity":null,"cancelQuantity":null,"cancelAmount":null,"refundQuantity":null,"refundAmount":null,"discountQuantity":null,"discountAmount":null,"subtotal":230,"measuringUnit":"支","auxiliaryMeasuringUnit":null,"procurementMeasuringUnit":null,"pricingMeasuringUnit":null,"materialCode":"","manufacturer":"江苏鱼跃医用仪器有限公司","produceRegisterNum":null,"riskRank":null,"productClassify":null,"createTime":null,"updateTime":null,"deleteSign":null,"calCancelFlag":null,"refundFlag":null,"discountRate":100,"realPay":230,"promotionPrice":null,"promotionTotalPrice":0,"demandParentCode":null,"regionId":null,"regionName":null,"spitSign":null,"activityAmount":0,"couponAmount":0,"activityUnitAmount":0,"couponUnitAmount":null,"activityBasicId":null,"couponSgin":null,"couponSgin2":null,"returnQuantity":null,"returnAmount":null,"customerId":null,"prescription":null,"specifications":"YHW-3","lineCodeDelete":null,"sdOutStorage":null,"licenseNo":null,"demandCodes":null,"areaName":null,"agreementPriceId":null,"offerPrice":null,"orderMark":null,"totalPrice":null,"productLimitBuyList":null,"giftSign":0,"giftProductCode":null,"activityCarDataVoList":[],"orderSource":null,"receiverName":null,"receiverContact":null,"receiverAddress":null,"rebateTripId":null,"allSign":null,"salesReturn":null,"nowAmount":null,"taxSign":0,"plusMinuKey":null,"rebateRule":null,"lockType":null,"lineNumberOrg":null,"changeSgin":null,"addSgin":null,"ptbfa1":null,"ptbfa2":null,"ptbfa3":null,"ptbfa4":null,"ptbfa5":null,"yapeiPriceId":null,"ypLinePromotion":null,"yapeiPrice":null,"companyId":3,"buyerCartId":null,"userReceiveIdx":"","userReceiveIdx2":"","limitNum":null,"productLimitBuyId":null,"alreadyBuyNum":null,"limitBuySign":0,"proposeNum":null,"takeEffectRange":null,"takeEffectTime":null,"endTime1":null,"groupId":null,"fsGroupId":null,"proposalQuantity":null,"proposalSign":0,"manufacturerUserNo":null,"manufacturerUserDesc":null,"manufacturerProductNo":null,"manufacturerProductDesc":null,"manufacturerUserId":null,"manufacturerProductId":null,"busProductCode":null,"paidTime":null,"customerName":null,"paymentAmount":null,"specQuantity":null,"disQuantity":null,"fulfilledQuantity":null,"fulCancelQuantity":null,"couponId":null,"couponId2":null,"limitS":null,"starts":null,"ends":null,"userId":null,"productTax":"","taxRate":0.13,"demandSplitSign":"1","hospitalHopeDate":null,"uniqueKey":null,"productType":null,"activityRuleId":null,"allowanceBeginTime":null,"allowanceEndTime":null,"sign":null,"differenceActivityUserId":null,"groupNumber":1,"groupName":null,"skuGroup":null,"subList":null,"dataJson":null,"skuMergeSign":null,"freseniusPriceId":null,"quantityAndGroupAll":null,"booleaTime":null,"spitSgin":0,"groupSpitSign":0,"sort":0,"circleArea":null,"purchaseEntryId":null,"mustInstallDate":false,"installedDate":null,"installedDateStr":null,"demandLines":null,"subLineNumber":null,"demandSubCode":null,"propertyName":null,"propertyVal":null,"propertyNote":null,"sendManualSign":0,"activityType":0,"giftSettlementMethod":null,"giftInitQuantity":null,"packageCode":null,"giftGroupQuantity":1,"siteCompanyCode":null,"hospitalOrderType":null,"isCollectionAllocation":null,"orderStatus":null,"distributionType":null,"groupCode":null,"groupProductType":null,"pSign":0,"backSign":0,"description":"","stockNumber":null,"rebate":false,"purchaseZeroProductList":[],"prePromotionPrice":null,"prepromotionTotalPrice":0,"preDiscountRate":null,"userBalance":0}],"demandSubItems":null,"rebateDetail":null,"rebateAmountList":null,"productLineCode":"","productLineName":"","auditLoginName":null,"showPurchaseNo":false,"isRebate":null,"isShowReate":null,"taxRate":0.13,"rebateType":0,"paymentAmountWholeLine":230,"discountAmountWholeLine":0,"payableAmountWholeLine":230,"discountRate":null,"singleRebateAmount":null,"isRebateEdit":null,"payCertUrl":null,"rebateAmount":null,"demandCance":null,"soAdd":null,"soCance":null,"orderReturn":null,"needCustomerConfirm":false,"measuringUnit":null,"productId":null,"version":null,"mainVersion":null,"agencyConfigId":null,"confirmSign":null,"replySign":null,"agencySign":null,"editIng":null,"editIngStr":null,"jdeType":null,"isElectronicSeal":null,"contractAgreementNo":null,"alesDepartmentNo":null,"alesDepartmentName":null,"salesPersonNo":null,"salesPersonName":null,"customerNote":null,"otherNote":null,"contractAgreementCode":null,"projectName":null,"projectCode":null,"regionId":null,"regionName":null,"productLineBindSign":null,"shipVia":null,"orderSource":null,"userBalance":null,"liquidCode":null,"shipmentTypeStr":null,"specifications":"YHW-3","pageStart":null,"pageSize":null,"changeSgin":null,"yapei":2,"companyId":3,"preemptConfig":null,"productSpec":null,"secondAuditSign":null,"secondAuditById":null,"secondAuditByName":null,"secondAuditTime":null,"secondAuditRemark":null,"secondAuditStatus":null,"rebateRule":"0","rebateControlSign":0,"rebateId":null,"preferenceType":null,"preferenceName":null,"disPrice":null,"lineNum":0,"auditStaySign":0,"fileList":null,"imageUrls":null,"total":null,"submitTimeStr":null,"updateTimeStr":null,"auditTimeStr":null,"acceptTime":null,"acceptTimeStr":null,"paidTime":null,"paidTimeStr":null,"erpHandingTime":null,"erpHandingTimeStr":null,"partShippingTime":null,"partShippingTimeStr":null,"allShippingTime":null,"allShippingTimeStr":null,"pushJdeTimeStr":null,"successTimeStr":null,"onlinePaySuccessTime":null,"onlinePaySuccessTimeStr":null,"bankTransactionSerial":null,"newIsTax":null,"countFormula":null,"countNumber":null,"noTaxRebateAmount":0,"isCollectionAllocation":0,"siteCompanyCode":null,"hospitalOrderType":null,"proofTime":null,"proofURL":null,"proofRemark":null,"proofSign":0,"customerCancelSign":null,"cancelRecords":null,"cancelCount":0,"updateNewTime":null,"updateNewTimeStr":null,"fsDedUseSign":null,"notice":null,"shareType":null,"singleRebateSign":null,"cf":false,"isPre":null,"showDemandAuditLineLabel":false,"orderType":null,"newDiscountRate":null,"oldOrderType":null,"oldNewDiscountRate":null,"pendding":null,"pushJdeStatusDemandSub":null,"circleGiftSign":0,"delay":null,"limitS":null,"starts":null,"ends":null,"completedS":null,"confirmDays":null,"remindS":null,"skuGroupList":null,"groupProductType":0,"purchaseId":null,"purchaseCode":null,"sdCancelTime":null,"sdTipSign":0,"receiverNote":null,"receiverPhoneNote":null,"receiverAddressNote":null,"flag":null,"sourceStr":null,"addressNoNote":null,"detailIsSpit":false,"spitSgin":null,"distributionType":null,"rebateValidity":null,"orderChangeType":null,"logoIcon":null,"detail":null,"changeBigType":null,"promotionType":1,"activityTotalAmount":0,"couponTotalAmount":0,"userReceiveId":null,"editSgin":null,"snSgin":null,"jdeOutAmount":null,"totalAllPaAmount":null,"diffShowSgin":0,"lineCodeDelete":null,"startTime":null,"endTime":null,"changeSign":null,"distributionId":null,"limitBuySign":0,"companyType":null,"afterSale":null,"csId":null,"sdStatusNodeParamList":null,"ypPromotionTotal":null,"acrossMainCode":null,"forceApprovedSign":0,"circleGiftContinueSgin":0,"customerCharge":null,"onlinePaySign":0,"recodeDemandSkuList":null,"mergeDemandSkuList":null,"inventoryNode":null,"customCode":null,"terminalSource":null,"potentialClientsId":null,"settlementStatus":null,"firstOrderAuditStatus":null,"confirmReceiptSign":null,"confirmReceiptTime":null,"afterSaleDays":null,"deliveryCompletedTime":null,"taxSign":0,"orderSplitSign":0,"demandRebateSkuList":null,"confirmTime":null,"customerPurchaseNo":null,"mustInstallDate":false,"secondAddressList":null,"splitOrMerge":null,"spitOrderSign":null,"productAmountWholeLine":230,"auditCompanyName":null,"auditCompanyNameCode":null,"edit":false,"ratio":null,"showMoreAttribute":false,"lastNoTaxDiscountAmount":0,"lastDiscountAmount":0,"settementQuantity":1,"userBalancePrice":0,"isEdit":true,"discountRateOne":100,"_rebateType":false}],"addressConfig":2,"openPreTaxAmount":0,"promotionOrRebate":1,"promotionType":1,"showChangePromotionOrRebate":false,"couponTotalAmount":0,"activityTotalAmount":0,"totalQuantity":1,"totalPrice":230,"discountAmount":0,"demandItems":[{"demandSkuId":null,"demandId":null,"distributionId":null,"companyCode":"00103","demandCode":null,"demandParentId":null,"sellerCompanyId":null,"sellerCompanyName":null,"sellerCompanyCode":null,"customerCode":null,"productLineCode":"","productLineName":"","propertyStr":"","storageType":"999","suppDist":null,"productId":314,"productName":"红外测温仪","productCode":"12043728","productNature":null,"brandName":null,"optionStr":"YHW-3","imageUrl":null,"lineNumber":null,"price":230,"rebateId":null,"originalPrice":null,"biddingDiscountTax":null,"salesDiscountTax":null,"quantity":1,"sumQuantity":null,"sendQuantity":null,"lackQuantity":null,"cancelQuantity":null,"cancelAmount":null,"refundQuantity":null,"refundAmount":null,"discountQuantity":null,"discountAmount":null,"subtotal":230,"measuringUnit":"支","auxiliaryMeasuringUnit":null,"procurementMeasuringUnit":null,"pricingMeasuringUnit":null,"materialCode":"","manufacturer":"江苏鱼跃医用仪器有限公司","produceRegisterNum":null,"riskRank":null,"productClassify":null,"createTime":null,"updateTime":null,"deleteSign":null,"calCancelFlag":null,"refundFlag":null,"discountRate":100,"realPay":230,"promotionPrice":null,"promotionTotalPrice":0,"demandParentCode":null,"regionId":null,"regionName":null,"spitSign":null,"activityAmount":0,"couponAmount":0,"activityUnitAmount":0,"couponUnitAmount":null,"activityBasicId":null,"couponSgin":null,"couponSgin2":null,"returnQuantity":null,"returnAmount":null,"customerId":null,"prescription":null,"specifications":"YHW-3","lineCodeDelete":null,"sdOutStorage":null,"licenseNo":null,"demandCodes":null,"areaName":null,"agreementPriceId":null,"offerPrice":null,"orderMark":null,"totalPrice":null,"productLimitBuyList":null,"giftSign":0,"giftProductCode":null,"activityCarDataVoList":[],"orderSource":null,"receiverName":null,"receiverContact":null,"receiverAddress":null,"rebateTripId":null,"allSign":null,"salesReturn":null,"nowAmount":null,"taxSign":0,"plusMinuKey":null,"rebateRule":null,"lockType":null,"lineNumberOrg":null,"changeSgin":null,"addSgin":null,"ptbfa1":null,"ptbfa2":null,"ptbfa3":null,"ptbfa4":null,"ptbfa5":null,"yapeiPriceId":null,"ypLinePromotion":null,"yapeiPrice":null,"companyId":3,"buyerCartId":null,"userReceiveIdx":"","userReceiveIdx2":"","limitNum":null,"productLimitBuyId":null,"alreadyBuyNum":null,"limitBuySign":0,"proposeNum":null,"takeEffectRange":null,"takeEffectTime":null,"endTime1":null,"groupId":null,"fsGroupId":null,"proposalQuantity":null,"proposalSign":0,"manufacturerUserNo":null,"manufacturerUserDesc":null,"manufacturerProductNo":null,"manufacturerProductDesc":null,"manufacturerUserId":null,"manufacturerProductId":null,"busProductCode":null,"paidTime":null,"customerName":null,"paymentAmount":null,"specQuantity":null,"disQuantity":null,"fulfilledQuantity":null,"fulCancelQuantity":null,"couponId":null,"couponId2":null,"limitS":null,"starts":null,"ends":null,"userId":null,"productTax":"","taxRate":0.13,"demandSplitSign":"1","hospitalHopeDate":null,"uniqueKey":null,"productType":null,"activityRuleId":null,"allowanceBeginTime":null,"allowanceEndTime":null,"sign":null,"differenceActivityUserId":null,"groupNumber":1,"groupName":null,"skuGroup":null,"subList":null,"dataJson":null,"skuMergeSign":null,"freseniusPriceId":null,"quantityAndGroupAll":null,"booleaTime":null,"spitSgin":0,"groupSpitSign":0,"sort":0,"circleArea":null,"purchaseEntryId":null,"mustInstallDate":false,"installedDate":null,"installedDateStr":null,"demandLines":null,"subLineNumber":null,"demandSubCode":null,"propertyName":null,"propertyVal":null,"propertyNote":null,"sendManualSign":0,"activityType":0,"giftSettlementMethod":null,"giftInitQuantity":null,"packageCode":null,"giftGroupQuantity":1,"siteCompanyCode":null,"hospitalOrderType":null,"isCollectionAllocation":null,"orderStatus":null,"distributionType":null,"groupCode":null,"groupProductType":null,"pSign":0,"backSign":0,"description":"","stockNumber":null,"rebate":false,"purchaseZeroProductList":[],"prePromotionPrice":null,"prepromotionTotalPrice":0,"preDiscountRate":null,"userBalance":0}],"productPrice":"230.0000","fileList":[],"showInfo":false,"pageStart":1,"pageSize":5,"defaultBankInfo":{"accountId":1,"companyId":3,"companyName":"国药集团北京医疗器械有限公司","registeredAddress":"北京市朝阳区安定路39号长新大厦16层","bank":"招商银行股份有限公司北京东直门支行 ","accountName":"国药集团北京医疗器械有限公司","accountNumber":"110927396010401 ","disableSign":0,"deleteSign":0,"createTime":"2020-12-30 17:18:49","updateTime":"2021-05-28 09:54:12","createBy":2,"updateBy":2,"realName":"北京医疗器械公司1admin"},"addressList":[{"addressId":3278,"addressNo":93465,"addressName":null,"provinceCode":null,"userId":null,"companyId":3,"receiverName":"郭红声","address":"云南省昆明市高新技术开发区产业基地B1-02-01地块物流园二期项目1号库M1-2-1,M1-2-2号","isDefault":0,"type":3,"postcode":null,"mobile":"15887223281","updateDate":120211,"updateTime":100440,"flag":null,"deleteSign":null,"province":0,"city":0,"area":0,"dateTime":null,"provinceStr":"","cityStr":"","areaStr":"","isJde":0,"cityList":[],"areaList":[]}],"selecteAddresId":3278,"receiverNote":"郭红声","receiverPhoneNote":"15887223281","receiverAddressNote":"云南省昆明市高新技术开发区产业基地B1-02-01地块物流园二期项目1号库M1-2-1,M1-2-2号","addressNoNote":93465,"province":0,"city":0,"cityList":[],"area":0,"areaList":[],"receiveInfo":[{"addressId":3278,"addressNo":93465,"addressName":"云南省昆明市高新技术开发区产业基地B1-02-01地块物流园二期项目1号库M1-2-1,M1-2-2号","provinceCode":null,"userId":null,"companyId":null,"receiverName":"郭红声","address":"","isDefault":0,"type":null,"postcode":null,"mobile":"15887223281","updateDate":null,"updateTime":null,"flag":null,"deleteSign":null,"province":null,"city":null,"area":null,"dateTime":null,"provinceStr":null,"cityStr":null,"areaStr":null,"isJde":0}],"paymentAmount":"230.0000","taxRate":null,"demands":[{"demandId":null,"demandParentId":null,"demandParentCode":null,"demandCode":null,"customerId":null,"customerName":null,"customerCode":1127254,"loginName":null,"realName":null,"addressNumber":null,"mobile":null,"productName":null,"productCode":null,"sellerCompanyName":null,"sellerCompanyCode":null,"paymentType":null,"receiveBankName":null,"receiveBankAccount":null,"paymentAmount":"230.0000","productAmount":230,"payableAmount":230,"refundAmount":null,"cancelAmount":null,"discountAmount":0,"orderStatus":null,"refundStatus":null,"receiverName":null,"receiverContact":null,"receiverAddress":null,"remark":null,"revokedReason":null,"auditById":null,"auditByName":null,"auditTime":null,"auditRemark":null,"flhsStatus":null,"pushJdeStatus":null,"createTime":null,"updateTime":null,"submitTime":null,"pushJdeTime":null,"successTime":null,"auditStatus":null,"deleteSign":null,"firstOrderFlag":null,"demandItems":[{"demandSkuId":null,"demandId":null,"distributionId":null,"companyCode":"00103","demandCode":null,"demandParentId":null,"sellerCompanyId":null,"sellerCompanyName":null,"sellerCompanyCode":null,"customerCode":null,"productLineCode":"","productLineName":"","propertyStr":"","storageType":"999","suppDist":null,"productId":314,"productName":"红外测温仪","productCode":"12043728","productNature":null,"brandName":null,"optionStr":"YHW-3","imageUrl":null,"lineNumber":null,"price":230,"rebateId":null,"originalPrice":null,"biddingDiscountTax":null,"salesDiscountTax":null,"quantity":1,"sumQuantity":null,"sendQuantity":null,"lackQuantity":null,"cancelQuantity":null,"cancelAmount":null,"refundQuantity":null,"refundAmount":null,"discountQuantity":null,"discountAmount":null,"subtotal":230,"measuringUnit":"支","auxiliaryMeasuringUnit":null,"procurementMeasuringUnit":null,"pricingMeasuringUnit":null,"materialCode":"","manufacturer":"江苏鱼跃医用仪器有限公司","produceRegisterNum":null,"riskRank":null,"productClassify":null,"createTime":null,"updateTime":null,"deleteSign":null,"calCancelFlag":null,"refundFlag":null,"discountRate":100,"realPay":230,"promotionPrice":null,"promotionTotalPrice":0,"demandParentCode":null,"regionId":null,"regionName":null,"spitSign":null,"activityAmount":0,"couponAmount":0,"activityUnitAmount":0,"couponUnitAmount":null,"activityBasicId":null,"couponSgin":null,"couponSgin2":null,"returnQuantity":null,"returnAmount":null,"customerId":null,"prescription":null,"specifications":"YHW-3","lineCodeDelete":null,"sdOutStorage":null,"licenseNo":null,"demandCodes":null,"areaName":null,"agreementPriceId":null,"offerPrice":null,"orderMark":null,"totalPrice":null,"productLimitBuyList":null,"giftSign":0,"giftProductCode":null,"activityCarDataVoList":[],"orderSource":null,"receiverName":null,"receiverContact":null,"receiverAddress":null,"rebateTripId":null,"allSign":null,"salesReturn":null,"nowAmount":null,"taxSign":0,"plusMinuKey":null,"rebateRule":null,"lockType":null,"lineNumberOrg":null,"changeSgin":null,"addSgin":null,"ptbfa1":null,"ptbfa2":null,"ptbfa3":null,"ptbfa4":null,"ptbfa5":null,"yapeiPriceId":null,"ypLinePromotion":null,"yapeiPrice":null,"companyId":3,"buyerCartId":null,"userReceiveIdx":"","userReceiveIdx2":"","limitNum":null,"productLimitBuyId":null,"alreadyBuyNum":null,"limitBuySign":0,"proposeNum":null,"takeEffectRange":null,"takeEffectTime":null,"endTime1":null,"groupId":null,"fsGroupId":null,"proposalQuantity":null,"proposalSign":0,"manufacturerUserNo":null,"manufacturerUserDesc":null,"manufacturerProductNo":null,"manufacturerProductDesc":null,"manufacturerUserId":null,"manufacturerProductId":null,"busProductCode":null,"paidTime":null,"customerName":null,"paymentAmount":null,"specQuantity":null,"disQuantity":null,"fulfilledQuantity":null,"fulCancelQuantity":null,"couponId":null,"couponId2":null,"limitS":null,"starts":null,"ends":null,"userId":null,"productTax":"","taxRate":0.13,"demandSplitSign":"1","hospitalHopeDate":null,"uniqueKey":null,"productType":null,"activityRuleId":null,"allowanceBeginTime":null,"allowanceEndTime":null,"sign":null,"differenceActivityUserId":null,"groupNumber":1,"groupName":null,"skuGroup":null,"subList":null,"dataJson":null,"skuMergeSign":null,"freseniusPriceId":null,"quantityAndGroupAll":null,"booleaTime":null,"spitSgin":0,"groupSpitSign":0,"sort":0,"circleArea":null,"purchaseEntryId":null,"mustInstallDate":false,"installedDate":null,"installedDateStr":null,"demandLines":null,"subLineNumber":null,"demandSubCode":null,"propertyName":null,"propertyVal":null,"propertyNote":null,"sendManualSign":0,"activityType":0,"giftSettlementMethod":null,"giftInitQuantity":null,"packageCode":null,"giftGroupQuantity":1,"siteCompanyCode":null,"hospitalOrderType":null,"isCollectionAllocation":null,"orderStatus":null,"distributionType":null,"groupCode":null,"groupProductType":null,"pSign":0,"backSign":0,"description":"","stockNumber":null,"rebate":false,"purchaseZeroProductList":[],"prePromotionPrice":null,"prepromotionTotalPrice":0,"preDiscountRate":null,"userBalance":0,"orderType":null}],"demandSubItems":null,"rebateDetail":null,"rebateAmountList":null,"productLineCode":"","productLineName":"","auditLoginName":null,"showPurchaseNo":false,"isRebate":null,"isShowReate":null,"taxRate":0.13,"rebateType":0,"paymentAmountWholeLine":230,"discountAmountWholeLine":0,"payableAmountWholeLine":230,"discountRate":null,"singleRebateAmount":null,"isRebateEdit":null,"payCertUrl":null,"rebateAmount":null,"demandCance":null,"soAdd":null,"soCance":null,"orderReturn":null,"needCustomerConfirm":false,"measuringUnit":null,"productId":null,"version":null,"mainVersion":null,"agencyConfigId":null,"confirmSign":null,"replySign":null,"agencySign":null,"editIng":null,"editIngStr":null,"jdeType":null,"isElectronicSeal":null,"contractAgreementNo":null,"alesDepartmentNo":null,"alesDepartmentName":null,"salesPersonNo":null,"salesPersonName":null,"customerNote":null,"otherNote":null,"contractAgreementCode":null,"projectName":null,"projectCode":null,"regionId":null,"regionName":null,"productLineBindSign":null,"shipVia":null,"orderSource":null,"userBalance":null,"liquidCode":null,"shipmentTypeStr":null,"specifications":"YHW-3","pageStart":null,"pageSize":null,"changeSgin":null,"yapei":2,"companyId":3,"preemptConfig":null,"productSpec":null,"secondAuditSign":null,"secondAuditById":null,"secondAuditByName":null,"secondAuditTime":null,"secondAuditRemark":null,"secondAuditStatus":null,"rebateRule":"0","rebateControlSign":0,"rebateId":null,"preferenceType":null,"preferenceName":null,"disPrice":null,"lineNum":0,"auditStaySign":0,"fileList":null,"imageUrls":null,"total":null,"submitTimeStr":null,"updateTimeStr":null,"auditTimeStr":null,"acceptTime":null,"acceptTimeStr":null,"paidTime":null,"paidTimeStr":null,"erpHandingTime":null,"erpHandingTimeStr":null,"partShippingTime":null,"partShippingTimeStr":null,"allShippingTime":null,"allShippingTimeStr":null,"pushJdeTimeStr":null,"successTimeStr":null,"onlinePaySuccessTime":null,"onlinePaySuccessTimeStr":null,"bankTransactionSerial":null,"newIsTax":null,"countFormula":null,"countNumber":null,"noTaxRebateAmount":0,"isCollectionAllocation":0,"siteCompanyCode":null,"hospitalOrderType":null,"proofTime":null,"proofURL":null,"proofRemark":null,"proofSign":0,"customerCancelSign":null,"cancelRecords":null,"cancelCount":0,"updateNewTime":null,"updateNewTimeStr":null,"fsDedUseSign":null,"notice":null,"shareType":null,"singleRebateSign":null,"cf":false,"isPre":null,"showDemandAuditLineLabel":false,"orderType":null,"newDiscountRate":null,"oldOrderType":null,"oldNewDiscountRate":null,"pendding":null,"pushJdeStatusDemandSub":null,"circleGiftSign":0,"delay":null,"limitS":null,"starts":null,"ends":null,"completedS":null,"confirmDays":null,"remindS":null,"skuGroupList":null,"groupProductType":0,"purchaseId":null,"purchaseCode":null,"sdCancelTime":null,"sdTipSign":0,"receiverNote":null,"receiverPhoneNote":null,"receiverAddressNote":null,"flag":null,"sourceStr":null,"addressNoNote":null,"detailIsSpit":false,"spitSgin":null,"distributionType":null,"rebateValidity":null,"orderChangeType":null,"logoIcon":null,"detail":null,"changeBigType":null,"promotionType":1,"activityTotalAmount":0,"couponTotalAmount":0,"userReceiveId":null,"editSgin":null,"snSgin":null,"jdeOutAmount":null,"totalAllPaAmount":null,"diffShowSgin":0,"lineCodeDelete":null,"startTime":null,"endTime":null,"changeSign":null,"distributionId":null,"limitBuySign":0,"companyType":null,"afterSale":null,"csId":null,"sdStatusNodeParamList":null,"ypPromotionTotal":null,"acrossMainCode":null,"forceApprovedSign":0,"circleGiftContinueSgin":0,"customerCharge":null,"onlinePaySign":0,"recodeDemandSkuList":null,"mergeDemandSkuList":null,"inventoryNode":null,"customCode":null,"terminalSource":null,"potentialClientsId":null,"settlementStatus":null,"firstOrderAuditStatus":null,"confirmReceiptSign":null,"confirmReceiptTime":null,"afterSaleDays":null,"deliveryCompletedTime":null,"taxSign":0,"orderSplitSign":0,"demandRebateSkuList":null,"confirmTime":null,"customerPurchaseNo":null,"mustInstallDate":false,"secondAddressList":null,"splitOrMerge":null,"spitOrderSign":null,"productAmountWholeLine":230,"auditCompanyName":null,"auditCompanyNameCode":null,"edit":false,"ratio":null,"showMoreAttribute":false,"lastNoTaxDiscountAmount":0,"lastDiscountAmount":0,"settementQuantity":1,"userBalancePrice":0,"isEdit":true,"discountRateOne":100,"_rebateType":false,"pSign":0}],"orderStatus":102,"userReceiveId":"","userReceiveId2":"","productAmount":230,"paymentType":0,"accountId":1,"receiveBankName":"国药集团北京医疗器械有限公司","receiveBankAccount":"110927396010401 ","addressNumber":93465,"receiverName":"郭红声","receiverContact":"15887223281","receiverAddress":"云南省昆明市高新技术开发区产业基地B1-02-01地块物流园二期项目1号库M1-2-1,M1-2-2号","buyerCartIds":[null],"sellerCompanyCode":"00103","companyId":3}}
+#预期结果
+checkDict: {"success":true,"code":"200","message":null}
+
+#需求单草稿订单创建接口地址
+"url2": "/product/public/draft/add"
+# 请求报文
+"payload2": {"productMap":{"国药集团北京医疗器械有限公司":{"datas":[{"demandId":null,"demandParentId":null,"demandParentCode":null,"demandCode":null,"customerId":null,"customerName":null,"customerCode":1127254,"loginName":null,"realName":null,"addressNumber":null,"mobile":null,"productName":null,"productCode":null,"sellerCompanyName":null,"sellerCompanyCode":null,"paymentType":null,"receiveBankName":null,"receiveBankAccount":null,"paymentAmount":"230.0000","productAmount":230,"payableAmount":230,"refundAmount":null,"cancelAmount":null,"discountAmount":0,"orderStatus":null,"refundStatus":null,"receiverName":null,"receiverContact":null,"receiverAddress":null,"remark":null,"revokedReason":null,"auditById":null,"auditByName":null,"auditTime":null,"auditRemark":null,"flhsStatus":null,"pushJdeStatus":null,"createTime":null,"updateTime":null,"submitTime":null,"pushJdeTime":null,"successTime":null,"auditStatus":null,"deleteSign":null,"firstOrderFlag":null,"demandItems":[{"demandSkuId":null,"demandId":null,"distributionId":null,"companyCode":"00103","demandCode":null,"demandParentId":null,"sellerCompanyId":null,"sellerCompanyName":null,"sellerCompanyCode":null,"customerCode":null,"productLineCode":"","productLineName":"","propertyStr":null,"storageType":"999","suppDist":null,"productId":314,"productName":"红外测温仪","productCode":"12043728","productNature":"01","brandName":null,"optionStr":"YHW-3","imageUrl":null,"lineNumber":null,"price":230,"rebateId":null,"rebateDetail":null,"useMaxLimit":null,"useLimitStart":null,"useBalance":null,"originalPrice":null,"biddingDiscountTax":null,"salesDiscountTax":null,"quantity":1,"sumQuantity":null,"sendQuantity":null,"lackQuantity":null,"cancelQuantity":null,"cancelAmount":null,"refundQuantity":null,"refundAmount":null,"discountQuantity":null,"discountAmount":null,"subtotal":230,"measuringUnit":"支","auxiliaryMeasuringUnit":"BN","procurementMeasuringUnit":"BN","pricingMeasuringUnit":"BN","materialCode":"","manufacturer":"江苏鱼跃医用仪器有限公司","produceRegisterNum":null,"riskRank":"002","productClassify":"6820","createTime":null,"updateTime":null,"deleteSign":null,"calCancelFlag":null,"refundFlag":null,"discountRate":1,"realPay":230,"promotionPrice":null,"promotionTotalPrice":0,"demandParentCode":null,"regionId":null,"regionName":null,"spitSign":null,"activityAmount":null,"couponAmount":null,"activityUnitAmount":0,"couponUnitAmount":null,"activityBasicId":null,"couponSgin":null,"couponSgin2":null,"returnQuantity":null,"returnAmount":null,"customerId":null,"prescription":null,"specifications":"YHW-3","lineCodeDelete":null,"sdOutStorage":null,"licenseNo":null,"demandCodes":null,"areaName":null,"agreementPriceId":0,"offerPrice":null,"orderMark":null,"totalPrice":null,"productLimitBuyList":null,"giftSign":0,"giftProductCode":null,"activityCarDataVoList":null,"orderSource":null,"receiverName":null,"receiverContact":null,"receiverAddress":null,"rebateTripId":null,"allSign":null,"salesReturn":null,"nowAmount":null,"taxSign":0,"plusMinuKey":null,"rebateRule":null,"areaPrice":null,"lockType":null,"estimatedDeliveryDate":null,"licenseInfoFeignDtos":null,"receivedQty":null,"rebateSign":null,"lineNumberOrg":null,"changeSgin":null,"addSgin":null,"ptbfa1":null,"ptbfa2":null,"ptbfa3":null,"ptbfa4":null,"ptbfa5":null,"yapeiPriceId":null,"ypLinePromotion":null,"yapeiPrice":null,"companyId":3,"buyerCartId":null,"userReceiveIdx":null,"userReceiveIdx2":null,"limitNum":null,"productLimitBuyId":null,"alreadyBuyNum":null,"limitBuySign":0,"proposeNum":null,"takeEffectRange":null,"takeEffectTime":null,"endTime1":null,"groupId":null,"fsGroupId":null,"proposalQuantity":null,"proposalSign":0,"manufacturerUserNo":null,"manufacturerUserDesc":null,"manufacturerProductNo":null,"manufacturerProductDesc":null,"manufacturerUserId":null,"manufacturerProductId":null,"busProductCode":null,"paidTime":null,"customerName":null,"paymentAmount":null,"specQuantity":null,"disQuantity":null,"fulfilledQuantity":null,"fulCancelQuantity":null,"couponId":null,"couponId2":null,"limitS":null,"starts":null,"ends":null,"userId":null,"productTax":"","taxRate":0.13,"demandSplitSign":"1","hospitalHopeDate":null,"uniqueKey":null,"productType":null,"activityRuleId":null,"allowanceBeginTime":null,"allowanceEndTime":null,"sign":null,"differenceActivityUserId":null,"groupNumber":null,"groupName":null,"skuGroup":null,"subList":null,"dataJson":null,"skuMergeSign":null,"freseniusPriceId":null,"quantityAndGroupAll":null,"booleaTime":null,"spitSgin":0,"groupSpitSign":0,"sort":0,"circleArea":null,"purchaseEntryId":null,"mustInstallDate":false,"installedDate":null,"installedDateStr":null,"demandLines":null,"subLineNumber":null,"demandSubCode":null,"propertyName":null,"propertyVal":null,"propertyNote":null,"sendManualSign":0,"activityType":0,"giftSettlementMethod":null,"giftInitQuantity":null,"packageCode":null,"giftGroupQuantity":null,"siteCompanyCode":null,"hospitalOrderType":null,"isCollectionAllocation":null,"recDifferenceQty":null,"orderStatus":null,"distributionType":null,"groupCode":null,"groupProductType":null,"pSign":0,"backSign":0,"description":"","stockNumber":null,"priceChange":false,"rebate":false,"giftList":[],"purchaseZeroProductList":[],"prePromotionPrice":null,"prepromotionTotalPrice":0,"preDiscountRate":null,"userBalance":0}],"expireDemandSkus":null,"demandSubItems":null,"rebateDetail":null,"rebateAmountList":null,"productLineCode":"","productLineName":"","auditLoginName":null,"showPurchaseNo":false,"isRebate":null,"isShowReate":null,"taxRate":0.13,"rebateType":0,"paymentAmountWholeLine":230,"discountAmountWholeLine":0,"payableAmountWholeLine":230,"discountRate":null,"singleRebateAmount":null,"isRebateEdit":null,"payCertUrl":null,"rebateAmount":null,"demandCance":null,"soAdd":null,"soCance":null,"orderReturn":null,"needCustomerConfirm":false,"measuringUnit":null,"productId":null,"version":null,"mainVersion":null,"agencyConfigId":null,"confirmSign":null,"replySign":null,"agencySign":null,"editIng":null,"editIngStr":null,"jdeType":null,"isElectronicSeal":null,"contractAgreementNo":null,"alesDepartmentNo":null,"alesDepartmentName":null,"salesPersonNo":null,"salesPersonName":null,"customerNote":null,"otherNote":null,"contractAgreementCode":null,"projectName":null,"projectCode":null,"regionId":null,"regionName":null,"productLineBindSign":null,"shipVia":null,"orderSource":null,"userBalance":null,"liquidCode":null,"shipmentTypeStr":null,"specifications":"YHW-3","pageStart":1,"pageSize":5,"changeSgin":null,"yapei":2,"companyId":3,"preemptConfig":null,"productSpec":null,"secondAuditSign":null,"secondAuditById":null,"secondAuditByName":null,"secondAuditTime":null,"secondAuditRemark":null,"secondAuditStatus":null,"rebateRule":"0","rebateControlSign":0,"rebateId":null,"preferenceType":null,"preferenceName":null,"disPrice":null,"lineNum":0,"auditStaySign":0,"fileList":null,"imageUrls":null,"total":null,"submitTimeStr":null,"updateTimeStr":null,"auditTimeStr":null,"acceptTime":null,"acceptTimeStr":null,"paidTime":null,"paidTimeStr":null,"erpHandingTime":null,"erpHandingTimeStr":null,"partShippingTime":null,"partShippingTimeStr":null,"allShippingTime":null,"allShippingTimeStr":null,"pushJdeTimeStr":null,"successTimeStr":null,"onlinePaySuccessTime":null,"onlinePaySuccessTimeStr":null,"bankTransactionSerial":null,"newIsTax":null,"countFormula":null,"countNumber":null,"noTaxRebateAmount":0,"isCollectionAllocation":0,"siteCompanyCode":null,"hospitalOrderType":null,"proofTime":null,"proofURL":null,"proofRemark":null,"proofSign":0,"customerCancelSign":null,"cancelRecords":null,"cancelCount":0,"updateNewTime":null,"updateNewTimeStr":null,"fsDedUseSign":null,"notice":null,"shareType":null,"singleRebateSign":null,"cf":false,"isPre":null,"showDemandAuditLineLabel":false,"orderType":null,"newDiscountRate":null,"oldOrderType":null,"oldNewDiscountRate":null,"pendding":null,"modifySign":null,"refuseType":null,"groupChangeSign":null,"custModify":null,"pushJdeStatusDemandSub":null,"circleGiftSign":0,"delay":null,"limitS":null,"starts":null,"ends":null,"completedS":null,"confirmDays":null,"remindS":null,"skuGroupList":null,"groupProductType":0,"purchaseId":null,"purchaseCode":null,"sdCancelTime":null,"sdTipSign":0,"receiverNote":null,"receiverPhoneNote":null,"receiverAddressNote":null,"flag":null,"sourceStr":null,"addressNoNote":null,"detailIsSpit":false,"spitSgin":null,"distributionType":null,"rebateValidity":null,"orderChangeType":null,"logoIcon":null,"detail":null,"changeBigType":null,"promotionType":1,"activityTotalAmount":0,"couponTotalAmount":0,"userReceiveId":null,"editSgin":null,"snSgin":null,"jdeOutAmount":null,"totalAllPaAmount":null,"diffShowSgin":0,"lineCodeDelete":null,"startTime":null,"endTime":null,"changeSign":null,"distributionId":null,"limitBuySign":0,"companyType":null,"afterSale":null,"csId":null,"sdStatusNodeParamList":null,"ypPromotionTotal":null,"acrossMainCode":null,"forceApprovedSign":0,"circleGiftContinueSgin":0,"customerCharge":null,"onlinePaySign":0,"recodeDemandSkuList":null,"mergeDemandSkuList":null,"inventoryNode":null,"customCode":null,"terminalSource":null,"potentialClientsId":null,"settlementStatus":null,"firstOrderAuditStatus":null,"confirmReceiptSign":null,"confirmReceiptTime":null,"afterSaleDays":null,"deliveryCompletedTime":null,"taxSign":0,"orderSplitSign":0,"demandRebateSkuList":null,"confirmTime":null,"customerPurchaseNo":null,"mustInstallDate":false,"secondAddressList":null,"splitOrMerge":null,"spitOrderSign":null,"productAmountWholeLine":230,"auditCompanyName":null,"auditCompanyNameCode":null,"edit":false,"editProductListFlag":false,"ratio":null,"showMoreAttribute":false,"lastNoTaxDiscountAmount":0,"lastDiscountAmount":0,"showInfo":false,"addressConfig":2,"isExpire":false,"settementQuantity":1,"userBalancePrice":0,"isEdit":true,"discountRateOne":100,"_rebateType":false}],"addressConfig":2,"openPreTaxAmount":0,"remark":null,"receiverPhoneNote":"15887223281","promotionOrRebate":1,"promotionType":1,"productLineCodes":[""],"addressIsCommon":true,"showChangePromotionOrRebate":false,"couponTotalAmount":0,"activityTotalAmount":0,"totalQuantity":1,"totalPrice":230,"discountAmount":0,"demandItems":[{"demandSkuId":null,"demandId":null,"distributionId":null,"companyCode":"00103","demandCode":null,"demandParentId":null,"sellerCompanyId":null,"sellerCompanyName":null,"sellerCompanyCode":null,"customerCode":null,"productLineCode":"","productLineName":"","propertyStr":null,"storageType":"999","suppDist":null,"productId":314,"productName":"红外测温仪","productCode":"12043728","productNature":"01","brandName":null,"optionStr":"YHW-3","imageUrl":null,"lineNumber":null,"price":230,"rebateId":null,"rebateDetail":null,"useMaxLimit":null,"useLimitStart":null,"useBalance":null,"originalPrice":null,"biddingDiscountTax":null,"salesDiscountTax":null,"quantity":1,"sumQuantity":null,"sendQuantity":null,"lackQuantity":null,"cancelQuantity":null,"cancelAmount":null,"refundQuantity":null,"refundAmount":null,"discountQuantity":null,"discountAmount":null,"subtotal":230,"measuringUnit":"支","auxiliaryMeasuringUnit":"BN","procurementMeasuringUnit":"BN","pricingMeasuringUnit":"BN","materialCode":"","manufacturer":"江苏鱼跃医用仪器有限公司","produceRegisterNum":null,"riskRank":"002","productClassify":"6820","createTime":null,"updateTime":null,"deleteSign":null,"calCancelFlag":null,"refundFlag":null,"discountRate":1,"realPay":230,"promotionPrice":null,"promotionTotalPrice":0,"demandParentCode":null,"regionId":null,"regionName":null,"spitSign":null,"activityAmount":null,"couponAmount":null,"activityUnitAmount":0,"couponUnitAmount":null,"activityBasicId":null,"couponSgin":null,"couponSgin2":null,"returnQuantity":null,"returnAmount":null,"customerId":null,"prescription":null,"specifications":"YHW-3","lineCodeDelete":null,"sdOutStorage":null,"licenseNo":null,"demandCodes":null,"areaName":null,"agreementPriceId":0,"offerPrice":null,"orderMark":null,"totalPrice":null,"productLimitBuyList":null,"giftSign":0,"giftProductCode":null,"activityCarDataVoList":null,"orderSource":null,"receiverName":null,"receiverContact":null,"receiverAddress":null,"rebateTripId":null,"allSign":null,"salesReturn":null,"nowAmount":null,"taxSign":0,"plusMinuKey":null,"rebateRule":null,"areaPrice":null,"lockType":null,"estimatedDeliveryDate":null,"licenseInfoFeignDtos":null,"receivedQty":null,"rebateSign":null,"lineNumberOrg":null,"changeSgin":null,"addSgin":null,"ptbfa1":null,"ptbfa2":null,"ptbfa3":null,"ptbfa4":null,"ptbfa5":null,"yapeiPriceId":null,"ypLinePromotion":null,"yapeiPrice":null,"companyId":3,"buyerCartId":null,"userReceiveIdx":null,"userReceiveIdx2":null,"limitNum":null,"productLimitBuyId":null,"alreadyBuyNum":null,"limitBuySign":0,"proposeNum":null,"takeEffectRange":null,"takeEffectTime":null,"endTime1":null,"groupId":null,"fsGroupId":null,"proposalQuantity":null,"proposalSign":0,"manufacturerUserNo":null,"manufacturerUserDesc":null,"manufacturerProductNo":null,"manufacturerProductDesc":null,"manufacturerUserId":null,"manufacturerProductId":null,"busProductCode":null,"paidTime":null,"customerName":null,"paymentAmount":null,"specQuantity":null,"disQuantity":null,"fulfilledQuantity":null,"fulCancelQuantity":null,"couponId":null,"couponId2":null,"limitS":null,"starts":null,"ends":null,"userId":null,"productTax":"","taxRate":0.13,"demandSplitSign":"1","hospitalHopeDate":null,"uniqueKey":null,"productType":null,"activityRuleId":null,"allowanceBeginTime":null,"allowanceEndTime":null,"sign":null,"differenceActivityUserId":null,"groupNumber":null,"groupName":null,"skuGroup":null,"subList":null,"dataJson":null,"skuMergeSign":null,"freseniusPriceId":null,"quantityAndGroupAll":null,"booleaTime":null,"spitSgin":0,"groupSpitSign":0,"sort":0,"circleArea":null,"purchaseEntryId":null,"mustInstallDate":false,"installedDate":null,"installedDateStr":null,"demandLines":null,"subLineNumber":null,"demandSubCode":null,"propertyName":null,"propertyVal":null,"propertyNote":null,"sendManualSign":0,"activityType":0,"giftSettlementMethod":null,"giftInitQuantity":null,"packageCode":null,"giftGroupQuantity":null,"siteCompanyCode":null,"hospitalOrderType":null,"isCollectionAllocation":null,"recDifferenceQty":null,"orderStatus":null,"distributionType":null,"groupCode":null,"groupProductType":null,"pSign":0,"backSign":0,"description":"","stockNumber":null,"priceChange":false,"rebate":false,"giftList":[],"purchaseZeroProductList":[],"prePromotionPrice":null,"prepromotionTotalPrice":0,"preDiscountRate":null,"userBalance":0}],"productPrice":"230.0000","fileList":[],"showInfo":false,"pageStart":1,"pageSize":5,"receiveInfo":[{"addressId":3278,"addressNo":93465,"addressName":"云南省昆明市高新技术开发区产业基地B1-02-01地块物流园二期项目1号库M1-2-1,M1-2-2号","provinceCode":null,"userId":null,"companyId":null,"receiverName":"郭红声","address":"","isDefault":0,"type":null,"postcode":null,"mobile":"15887223281","updateDate":null,"updateTime":null,"flag":null,"deleteSign":null,"province":null,"city":null,"area":null,"dateTime":null,"provinceStr":null,"cityStr":null,"areaStr":null,"isJde":0}],"defaultBankInfo":{"accountId":1,"companyId":3,"companyName":"国药集团北京医疗器械有限公司","registeredAddress":"北京市朝阳区安定路39号长新大厦16层","bank":"招商银行股份有限公司北京东直门支行 ","accountName":"国药集团北京医疗器械有限公司","accountNumber":"110927396010401 ","disableSign":0,"deleteSign":0,"createTime":"2020-12-30 17:18:49","updateTime":"2021-05-28 09:54:12","createBy":2,"updateBy":2,"realName":"北京医疗器械公司1admin"},"addressList":[{"addressId":3278,"addressNo":93465,"addressName":null,"provinceCode":null,"userId":null,"companyId":3,"receiverName":"郭红声","address":"云南省昆明市高新技术开发区产业基地B1-02-01地块物流园二期项目1号库M1-2-1,M1-2-2号","isDefault":0,"type":3,"postcode":null,"mobile":"15887223281","updateDate":120211,"updateTime":100440,"flag":null,"deleteSign":null,"province":0,"city":0,"area":0,"dateTime":null,"provinceStr":"","cityStr":"","areaStr":"","isJde":0,"cityList":[],"areaList":[]}],"selecteAddresId":3278,"receiverNote":"郭红声","receiverAddressNote":"云南省昆明市高新技术开发区产业基地B1-02-01地块物流园二期项目1号库M1-2-1,M1-2-2号","addressNoNote":93465,"province":0,"city":0,"cityList":[],"area":0,"areaList":[],"paymentAmount":"230.0000","taxRate":null,"draftDemandId":null,"demands":[{"demandId":null,"demandParentId":null,"demandParentCode":null,"demandCode":null,"customerId":null,"customerName":null,"customerCode":1127254,"loginName":null,"realName":null,"addressNumber":null,"mobile":null,"productName":null,"productCode":null,"sellerCompanyName":null,"sellerCompanyCode":null,"paymentType":null,"receiveBankName":null,"receiveBankAccount":null,"paymentAmount":"230.0000","productAmount":230,"payableAmount":230,"refundAmount":null,"cancelAmount":null,"discountAmount":0,"orderStatus":null,"refundStatus":null,"receiverName":null,"receiverContact":null,"receiverAddress":null,"remark":null,"revokedReason":null,"auditById":null,"auditByName":null,"auditTime":null,"auditRemark":null,"flhsStatus":null,"pushJdeStatus":null,"createTime":null,"updateTime":null,"submitTime":null,"pushJdeTime":null,"successTime":null,"auditStatus":null,"deleteSign":null,"firstOrderFlag":null,"demandItems":[{"demandSkuId":null,"demandId":null,"distributionId":null,"companyCode":"00103","demandCode":null,"demandParentId":null,"sellerCompanyId":null,"sellerCompanyName":null,"sellerCompanyCode":null,"customerCode":null,"productLineCode":"","productLineName":"","propertyStr":null,"storageType":"999","suppDist":null,"productId":314,"productName":"红外测温仪","productCode":"12043728","productNature":"01","brandName":null,"optionStr":"YHW-3","imageUrl":null,"lineNumber":null,"price":230,"rebateId":null,"rebateDetail":null,"useMaxLimit":null,"useLimitStart":null,"useBalance":null,"originalPrice":null,"biddingDiscountTax":null,"salesDiscountTax":null,"quantity":1,"sumQuantity":null,"sendQuantity":null,"lackQuantity":null,"cancelQuantity":null,"cancelAmount":null,"refundQuantity":null,"refundAmount":null,"discountQuantity":null,"discountAmount":null,"subtotal":230,"measuringUnit":"支","auxiliaryMeasuringUnit":"BN","procurementMeasuringUnit":"BN","pricingMeasuringUnit":"BN","materialCode":"","manufacturer":"江苏鱼跃医用仪器有限公司","produceRegisterNum":null,"riskRank":"002","productClassify":"6820","createTime":null,"updateTime":null,"deleteSign":null,"calCancelFlag":null,"refundFlag":null,"discountRate":1,"realPay":230,"promotionPrice":null,"promotionTotalPrice":0,"demandParentCode":null,"regionId":null,"regionName":null,"spitSign":null,"activityAmount":null,"couponAmount":null,"activityUnitAmount":0,"couponUnitAmount":null,"activityBasicId":null,"couponSgin":null,"couponSgin2":null,"returnQuantity":null,"returnAmount":null,"customerId":null,"prescription":null,"specifications":"YHW-3","lineCodeDelete":null,"sdOutStorage":null,"licenseNo":null,"demandCodes":null,"areaName":null,"agreementPriceId":0,"offerPrice":null,"orderMark":null,"totalPrice":null,"productLimitBuyList":null,"giftSign":0,"giftProductCode":null,"activityCarDataVoList":null,"orderSource":null,"receiverName":null,"receiverContact":null,"receiverAddress":null,"rebateTripId":null,"allSign":null,"salesReturn":null,"nowAmount":null,"taxSign":0,"plusMinuKey":null,"rebateRule":null,"areaPrice":null,"lockType":null,"estimatedDeliveryDate":null,"licenseInfoFeignDtos":null,"receivedQty":null,"rebateSign":null,"lineNumberOrg":null,"changeSgin":null,"addSgin":null,"ptbfa1":null,"ptbfa2":null,"ptbfa3":null,"ptbfa4":null,"ptbfa5":null,"yapeiPriceId":null,"ypLinePromotion":null,"yapeiPrice":null,"companyId":3,"buyerCartId":null,"userReceiveIdx":null,"userReceiveIdx2":null,"limitNum":null,"productLimitBuyId":null,"alreadyBuyNum":null,"limitBuySign":0,"proposeNum":null,"takeEffectRange":null,"takeEffectTime":null,"endTime1":null,"groupId":null,"fsGroupId":null,"proposalQuantity":null,"proposalSign":0,"manufacturerUserNo":null,"manufacturerUserDesc":null,"manufacturerProductNo":null,"manufacturerProductDesc":null,"manufacturerUserId":null,"manufacturerProductId":null,"busProductCode":null,"paidTime":null,"customerName":null,"paymentAmount":null,"specQuantity":null,"disQuantity":null,"fulfilledQuantity":null,"fulCancelQuantity":null,"couponId":null,"couponId2":null,"limitS":null,"starts":null,"ends":null,"userId":null,"productTax":"","taxRate":0.13,"demandSplitSign":"1","hospitalHopeDate":null,"uniqueKey":null,"productType":null,"activityRuleId":null,"allowanceBeginTime":null,"allowanceEndTime":null,"sign":null,"differenceActivityUserId":null,"groupNumber":null,"groupName":null,"skuGroup":null,"subList":null,"dataJson":null,"skuMergeSign":null,"freseniusPriceId":null,"quantityAndGroupAll":null,"booleaTime":null,"spitSgin":0,"groupSpitSign":0,"sort":0,"circleArea":null,"purchaseEntryId":null,"mustInstallDate":false,"installedDate":null,"installedDateStr":null,"demandLines":null,"subLineNumber":null,"demandSubCode":null,"propertyName":null,"propertyVal":null,"propertyNote":null,"sendManualSign":0,"activityType":0,"giftSettlementMethod":null,"giftInitQuantity":null,"packageCode":null,"giftGroupQuantity":null,"siteCompanyCode":null,"hospitalOrderType":null,"isCollectionAllocation":null,"recDifferenceQty":null,"orderStatus":null,"distributionType":null,"groupCode":null,"groupProductType":null,"pSign":0,"backSign":0,"description":"","stockNumber":null,"priceChange":false,"rebate":false,"giftList":[],"purchaseZeroProductList":[],"prePromotionPrice":null,"prepromotionTotalPrice":0,"preDiscountRate":null,"userBalance":0,"orderType":null}],"expireDemandSkus":null,"demandSubItems":null,"rebateDetail":null,"rebateAmountList":null,"productLineCode":"","productLineName":"","auditLoginName":null,"showPurchaseNo":false,"isRebate":null,"isShowReate":null,"taxRate":0.13,"rebateType":0,"paymentAmountWholeLine":230,"discountAmountWholeLine":0,"payableAmountWholeLine":230,"discountRate":null,"singleRebateAmount":null,"isRebateEdit":null,"payCertUrl":null,"rebateAmount":null,"demandCance":null,"soAdd":null,"soCance":null,"orderReturn":null,"needCustomerConfirm":false,"measuringUnit":null,"productId":null,"version":null,"mainVersion":null,"agencyConfigId":null,"confirmSign":null,"replySign":null,"agencySign":null,"editIng":null,"editIngStr":null,"jdeType":null,"isElectronicSeal":null,"contractAgreementNo":null,"alesDepartmentNo":null,"alesDepartmentName":null,"salesPersonNo":null,"salesPersonName":null,"customerNote":null,"otherNote":null,"contractAgreementCode":null,"projectName":null,"projectCode":null,"regionId":null,"regionName":null,"productLineBindSign":null,"shipVia":null,"orderSource":null,"userBalance":null,"liquidCode":null,"shipmentTypeStr":null,"specifications":"YHW-3","pageStart":1,"pageSize":5,"changeSgin":null,"yapei":2,"companyId":3,"preemptConfig":null,"productSpec":null,"secondAuditSign":null,"secondAuditById":null,"secondAuditByName":null,"secondAuditTime":null,"secondAuditRemark":null,"secondAuditStatus":null,"rebateRule":"0","rebateControlSign":0,"rebateId":null,"preferenceType":null,"preferenceName":null,"disPrice":null,"lineNum":0,"auditStaySign":0,"fileList":null,"imageUrls":null,"total":null,"submitTimeStr":null,"updateTimeStr":null,"auditTimeStr":null,"acceptTime":null,"acceptTimeStr":null,"paidTime":null,"paidTimeStr":null,"erpHandingTime":null,"erpHandingTimeStr":null,"partShippingTime":null,"partShippingTimeStr":null,"allShippingTime":null,"allShippingTimeStr":null,"pushJdeTimeStr":null,"successTimeStr":null,"onlinePaySuccessTime":null,"onlinePaySuccessTimeStr":null,"bankTransactionSerial":null,"newIsTax":null,"countFormula":null,"countNumber":null,"noTaxRebateAmount":0,"isCollectionAllocation":0,"siteCompanyCode":null,"hospitalOrderType":null,"proofTime":null,"proofURL":null,"proofRemark":null,"proofSign":0,"customerCancelSign":null,"cancelRecords":null,"cancelCount":0,"updateNewTime":null,"updateNewTimeStr":null,"fsDedUseSign":null,"notice":null,"shareType":null,"singleRebateSign":null,"cf":false,"isPre":null,"showDemandAuditLineLabel":false,"orderType":null,"newDiscountRate":null,"oldOrderType":null,"oldNewDiscountRate":null,"pendding":null,"modifySign":null,"refuseType":null,"groupChangeSign":null,"custModify":null,"pushJdeStatusDemandSub":null,"circleGiftSign":0,"delay":null,"limitS":null,"starts":null,"ends":null,"completedS":null,"confirmDays":null,"remindS":null,"skuGroupList":null,"groupProductType":0,"purchaseId":null,"purchaseCode":null,"sdCancelTime":null,"sdTipSign":0,"receiverNote":null,"receiverPhoneNote":null,"receiverAddressNote":null,"flag":null,"sourceStr":null,"addressNoNote":null,"detailIsSpit":false,"spitSgin":null,"distributionType":null,"rebateValidity":null,"orderChangeType":null,"logoIcon":null,"detail":null,"changeBigType":null,"promotionType":1,"activityTotalAmount":0,"couponTotalAmount":0,"userReceiveId":null,"editSgin":null,"snSgin":null,"jdeOutAmount":null,"totalAllPaAmount":null,"diffShowSgin":0,"lineCodeDelete":null,"startTime":null,"endTime":null,"changeSign":null,"distributionId":null,"limitBuySign":0,"companyType":null,"afterSale":null,"csId":null,"sdStatusNodeParamList":null,"ypPromotionTotal":null,"acrossMainCode":null,"forceApprovedSign":0,"circleGiftContinueSgin":0,"customerCharge":null,"onlinePaySign":0,"recodeDemandSkuList":null,"mergeDemandSkuList":null,"inventoryNode":null,"customCode":null,"terminalSource":null,"potentialClientsId":null,"settlementStatus":null,"firstOrderAuditStatus":null,"confirmReceiptSign":null,"confirmReceiptTime":null,"afterSaleDays":null,"deliveryCompletedTime":null,"taxSign":0,"orderSplitSign":0,"demandRebateSkuList":null,"confirmTime":null,"customerPurchaseNo":null,"mustInstallDate":false,"secondAddressList":null,"splitOrMerge":null,"spitOrderSign":null,"productAmountWholeLine":230,"auditCompanyName":null,"auditCompanyNameCode":null,"edit":false,"editProductListFlag":false,"ratio":null,"showMoreAttribute":false,"lastNoTaxDiscountAmount":0,"lastDiscountAmount":0,"showInfo":false,"addressConfig":2,"isExpire":false,"settementQuantity":1,"userBalancePrice":0,"isEdit":true,"discountRateOne":100,"_rebateType":false}],"orderStatus":102,"userReceiveId":null,"userReceiveId2":null,"productAmount":230,"paymentType":0,"accountId":1,"version":null,"receiveBankName":"国药集团北京医疗器械有限公司","receiveBankAccount":"110927396010401 ","addressNumber":93465,"receiverName":"郭红声","receiverContact":"15887223281","receiverAddress":"云南省昆明市高新技术开发区产业基地B1-02-01地块物流园二期项目1号库M1-2-1,M1-2-2号","buyerCartIds":[""],"sellerCompanyCode":"00103","companyId":3}},"id":null,"type":4,"userNo":null,"userName":"BJ0621","draftDemandId":null,"num":1,"price":230,"sellerCompanyName":"国药集团北京医疗器械有限公司","companyCode":"00103","companyId":3}
+
+#预期结果
+checkDict2: {"success":true,"code":"200","message":"OK"}
+
+
+
diff --git a/data/cmdc_demand_creation/data b/data/cmdc_demand_creation/data
new file mode 100644
index 0000000000000000000000000000000000000000..5df13bd388e19bf0268a2a6441c2b40d28f646ed
--- /dev/null
+++ b/data/cmdc_demand_creation/data
@@ -0,0 +1,27 @@
+#需求单列表接口地址
+"url": "/order/saveBackDemandOrder"
+
+#需求单草稿单新增接口地址
+"url2": "/product/public/draft/add"
+
+# 后台运营管理系统登录信息
+"username": "Admin00111"
+"password": "Aa123456"
+
+json_headers1: {
+ "Content-Type": "application/json",
+ "Cmdc_access_token": "%s"
+}
+
+
+#测试场景一:需求单创建
+
+"payload1": {"orderStatus":102,"demandItems":[{"maxProductNum":999999,"minProductNum":1,"addMinProductNum":1,"minProductNumSign":false,"isMultiple":false,"quantityTip":"","productId":7892,"productCode":"11852135","materialCode":"VH-100","productName":"测瓣器及其组件","specifications":"VH-100","manufacturer":"SORIN GROUP ITALIA S.R.L. 索林集团意大利有限责任公司","productLineName":"HV","productLineCode":"4011","zonePriceVOList":null,"price":1879,"storageType":"999","optionStr":"VH-100","measuringUnit":"BX","ippMiniPurchaseNum":null,"ippMultipleSign":null,"ippPurchaseMultiple":null,"ippStatus":null,"quantity":1,"isGift":0,"measuringUnit1":"盒","imageUrl":"https://pro-cmdc.oss-cn-beijing.aliyuncs.com/productFile/2021/09/29/3721d7b9-0cd6-4d45-a5f2-f41595cd231b.jpg","companyCode":"00111","areaName":null,"areaPrice":1879,"agreementPriceId":null,"hidden":null,"description":"","taxRate":"0.13","allMaterialSign":null,"materialCodeExact":null,"specificationsExact":null,"hospitalOrderType":null,"hospitalHopeDate":null,"siteCompanyCode":null,"propertyName":null,"propertyVal":null,"propertyNote":null,"mustInstallDate":false,"showDemandAuditLineLabel":false,"editProductCode":false,"quantityErr":false,"fresenuis":false,"singleFresenuis":null,"zeroSign":false,"purchaseZeroProductList":[],"activityBasicId":null,"giftList":[],"selectGiftArr":[],"selectZeroGiftObj":{"mainProductList":[],"giftProductList":[]},"giftGroupQuantity":1,"giftSign":0,"customerCode":"1071246","realPay":"1879.00"}],"paymentAmount":1879,"productAmount":1879,"userId":18,"userNo":"1071246","customerCode":"1071246","userName":"上海勘泽贸易商行","companyId":"6","paymentType":1,"receiveBankName":"国药集团上海医疗器械有限公司","receiveBankAccount":"36830188000041806","accountId":3,"receiverName":"刘海涛","receiverContact":"18940124666","receiverAddress":"金山区朱泾镇鸿安路599号2幢北2楼210、211室","addressNumber":76216,"remark":"","receiverNote":"刘海涛","receiverPhoneNote":"18940124666","receiverAddressNote":"金山区朱泾镇鸿安路599号2幢北2楼210、211室","addressNoNote":76216,"fileList":[],"sellerCompanyCode":"00111","sellerCompanyName":"国药集团上海医疗器械有限公司","orderSource":2,"replaceCustomerOrder":{"orderStatus":102,"demandItems":[{"maxProductNum":999999,"minProductNum":1,"addMinProductNum":1,"minProductNumSign":false,"isMultiple":false,"quantityTip":"","productId":7892,"productCode":"11852135","materialCode":"VH-100","productName":"测瓣器及其组件","specifications":"VH-100","manufacturer":"SORIN GROUP ITALIA S.R.L. 索林集团意大利有限责任公司","productLineName":"HV","productLineCode":"4011","zonePriceVOList":null,"price":1879,"storageType":"999","optionStr":"VH-100","measuringUnit":"BX","ippMiniPurchaseNum":null,"ippMultipleSign":null,"ippPurchaseMultiple":null,"ippStatus":null,"quantity":1,"isGift":0,"measuringUnit1":"盒","imageUrl":"https://pro-cmdc.oss-cn-beijing.aliyuncs.com/productFile/2021/09/29/3721d7b9-0cd6-4d45-a5f2-f41595cd231b.jpg","companyCode":"00111","areaName":null,"areaPrice":1879,"agreementPriceId":null,"hidden":null,"description":"","taxRate":"0.13","allMaterialSign":null,"materialCodeExact":null,"specificationsExact":null,"hospitalOrderType":null,"hospitalHopeDate":null,"siteCompanyCode":null,"propertyName":null,"propertyVal":null,"propertyNote":null,"mustInstallDate":false,"showDemandAuditLineLabel":false,"editProductCode":false,"quantityErr":false,"fresenuis":false,"singleFresenuis":null,"zeroSign":false,"purchaseZeroProductList":[],"activityBasicId":null,"giftList":[],"selectGiftArr":[],"selectZeroGiftObj":{"mainProductList":[],"giftProductList":[]},"giftGroupQuantity":1}],"paymentAmount":1879,"productAmount":1879,"userId":18,"userNo":"1071246","customerCode":"1071246","userName":"上海勘泽贸易商行","companyId":"6","paymentType":1,"receiveBankName":"国药集团上海医疗器械有限公司","receiveBankAccount":"36830188000041806","accountId":3,"receiverName":"刘海涛","receiverContact":"18940124666","receiverAddress":"金山区朱泾镇鸿安路599号2幢北2楼210、211室","addressNumber":76216,"remark":"","receiverNote":"刘海涛","receiverPhoneNote":"18940124666","receiverAddressNote":"金山区朱泾镇鸿安路599号2幢北2楼210、211室","addressNoNote":76216,"fileList":[],"sellerCompanyCode":"00111","sellerCompanyName":"国药集团上海医疗器械有限公司","orderSource":2,"customerInfo":{"userId":18,"userName":"BJ0500","rejectUserName":null,"password":null,"realName":"赵林","userNo":"1071246","telephone":"15640336952","rejectTelephone":null,"registerAddress":"[{\\\"province\\\":810,\\\"city\\\":849,\\\"area\\\":850}]","detailAddress":"金山区朱泾镇鸿安路599号2幢北2楼210、211室","businessScope":"[{\\\"province\\\":\\\"\\\",\\\"city\\\":2237,\\\"area\\\":\\\"\\\"}]","companyProperty":101,"companyId":null,"companyCode":null,"companyName":"国药集团上海医疗器械有限公司","companyNameList":null,"customerCompanyName":"上海勘泽贸易商行","lienceNo":"91310116MA1JAFLT2B","userType":2,"companyType":null,"status":3,"disableSign":0,"deleteSign":null,"createBy":null,"updateBy":null,"createTime":null,"updateTime":null,"licenceSketchUrl":null,"licenceUrl":null,"openId":null,"referrer":null,"gift":null,"identity":null,"department":null,"platformStatus":1,"rejectionReason":null,"registerType":null,"siteType":null,"departmentCode":null,"personName":null,"registration":null,"realPassword":null,"recommend":null,"taxRate":0.13,"roleNames":null,"subCompanyName":"国药集团上海医疗器械有限公司","roleIds":null,"addressList":null,"licenseList":null,"labelList":null,"managerList":null,"createTimeStr":null,"categoriesList":null,"merchantsAddress":null,"merchantStatus":null,"refuseReason":null,"merchantsId":null,"userTransactionAmount":"0","gray":null,"bindingTime":null,"bindSign":1,"jdeStatus":0,"jdePhone":"","recommender":null,"coopeSgin":null,"bindflowList":null,"userJDEInfo":null}},"draftId":null,"demands":[{"demandId":null,"demandParentId":null,"demandParentCode":null,"demandCode":null,"customerId":null,"customerName":null,"customerCode":1071246,"loginName":null,"realName":null,"addressNumber":null,"mobile":null,"productName":null,"productCode":null,"sellerCompanyName":null,"sellerCompanyCode":null,"paymentType":null,"receiveBankName":null,"receiveBankAccount":null,"paymentAmount":"1879.00","productAmount":1879,"payableAmount":1879,"refundAmount":null,"cancelAmount":null,"discountAmount":0,"orderStatus":null,"refundStatus":null,"receiverName":null,"receiverContact":null,"receiverAddress":null,"remark":null,"revokedReason":null,"auditById":null,"auditByName":null,"auditTime":null,"auditRemark":null,"flhsStatus":null,"pushJdeStatus":null,"createTime":null,"updateTime":null,"submitTime":null,"pushJdeTime":null,"successTime":null,"auditStatus":null,"deleteSign":null,"firstOrderFlag":null,"demandItems":[{"demandSkuId":null,"demandId":null,"distributionId":null,"companyCode":"00111","demandCode":null,"demandParentId":null,"sellerCompanyId":null,"sellerCompanyName":null,"sellerCompanyCode":null,"customerCode":1071246,"productLineCode":"4011","productLineName":"HV","propertyStr":null,"storageType":"999","suppDist":null,"productId":7892,"productName":"测瓣器及其组件","productCode":"11852135","productNature":null,"brandName":null,"optionStr":"VH-100","imageUrl":"https://pro-cmdc.oss-cn-beijing.aliyuncs.com/productFile/2021/09/29/3721d7b9-0cd6-4d45-a5f2-f41595cd231b.jpg","lineNumber":null,"price":1879,"rebateId":null,"originalPrice":null,"biddingDiscountTax":null,"salesDiscountTax":null,"quantity":1,"sumQuantity":null,"sendQuantity":null,"lackQuantity":null,"cancelQuantity":null,"cancelAmount":null,"refundQuantity":null,"refundAmount":null,"discountQuantity":null,"discountAmount":null,"subtotal":1879,"measuringUnit":"盒","auxiliaryMeasuringUnit":null,"procurementMeasuringUnit":null,"pricingMeasuringUnit":null,"materialCode":"VH-100","manufacturer":"SORIN GROUP ITALIA S.R.L. 索林集团意大利有限责任公司","produceRegisterNum":null,"riskRank":null,"productClassify":null,"createTime":null,"updateTime":null,"deleteSign":null,"calCancelFlag":null,"refundFlag":null,"discountRate":0,"realPay":1879,"promotionPrice":null,"promotionTotalPrice":0,"demandParentCode":null,"regionId":null,"regionName":null,"spitSign":null,"activityAmount":null,"couponAmount":null,"activityUnitAmount":0,"couponUnitAmount":null,"activityBasicId":null,"couponSgin":null,"couponSgin2":null,"returnQuantity":null,"returnAmount":null,"customerId":null,"prescription":null,"specifications":"VH-100","lineCodeDelete":null,"sdOutStorage":null,"licenseNo":null,"demandCodes":null,"areaName":null,"agreementPriceId":null,"offerPrice":null,"orderMark":null,"totalPrice":null,"productLimitBuyList":null,"giftSign":0,"giftProductCode":null,"activityCarDataVoList":null,"orderSource":null,"receiverName":null,"receiverContact":null,"receiverAddress":null,"rebateTripId":null,"allSign":null,"salesReturn":null,"nowAmount":null,"taxSign":0,"plusMinuKey":null,"rebateRule":null,"lockType":null,"lineNumberOrg":null,"changeSgin":null,"addSgin":null,"ptbfa1":null,"ptbfa2":null,"ptbfa3":null,"ptbfa4":null,"ptbfa5":null,"yapeiPriceId":null,"ypLinePromotion":null,"yapeiPrice":null,"companyId":null,"buyerCartId":0,"userReceiveIdx":null,"userReceiveIdx2":null,"limitNum":null,"productLimitBuyId":null,"alreadyBuyNum":null,"limitBuySign":0,"proposeNum":null,"takeEffectRange":null,"takeEffectTime":null,"endTime1":null,"groupId":null,"fsGroupId":null,"proposalQuantity":null,"proposalSign":0,"manufacturerUserNo":null,"manufacturerUserDesc":null,"manufacturerProductNo":null,"manufacturerProductDesc":null,"manufacturerUserId":null,"manufacturerProductId":null,"busProductCode":null,"paidTime":null,"customerName":null,"paymentAmount":null,"specQuantity":null,"disQuantity":null,"fulfilledQuantity":null,"fulCancelQuantity":null,"couponId":null,"couponId2":null,"limitS":null,"starts":null,"ends":null,"userId":null,"productTax":"","taxRate":0.13,"demandSplitSign":"1","hospitalHopeDate":null,"uniqueKey":null,"productType":null,"activityRuleId":null,"allowanceBeginTime":null,"allowanceEndTime":null,"sign":null,"differenceActivityUserId":null,"groupNumber":1,"groupName":null,"skuGroup":null,"subList":null,"dataJson":null,"skuMergeSign":null,"freseniusPriceId":null,"quantityAndGroupAll":null,"booleaTime":null,"spitSgin":0,"groupSpitSign":0,"sort":0,"circleArea":null,"purchaseEntryId":null,"mustInstallDate":false,"installedDate":null,"installedDateStr":null,"demandLines":null,"subLineNumber":null,"demandSubCode":null,"propertyName":null,"propertyVal":null,"propertyNote":null,"sendManualSign":0,"activityType":0,"giftSettlementMethod":null,"giftInitQuantity":null,"packageCode":null,"giftGroupQuantity":1,"siteCompanyCode":null,"hospitalOrderType":null,"isCollectionAllocation":null,"orderStatus":null,"distributionType":null,"groupCode":null,"groupProductType":null,"pSign":0,"backSign":0,"description":"","stockNumber":null,"rebate":false,"userBalance":null,"purchaseQuantity":1,"purchaseZeroProductList":[]}],"demandSubItems":null,"rebateDetail":null,"rebateAmountList":null,"productLineCode":"4011","productLineName":"HV","auditLoginName":null,"showPurchaseNo":false,"isRebate":null,"isShowReate":null,"taxRate":0.13,"rebateType":0,"paymentAmountWholeLine":1879,"discountAmountWholeLine":0,"payableAmountWholeLine":1879,"discountRate":0,"singleRebateAmount":null,"isRebateEdit":null,"payCertUrl":null,"rebateAmount":null,"demandCance":null,"soAdd":null,"soCance":null,"orderReturn":null,"needCustomerConfirm":false,"measuringUnit":null,"productId":null,"version":null,"mainVersion":null,"agencyConfigId":null,"confirmSign":null,"replySign":null,"agencySign":null,"editIng":null,"editIngStr":null,"jdeType":null,"isElectronicSeal":null,"contractAgreementNo":null,"alesDepartmentNo":null,"alesDepartmentName":null,"salesPersonNo":null,"salesPersonName":null,"customerNote":null,"otherNote":null,"contractAgreementCode":null,"projectName":null,"projectCode":null,"regionId":null,"regionName":null,"productLineBindSign":null,"shipVia":null,"orderSource":null,"userBalance":null,"liquidCode":null,"shipmentTypeStr":null,"specifications":"VH-100","pageStart":null,"pageSize":null,"changeSgin":null,"yapei":2,"companyId":null,"userReceiveId2":null,"preemptConfig":null,"productSpec":null,"secondAuditSign":null,"secondAuditById":null,"secondAuditByName":null,"secondAuditTime":null,"secondAuditRemark":null,"secondAuditStatus":null,"rebateRule":"0","rebateControlSign":0,"rebateId":null,"preferenceType":null,"preferenceName":null,"disPrice":null,"lineNum":0,"auditStaySign":0,"fileList":null,"imageUrls":null,"total":null,"submitTimeStr":null,"updateTimeStr":null,"auditTimeStr":null,"acceptTime":null,"acceptTimeStr":null,"paidTime":null,"paidTimeStr":null,"erpHandingTime":null,"erpHandingTimeStr":null,"partShippingTime":null,"partShippingTimeStr":null,"allShippingTime":null,"allShippingTimeStr":null,"pushJdeTimeStr":null,"successTimeStr":null,"onlinePaySuccessTime":null,"onlinePaySuccessTimeStr":null,"bankTransactionSerial":null,"newIsTax":null,"countFormula":null,"countNumber":null,"noTaxRebateAmount":0,"isCollectionAllocation":0,"siteCompanyCode":null,"hospitalOrderType":null,"proofTime":null,"proofURL":null,"proofRemark":null,"proofSign":0,"customerCancelSign":null,"cancelRecords":null,"cancelCount":0,"updateNewTime":null,"updateNewTimeStr":null,"fsDedUseSign":null,"notice":null,"shareType":null,"singleRebateSign":null,"cf":false,"isPre":null,"showDemandAuditLineLabel":false,"orderType":null,"newDiscountRate":null,"oldOrderType":null,"oldNewDiscountRate":null,"pendding":null,"pushJdeStatusDemandSub":null,"circleGiftSign":0,"delay":null,"limitS":null,"starts":null,"ends":null,"completedS":null,"confirmDays":null,"remindS":null,"skuGroupList":null,"groupProductType":0,"purchaseId":null,"purchaseCode":null,"sdCancelTime":null,"sdTipSign":0,"receiverNote":null,"receiverPhoneNote":null,"receiverAddressNote":null,"flag":null,"sourceStr":null,"addressNoNote":null,"detailIsSpit":false,"spitSgin":null,"distributionType":null,"rebateValidity":null,"orderChangeType":null,"logoIcon":null,"detail":null,"changeBigType":null,"promotionType":null,"activityTotalAmount":null,"couponTotalAmount":null,"userReceiveId":null,"editSgin":null,"snSgin":null,"jdeOutAmount":null,"totalAllPaAmount":null,"diffShowSgin":0,"lineCodeDelete":null,"startTime":null,"endTime":null,"changeSign":null,"distributionId":null,"limitBuySign":0,"companyType":null,"afterSale":null,"csId":null,"sdStatusNodeParamList":null,"ypPromotionTotal":null,"acrossMainCode":null,"forceApprovedSign":0,"circleGiftContinueSgin":0,"customerCharge":null,"onlinePaySign":0,"recodeDemandSkuList":null,"mergeDemandSkuList":null,"inventoryNode":null,"customCode":null,"terminalSource":null,"potentialClientsId":null,"settlementStatus":null,"firstOrderAuditStatus":null,"confirmReceiptSign":null,"confirmReceiptTime":null,"afterSaleDays":null,"deliveryCompletedTime":null,"taxSign":0,"orderSplitSign":0,"demandRebateSkuList":null,"confirmTime":null,"customerPurchaseNo":null,"mustInstallDate":false,"secondAddressList":null,"splitOrMerge":null,"spitOrderSign":null,"productAmountWholeLine":1879,"auditCompanyName":null,"auditCompanyNameCode":null,"edit":false,"showMoreAttribute":false,"ratio":null,"ratioFlag":false,"rebateFlags":false,"userBalancePrice":0,"allQuantity":1,"totalPriceNum":0,"maxTotalLimitPrice":0,"lastNoTaxDiscountAmount":0,"lastDiscountAmount":0}]}
+#预期结果
+checkDict1: {"success":true,"code":"200","message":"ok","data":null,"freshToken":null}
+
+#测试场景二:需求草稿订单创建
+
+"payload2": {"productMap":{"orderStatus":102,"demandItems":[{"maxProductNum":999999,"minProductNum":1,"addMinProductNum":1,"minProductNumSign":false,"isMultiple":false,"quantityTip":"","productId":8192,"productCode":"10086272","materialCode":"C1048042","productName":"可吸收外科带针缝线","specifications":"C1048042,紫色结福 2/0线 (3) 70厘米 1/2弧 圆针 26","manufacturer":"B.Braun Surgical SA","productLineName":"蛇牌","productLineCode":"3046","zonePriceVOList":null,"price":915,"storageType":"999","optionStr":"C1048042,紫色结福 2/0线 (3) 70厘米 1/2弧 圆针 26","measuringUnit":"BX","ippMiniPurchaseNum":null,"ippMultipleSign":null,"ippPurchaseMultiple":null,"ippStatus":null,"quantity":1,"isGift":0,"measuringUnit1":"盒","imageUrl":"https://pro-cmdc.oss-cn-beijing.aliyuncs.com/productFile/2021/04/14/1e3727ab-49cc-46b9-afa1-2606b283553b.jpg","companyCode":"00111","areaName":null,"areaPrice":915,"agreementPriceId":null,"hidden":null,"description":"","taxRate":"0.13","allMaterialSign":null,"materialCodeExact":null,"specificationsExact":null,"hospitalOrderType":null,"hospitalHopeDate":null,"siteCompanyCode":null,"propertyName":null,"propertyVal":null,"propertyNote":null,"mustInstallDate":false,"showDemandAuditLineLabel":false,"editProductCode":false,"quantityErr":false,"fresenuis":false,"singleFresenuis":null,"zeroSign":false,"purchaseZeroProductList":[],"activityBasicId":null,"giftList":[],"selectGiftArr":[],"selectZeroGiftObj":{"mainProductList":[],"giftProductList":[]},"giftGroupQuantity":1,"giftSign":0,"customerCode":"1071246","realPay":"915.00"}],"paymentAmount":915,"productAmount":915,"userId":18,"userNo":"1071246","customerCode":"1071246","userName":"上海勘泽贸易商行","companyId":"6","paymentType":1,"receiveBankName":"国药集团上海医疗器械有限公司","receiveBankAccount":"36830188000041806","accountId":3,"receiverName":"刘海涛","receiverContact":"18940124666","receiverAddress":"金山区朱泾镇鸿安路599号2幢北2楼210、211室","addressNumber":76216,"remark":"","receiverNote":"刘海涛","receiverPhoneNote":"18940124666","receiverAddressNote":"金山区朱泾镇鸿安路599号2幢北2楼210、211室","addressNoNote":76216,"fileList":[],"sellerCompanyCode":"00111","sellerCompanyName":"国药集团上海医疗器械有限公司","orderSource":2,"replaceCustomerOrder":{"orderStatus":102,"demandItems":[{"maxProductNum":999999,"minProductNum":1,"addMinProductNum":1,"minProductNumSign":false,"isMultiple":false,"quantityTip":"","productId":8192,"productCode":"10086272","materialCode":"C1048042","productName":"可吸收外科带针缝线","specifications":"C1048042,紫色结福 2/0线 (3) 70厘米 1/2弧 圆针 26","manufacturer":"B.Braun Surgical SA","productLineName":"蛇牌","productLineCode":"3046","zonePriceVOList":null,"price":915,"storageType":"999","optionStr":"C1048042,紫色结福 2/0线 (3) 70厘米 1/2弧 圆针 26","measuringUnit":"BX","ippMiniPurchaseNum":null,"ippMultipleSign":null,"ippPurchaseMultiple":null,"ippStatus":null,"quantity":1,"isGift":0,"measuringUnit1":"盒","imageUrl":"https://pro-cmdc.oss-cn-beijing.aliyuncs.com/productFile/2021/04/14/1e3727ab-49cc-46b9-afa1-2606b283553b.jpg","companyCode":"00111","areaName":null,"areaPrice":915,"agreementPriceId":null,"hidden":null,"description":"","taxRate":"0.13","allMaterialSign":null,"materialCodeExact":null,"specificationsExact":null,"hospitalOrderType":null,"hospitalHopeDate":null,"siteCompanyCode":null,"propertyName":null,"propertyVal":null,"propertyNote":null,"mustInstallDate":false,"showDemandAuditLineLabel":false,"editProductCode":false,"quantityErr":false,"fresenuis":false,"singleFresenuis":null,"zeroSign":false,"purchaseZeroProductList":[],"activityBasicId":null,"giftList":[],"selectGiftArr":[],"selectZeroGiftObj":{"mainProductList":[],"giftProductList":[]},"giftGroupQuantity":1}],"paymentAmount":915,"productAmount":915,"userId":18,"userNo":"1071246","customerCode":"1071246","userName":"上海勘泽贸易商行","companyId":"6","paymentType":1,"receiveBankName":"国药集团上海医疗器械有限公司","receiveBankAccount":"36830188000041806","accountId":3,"receiverName":"刘海涛","receiverContact":"18940124666","receiverAddress":"金山区朱泾镇鸿安路599号2幢北2楼210、211室","addressNumber":76216,"remark":"","receiverNote":"刘海涛","receiverPhoneNote":"18940124666","receiverAddressNote":"金山区朱泾镇鸿安路599号2幢北2楼210、211室","addressNoNote":76216,"fileList":[],"sellerCompanyCode":"00111","sellerCompanyName":"国药集团上海医疗器械有限公司","orderSource":2,"customerInfo":{"userId":18,"userName":"BJ0500","rejectUserName":null,"password":null,"realName":"赵林","userNo":"1071246","telephone":"15640336952","rejectTelephone":null,"registerAddress":"[{\\\"province\\\":810,\\\"city\\\":849,\\\"area\\\":850}]","detailAddress":"金山区朱泾镇鸿安路599号2幢北2楼210、211室","businessScope":"[{\\\"province\\\":\\\"\\\",\\\"city\\\":2237,\\\"area\\\":\\\"\\\"}]","companyProperty":101,"companyId":null,"companyCode":null,"companyName":"国药集团上海医疗器械有限公司","companyNameList":null,"customerCompanyName":"上海勘泽贸易商行","lienceNo":"91310116MA1JAFLT2B","userType":2,"companyType":null,"status":3,"disableSign":0,"deleteSign":null,"createBy":null,"updateBy":null,"createTime":null,"updateTime":null,"licenceSketchUrl":null,"licenceUrl":null,"openId":null,"referrer":null,"gift":null,"identity":null,"department":null,"platformStatus":1,"rejectionReason":null,"registerType":null,"siteType":null,"departmentCode":null,"personName":null,"registration":null,"realPassword":null,"recommend":null,"taxRate":0.13,"roleNames":null,"subCompanyName":"国药集团上海医疗器械有限公司","roleIds":null,"addressList":null,"licenseList":null,"labelList":null,"managerList":null,"createTimeStr":null,"categoriesList":null,"merchantsAddress":null,"merchantStatus":null,"refuseReason":null,"merchantsId":null,"userTransactionAmount":"0","gray":null,"bindingTime":null,"bindSign":1,"jdeStatus":0,"jdePhone":"","recommender":null,"coopeSgin":null,"bindflowList":null,"userJDEInfo":null}},"draftId":null,"demands":[{"demandId":null,"demandParentId":null,"demandParentCode":null,"demandCode":null,"customerId":null,"customerName":null,"customerCode":1071246,"loginName":null,"realName":null,"addressNumber":null,"mobile":null,"productName":null,"productCode":null,"sellerCompanyName":null,"sellerCompanyCode":null,"paymentType":null,"receiveBankName":null,"receiveBankAccount":null,"paymentAmount":"915.00","productAmount":915,"payableAmount":915,"refundAmount":null,"cancelAmount":null,"discountAmount":0,"orderStatus":null,"refundStatus":null,"receiverName":null,"receiverContact":null,"receiverAddress":null,"remark":null,"revokedReason":null,"auditById":null,"auditByName":null,"auditTime":null,"auditRemark":null,"flhsStatus":null,"pushJdeStatus":null,"createTime":null,"updateTime":null,"submitTime":null,"pushJdeTime":null,"successTime":null,"auditStatus":null,"deleteSign":null,"firstOrderFlag":null,"demandItems":[{"demandSkuId":null,"demandId":null,"distributionId":null,"companyCode":"00111","demandCode":null,"demandParentId":null,"sellerCompanyId":null,"sellerCompanyName":null,"sellerCompanyCode":null,"customerCode":1071246,"productLineCode":"3046","productLineName":"蛇牌","propertyStr":null,"storageType":"999","suppDist":null,"productId":8192,"productName":"可吸收外科带针缝线","productCode":"10086272","productNature":null,"brandName":null,"optionStr":"C1048042,紫色结福 2/0线 (3) 70厘米 1/2弧 圆针 26","imageUrl":"https://pro-cmdc.oss-cn-beijing.aliyuncs.com/productFile/2021/04/14/1e3727ab-49cc-46b9-afa1-2606b283553b.jpg","lineNumber":null,"price":915,"rebateId":null,"originalPrice":null,"biddingDiscountTax":null,"salesDiscountTax":null,"quantity":1,"sumQuantity":null,"sendQuantity":null,"lackQuantity":null,"cancelQuantity":null,"cancelAmount":null,"refundQuantity":null,"refundAmount":null,"discountQuantity":null,"discountAmount":null,"subtotal":915,"measuringUnit":"盒","auxiliaryMeasuringUnit":null,"procurementMeasuringUnit":null,"pricingMeasuringUnit":null,"materialCode":"C1048042","manufacturer":"B.Braun Surgical SA","produceRegisterNum":null,"riskRank":null,"productClassify":null,"createTime":null,"updateTime":null,"deleteSign":null,"calCancelFlag":null,"refundFlag":null,"discountRate":0,"realPay":915,"promotionPrice":null,"promotionTotalPrice":0,"demandParentCode":null,"regionId":null,"regionName":null,"spitSign":null,"activityAmount":null,"couponAmount":null,"activityUnitAmount":0,"couponUnitAmount":null,"activityBasicId":null,"couponSgin":null,"couponSgin2":null,"returnQuantity":null,"returnAmount":null,"customerId":null,"prescription":null,"specifications":"C1048042,紫色结福 2/0线 (3) 70厘米 1/2弧 圆针 26","lineCodeDelete":null,"sdOutStorage":null,"licenseNo":null,"demandCodes":null,"areaName":null,"agreementPriceId":null,"offerPrice":null,"orderMark":null,"totalPrice":null,"productLimitBuyList":null,"giftSign":0,"giftProductCode":null,"activityCarDataVoList":null,"orderSource":null,"receiverName":null,"receiverContact":null,"receiverAddress":null,"rebateTripId":null,"allSign":null,"salesReturn":null,"nowAmount":null,"taxSign":0,"plusMinuKey":null,"rebateRule":null,"lockType":null,"lineNumberOrg":null,"changeSgin":null,"addSgin":null,"ptbfa1":null,"ptbfa2":null,"ptbfa3":null,"ptbfa4":null,"ptbfa5":null,"yapeiPriceId":null,"ypLinePromotion":null,"yapeiPrice":null,"companyId":null,"buyerCartId":0,"userReceiveIdx":null,"userReceiveIdx2":null,"limitNum":null,"productLimitBuyId":null,"alreadyBuyNum":null,"limitBuySign":0,"proposeNum":null,"takeEffectRange":null,"takeEffectTime":null,"endTime1":null,"groupId":null,"fsGroupId":null,"proposalQuantity":null,"proposalSign":0,"manufacturerUserNo":null,"manufacturerUserDesc":null,"manufacturerProductNo":null,"manufacturerProductDesc":null,"manufacturerUserId":null,"manufacturerProductId":null,"busProductCode":null,"paidTime":null,"customerName":null,"paymentAmount":null,"specQuantity":null,"disQuantity":null,"fulfilledQuantity":null,"fulCancelQuantity":null,"couponId":null,"couponId2":null,"limitS":null,"starts":null,"ends":null,"userId":null,"productTax":"","taxRate":0.13,"demandSplitSign":"1","hospitalHopeDate":null,"uniqueKey":null,"productType":null,"activityRuleId":null,"allowanceBeginTime":null,"allowanceEndTime":null,"sign":null,"differenceActivityUserId":null,"groupNumber":1,"groupName":null,"skuGroup":null,"subList":null,"dataJson":null,"skuMergeSign":null,"freseniusPriceId":null,"quantityAndGroupAll":null,"booleaTime":null,"spitSgin":0,"groupSpitSign":0,"sort":0,"circleArea":null,"purchaseEntryId":null,"mustInstallDate":false,"installedDate":null,"installedDateStr":null,"demandLines":null,"subLineNumber":null,"demandSubCode":null,"propertyName":null,"propertyVal":null,"propertyNote":null,"sendManualSign":0,"activityType":0,"giftSettlementMethod":null,"giftInitQuantity":null,"packageCode":null,"giftGroupQuantity":1,"siteCompanyCode":null,"hospitalOrderType":null,"isCollectionAllocation":null,"orderStatus":null,"distributionType":null,"groupCode":null,"groupProductType":null,"pSign":0,"backSign":0,"description":"","stockNumber":null,"rebate":false,"userBalance":null,"purchaseQuantity":1,"purchaseZeroProductList":[]}],"demandSubItems":null,"rebateDetail":null,"rebateAmountList":null,"productLineCode":"3046","productLineName":"蛇牌","auditLoginName":null,"showPurchaseNo":false,"isRebate":null,"isShowReate":null,"taxRate":0.13,"rebateType":0,"paymentAmountWholeLine":915,"discountAmountWholeLine":0,"payableAmountWholeLine":915,"discountRate":0,"singleRebateAmount":null,"isRebateEdit":null,"payCertUrl":null,"rebateAmount":null,"demandCance":null,"soAdd":null,"soCance":null,"orderReturn":null,"needCustomerConfirm":false,"measuringUnit":null,"productId":null,"version":null,"mainVersion":null,"agencyConfigId":null,"confirmSign":null,"replySign":null,"agencySign":null,"editIng":null,"editIngStr":null,"jdeType":null,"isElectronicSeal":null,"contractAgreementNo":null,"alesDepartmentNo":null,"alesDepartmentName":null,"salesPersonNo":null,"salesPersonName":null,"customerNote":null,"otherNote":null,"contractAgreementCode":null,"projectName":null,"projectCode":null,"regionId":null,"regionName":null,"productLineBindSign":null,"shipVia":null,"orderSource":null,"userBalance":null,"liquidCode":null,"shipmentTypeStr":null,"specifications":"C1048042,紫色结福 2/0线 (3) 70厘米 1/2弧 圆针 26","pageStart":null,"pageSize":null,"changeSgin":null,"yapei":2,"companyId":null,"userReceiveId2":null,"preemptConfig":null,"productSpec":null,"secondAuditSign":null,"secondAuditById":null,"secondAuditByName":null,"secondAuditTime":null,"secondAuditRemark":null,"secondAuditStatus":null,"rebateRule":"0","rebateControlSign":0,"rebateId":null,"preferenceType":null,"preferenceName":null,"disPrice":null,"lineNum":0,"auditStaySign":0,"fileList":null,"imageUrls":null,"total":null,"submitTimeStr":null,"updateTimeStr":null,"auditTimeStr":null,"acceptTime":null,"acceptTimeStr":null,"paidTime":null,"paidTimeStr":null,"erpHandingTime":null,"erpHandingTimeStr":null,"partShippingTime":null,"partShippingTimeStr":null,"allShippingTime":null,"allShippingTimeStr":null,"pushJdeTimeStr":null,"successTimeStr":null,"onlinePaySuccessTime":null,"onlinePaySuccessTimeStr":null,"bankTransactionSerial":null,"newIsTax":null,"countFormula":null,"countNumber":null,"noTaxRebateAmount":0,"isCollectionAllocation":0,"siteCompanyCode":null,"hospitalOrderType":null,"proofTime":null,"proofURL":null,"proofRemark":null,"proofSign":0,"customerCancelSign":null,"cancelRecords":null,"cancelCount":0,"updateNewTime":null,"updateNewTimeStr":null,"fsDedUseSign":null,"notice":null,"shareType":null,"singleRebateSign":null,"cf":false,"isPre":null,"showDemandAuditLineLabel":false,"orderType":null,"newDiscountRate":null,"oldOrderType":null,"oldNewDiscountRate":null,"pendding":null,"pushJdeStatusDemandSub":null,"circleGiftSign":0,"delay":null,"limitS":null,"starts":null,"ends":null,"completedS":null,"confirmDays":null,"remindS":null,"skuGroupList":null,"groupProductType":0,"purchaseId":null,"purchaseCode":null,"sdCancelTime":null,"sdTipSign":0,"receiverNote":null,"receiverPhoneNote":null,"receiverAddressNote":null,"flag":null,"sourceStr":null,"addressNoNote":null,"detailIsSpit":false,"spitSgin":null,"distributionType":null,"rebateValidity":null,"orderChangeType":null,"logoIcon":null,"detail":null,"changeBigType":null,"promotionType":null,"activityTotalAmount":null,"couponTotalAmount":null,"userReceiveId":null,"editSgin":null,"snSgin":null,"jdeOutAmount":null,"totalAllPaAmount":null,"diffShowSgin":0,"lineCodeDelete":null,"startTime":null,"endTime":null,"changeSign":null,"distributionId":null,"limitBuySign":0,"companyType":null,"afterSale":null,"csId":null,"sdStatusNodeParamList":null,"ypPromotionTotal":null,"acrossMainCode":null,"forceApprovedSign":0,"circleGiftContinueSgin":0,"customerCharge":null,"onlinePaySign":0,"recodeDemandSkuList":null,"mergeDemandSkuList":null,"inventoryNode":null,"customCode":null,"terminalSource":null,"potentialClientsId":null,"settlementStatus":null,"firstOrderAuditStatus":null,"confirmReceiptSign":null,"confirmReceiptTime":null,"afterSaleDays":null,"deliveryCompletedTime":null,"taxSign":0,"orderSplitSign":0,"demandRebateSkuList":null,"confirmTime":null,"customerPurchaseNo":null,"mustInstallDate":false,"secondAddressList":null,"splitOrMerge":null,"spitOrderSign":null,"productAmountWholeLine":915,"auditCompanyName":null,"auditCompanyNameCode":null,"edit":false,"showMoreAttribute":false,"ratio":null,"ratioFlag":false,"rebateFlags":false,"userBalancePrice":0,"allQuantity":1,"totalPriceNum":0,"maxTotalLimitPrice":0,"lastNoTaxDiscountAmount":0,"lastDiscountAmount":0}]},"id":null,"type":2,"userNo":"1071246","userName":"上海勘泽贸易商行"}
+#预期结果
+checkDict2: {"success":true,"code":"200","message":"OK"}
\ No newline at end of file
diff --git a/data/cmdc_demand_delete/data b/data/cmdc_demand_delete/data
new file mode 100644
index 0000000000000000000000000000000000000000..99d84d9099737579d1da72a97b375004aa454db7
--- /dev/null
+++ b/data/cmdc_demand_delete/data
@@ -0,0 +1,60 @@
+#需求单删除接口地址-永久删除
+"url": "/order/back/refuseDemand"
+
+#需求单列表接口地址
+"url1": "/order/back/listDemand"
+
+# 后台运营管理系统登录信息
+"username": "admin"
+"password": "Aa123456"
+
+json_headers1: {
+ "Content-Type": "application/json",
+ "Cmdc_access_token": "%s"
+}
+
+
+#测试场景一:需求正常单删除
+#查询待首营状态的需求单
+"payload10": {"times":[null],"listOrderStatus":["99"],"productName":null,"demandCode":null,"demandParentCode":null,"customerName":null,"manufacturer":null,"materialCode":null,"sellerCompanyName":null,"produceRegisterNum":null,"productLineName":null,"auditByName":null,"orderSource":null,"changeTypeList":null,"isRebateEdit":null,"jdeType":null,"pageSize":8,"pageStart":1,"orderChangeType":null,"snSgin":null,"changeSign":null,"customerCode":null,"distributionType":null,"busCustomerCode":null,"loginName":null,"cancelSign":0,"shipmentType":null,"startTime":null}
+#点击删除图标,进行待首营状态下需求单删除操作请求报文
+"payload1": {"demandId":"%d","auditStatus":2,"auditRemark":"#未首营平台取消#"}
+#预期结果
+checkDict2: {"success":true,"code":"200","message":"OK","data":1,"freshToken":null}
+checkDict12: {"success":false,"code":"666","message":"请勿重复提交","data":null,"freshToken":null}
+
+
+#测试场景二:删除不存在的需求单
+"payload2": {"demandId":"%d","auditStatus":2,"auditRemark":"#待国药审核#"}
+#预期结果
+"checkDict3": {"success":false,"code":"demand","message":"审核拒绝没有找到子需求单","data":null,"freshToken":null}
+
+#测试场景三:重复删除已被删除的需求单
+"payload3": {"demandId":"%d","auditStatus":2,"auditRemark":"#未首营平台取消#"}
+#预期结果
+"checkDict4": {"success":false,"code":"demand","data":null,"freshToken":null}
+
+#测试场景四:删除其他状态的需求单
+#查询审核通过状态的需求单(待支付)
+"payload40": {"times":[null],"listOrderStatus":["132"],"productName":null,"demandCode":null,"demandParentCode":null,"customerName":null,"manufacturer":null,"materialCode":null,"sellerCompanyName":null,"produceRegisterNum":null,"productLineName":null,"auditByName":null,"orderSource":null,"changeTypeList":null,"isRebateEdit":null,"jdeType":null,"pageSize":8,"pageStart":1,"orderChangeType":null,"snSgin":null,"changeSign":null,"customerCode":null,"distributionType":null,"busCustomerCode":null,"loginName":null,"cancelSign":0,"shipmentType":null,"startTime":null,"itemStart":0}
+
+"payload4": {"demandId":"%d","auditStatus":2,"auditRemark":""}
+#预期结果
+"checkDict5": {"success":true,"code":"200","message":"OK","data":1,"freshToken":null}
+
+
+#需求单创建
+#需求单创建接口地址
+"url_demand": "/order/saveBackDemandOrder"
+"payload_demand": {"orderStatus":102,"demandItems":[{"maxProductNum":999999,"minProductNum":1,"addMinProductNum":1,"minProductNumSign":false,"isMultiple":false,"quantityTip":"","productId":7892,"productCode":"11852135","materialCode":"VH-100","productName":"测瓣器及其组件","specifications":"VH-100","manufacturer":"SORIN GROUP ITALIA S.R.L. 索林集团意大利有限责任公司","productLineName":"HV","productLineCode":"4011","zonePriceVOList":null,"price":1879,"storageType":"999","optionStr":"VH-100","measuringUnit":"BX","ippMiniPurchaseNum":null,"ippMultipleSign":null,"ippPurchaseMultiple":null,"ippStatus":null,"quantity":1,"isGift":0,"measuringUnit1":"盒","imageUrl":"https://pro-cmdc.oss-cn-beijing.aliyuncs.com/productFile/2021/09/29/3721d7b9-0cd6-4d45-a5f2-f41595cd231b.jpg","companyCode":"00111","areaName":null,"areaPrice":1879,"agreementPriceId":null,"hidden":null,"description":"","taxRate":"0.13","allMaterialSign":null,"materialCodeExact":null,"specificationsExact":null,"hospitalOrderType":null,"hospitalHopeDate":null,"siteCompanyCode":null,"propertyName":null,"propertyVal":null,"propertyNote":null,"mustInstallDate":false,"showDemandAuditLineLabel":false,"editProductCode":false,"quantityErr":false,"fresenuis":false,"singleFresenuis":null,"zeroSign":false,"purchaseZeroProductList":[],"activityBasicId":null,"giftList":[],"selectGiftArr":[],"selectZeroGiftObj":{"mainProductList":[],"giftProductList":[]},"giftGroupQuantity":1,"giftSign":0,"customerCode":"1071246","realPay":"1879.00"}],"paymentAmount":1879,"productAmount":1879,"userId":18,"userNo":"1071246","customerCode":"1071246","userName":"上海勘泽贸易商行","companyId":"6","paymentType":1,"receiveBankName":"国药集团上海医疗器械有限公司","receiveBankAccount":"36830188000041806","accountId":3,"receiverName":"刘海涛","receiverContact":"18940124666","receiverAddress":"金山区朱泾镇鸿安路599号2幢北2楼210、211室","addressNumber":76216,"remark":"","receiverNote":"刘海涛","receiverPhoneNote":"18940124666","receiverAddressNote":"金山区朱泾镇鸿安路599号2幢北2楼210、211室","addressNoNote":76216,"fileList":[],"sellerCompanyCode":"00111","sellerCompanyName":"国药集团上海医疗器械有限公司","orderSource":2,"replaceCustomerOrder":{"orderStatus":102,"demandItems":[{"maxProductNum":999999,"minProductNum":1,"addMinProductNum":1,"minProductNumSign":false,"isMultiple":false,"quantityTip":"","productId":7892,"productCode":"11852135","materialCode":"VH-100","productName":"测瓣器及其组件","specifications":"VH-100","manufacturer":"SORIN GROUP ITALIA S.R.L. 索林集团意大利有限责任公司","productLineName":"HV","productLineCode":"4011","zonePriceVOList":null,"price":1879,"storageType":"999","optionStr":"VH-100","measuringUnit":"BX","ippMiniPurchaseNum":null,"ippMultipleSign":null,"ippPurchaseMultiple":null,"ippStatus":null,"quantity":1,"isGift":0,"measuringUnit1":"盒","imageUrl":"https://pro-cmdc.oss-cn-beijing.aliyuncs.com/productFile/2021/09/29/3721d7b9-0cd6-4d45-a5f2-f41595cd231b.jpg","companyCode":"00111","areaName":null,"areaPrice":1879,"agreementPriceId":null,"hidden":null,"description":"","taxRate":"0.13","allMaterialSign":null,"materialCodeExact":null,"specificationsExact":null,"hospitalOrderType":null,"hospitalHopeDate":null,"siteCompanyCode":null,"propertyName":null,"propertyVal":null,"propertyNote":null,"mustInstallDate":false,"showDemandAuditLineLabel":false,"editProductCode":false,"quantityErr":false,"fresenuis":false,"singleFresenuis":null,"zeroSign":false,"purchaseZeroProductList":[],"activityBasicId":null,"giftList":[],"selectGiftArr":[],"selectZeroGiftObj":{"mainProductList":[],"giftProductList":[]},"giftGroupQuantity":1}],"paymentAmount":1879,"productAmount":1879,"userId":18,"userNo":"1071246","customerCode":"1071246","userName":"上海勘泽贸易商行","companyId":"6","paymentType":1,"receiveBankName":"国药集团上海医疗器械有限公司","receiveBankAccount":"36830188000041806","accountId":3,"receiverName":"刘海涛","receiverContact":"18940124666","receiverAddress":"金山区朱泾镇鸿安路599号2幢北2楼210、211室","addressNumber":76216,"remark":"","receiverNote":"刘海涛","receiverPhoneNote":"18940124666","receiverAddressNote":"金山区朱泾镇鸿安路599号2幢北2楼210、211室","addressNoNote":76216,"fileList":[],"sellerCompanyCode":"00111","sellerCompanyName":"国药集团上海医疗器械有限公司","orderSource":2,"customerInfo":{"userId":18,"userName":"BJ0500","rejectUserName":null,"password":null,"realName":"赵林","userNo":"1071246","telephone":"15640336952","rejectTelephone":null,"registerAddress":"[{\\\"province\\\":810,\\\"city\\\":849,\\\"area\\\":850}]","detailAddress":"金山区朱泾镇鸿安路599号2幢北2楼210、211室","businessScope":"[{\\\"province\\\":\\\"\\\",\\\"city\\\":2237,\\\"area\\\":\\\"\\\"}]","companyProperty":101,"companyId":null,"companyCode":null,"companyName":"国药集团上海医疗器械有限公司","companyNameList":null,"customerCompanyName":"上海勘泽贸易商行","lienceNo":"91310116MA1JAFLT2B","userType":2,"companyType":null,"status":3,"disableSign":0,"deleteSign":null,"createBy":null,"updateBy":null,"createTime":null,"updateTime":null,"licenceSketchUrl":null,"licenceUrl":null,"openId":null,"referrer":null,"gift":null,"identity":null,"department":null,"platformStatus":1,"rejectionReason":null,"registerType":null,"siteType":null,"departmentCode":null,"personName":null,"registration":null,"realPassword":null,"recommend":null,"taxRate":0.13,"roleNames":null,"subCompanyName":"国药集团上海医疗器械有限公司","roleIds":null,"addressList":null,"licenseList":null,"labelList":null,"managerList":null,"createTimeStr":null,"categoriesList":null,"merchantsAddress":null,"merchantStatus":null,"refuseReason":null,"merchantsId":null,"userTransactionAmount":"0","gray":null,"bindingTime":null,"bindSign":1,"jdeStatus":0,"jdePhone":"","recommender":null,"coopeSgin":null,"bindflowList":null,"userJDEInfo":null}},"draftId":null,"demands":[{"demandId":null,"demandParentId":null,"demandParentCode":null,"demandCode":null,"customerId":null,"customerName":null,"customerCode":1071246,"loginName":null,"realName":null,"addressNumber":null,"mobile":null,"productName":null,"productCode":null,"sellerCompanyName":null,"sellerCompanyCode":null,"paymentType":null,"receiveBankName":null,"receiveBankAccount":null,"paymentAmount":"1879.00","productAmount":1879,"payableAmount":1879,"refundAmount":null,"cancelAmount":null,"discountAmount":0,"orderStatus":null,"refundStatus":null,"receiverName":null,"receiverContact":null,"receiverAddress":null,"remark":null,"revokedReason":null,"auditById":null,"auditByName":null,"auditTime":null,"auditRemark":null,"flhsStatus":null,"pushJdeStatus":null,"createTime":null,"updateTime":null,"submitTime":null,"pushJdeTime":null,"successTime":null,"auditStatus":null,"deleteSign":null,"firstOrderFlag":null,"demandItems":[{"demandSkuId":null,"demandId":null,"distributionId":null,"companyCode":"00111","demandCode":null,"demandParentId":null,"sellerCompanyId":null,"sellerCompanyName":null,"sellerCompanyCode":null,"customerCode":1071246,"productLineCode":"4011","productLineName":"HV","propertyStr":null,"storageType":"999","suppDist":null,"productId":7892,"productName":"测瓣器及其组件","productCode":"11852135","productNature":null,"brandName":null,"optionStr":"VH-100","imageUrl":"https://pro-cmdc.oss-cn-beijing.aliyuncs.com/productFile/2021/09/29/3721d7b9-0cd6-4d45-a5f2-f41595cd231b.jpg","lineNumber":null,"price":1879,"rebateId":null,"originalPrice":null,"biddingDiscountTax":null,"salesDiscountTax":null,"quantity":1,"sumQuantity":null,"sendQuantity":null,"lackQuantity":null,"cancelQuantity":null,"cancelAmount":null,"refundQuantity":null,"refundAmount":null,"discountQuantity":null,"discountAmount":null,"subtotal":1879,"measuringUnit":"盒","auxiliaryMeasuringUnit":null,"procurementMeasuringUnit":null,"pricingMeasuringUnit":null,"materialCode":"VH-100","manufacturer":"SORIN GROUP ITALIA S.R.L. 索林集团意大利有限责任公司","produceRegisterNum":null,"riskRank":null,"productClassify":null,"createTime":null,"updateTime":null,"deleteSign":null,"calCancelFlag":null,"refundFlag":null,"discountRate":0,"realPay":1879,"promotionPrice":null,"promotionTotalPrice":0,"demandParentCode":null,"regionId":null,"regionName":null,"spitSign":null,"activityAmount":null,"couponAmount":null,"activityUnitAmount":0,"couponUnitAmount":null,"activityBasicId":null,"couponSgin":null,"couponSgin2":null,"returnQuantity":null,"returnAmount":null,"customerId":null,"prescription":null,"specifications":"VH-100","lineCodeDelete":null,"sdOutStorage":null,"licenseNo":null,"demandCodes":null,"areaName":null,"agreementPriceId":null,"offerPrice":null,"orderMark":null,"totalPrice":null,"productLimitBuyList":null,"giftSign":0,"giftProductCode":null,"activityCarDataVoList":null,"orderSource":null,"receiverName":null,"receiverContact":null,"receiverAddress":null,"rebateTripId":null,"allSign":null,"salesReturn":null,"nowAmount":null,"taxSign":0,"plusMinuKey":null,"rebateRule":null,"lockType":null,"lineNumberOrg":null,"changeSgin":null,"addSgin":null,"ptbfa1":null,"ptbfa2":null,"ptbfa3":null,"ptbfa4":null,"ptbfa5":null,"yapeiPriceId":null,"ypLinePromotion":null,"yapeiPrice":null,"companyId":null,"buyerCartId":0,"userReceiveIdx":null,"userReceiveIdx2":null,"limitNum":null,"productLimitBuyId":null,"alreadyBuyNum":null,"limitBuySign":0,"proposeNum":null,"takeEffectRange":null,"takeEffectTime":null,"endTime1":null,"groupId":null,"fsGroupId":null,"proposalQuantity":null,"proposalSign":0,"manufacturerUserNo":null,"manufacturerUserDesc":null,"manufacturerProductNo":null,"manufacturerProductDesc":null,"manufacturerUserId":null,"manufacturerProductId":null,"busProductCode":null,"paidTime":null,"customerName":null,"paymentAmount":null,"specQuantity":null,"disQuantity":null,"fulfilledQuantity":null,"fulCancelQuantity":null,"couponId":null,"couponId2":null,"limitS":null,"starts":null,"ends":null,"userId":null,"productTax":"","taxRate":0.13,"demandSplitSign":"1","hospitalHopeDate":null,"uniqueKey":null,"productType":null,"activityRuleId":null,"allowanceBeginTime":null,"allowanceEndTime":null,"sign":null,"differenceActivityUserId":null,"groupNumber":1,"groupName":null,"skuGroup":null,"subList":null,"dataJson":null,"skuMergeSign":null,"freseniusPriceId":null,"quantityAndGroupAll":null,"booleaTime":null,"spitSgin":0,"groupSpitSign":0,"sort":0,"circleArea":null,"purchaseEntryId":null,"mustInstallDate":false,"installedDate":null,"installedDateStr":null,"demandLines":null,"subLineNumber":null,"demandSubCode":null,"propertyName":null,"propertyVal":null,"propertyNote":null,"sendManualSign":0,"activityType":0,"giftSettlementMethod":null,"giftInitQuantity":null,"packageCode":null,"giftGroupQuantity":1,"siteCompanyCode":null,"hospitalOrderType":null,"isCollectionAllocation":null,"orderStatus":null,"distributionType":null,"groupCode":null,"groupProductType":null,"pSign":0,"backSign":0,"description":"","stockNumber":null,"rebate":false,"userBalance":null,"purchaseQuantity":1,"purchaseZeroProductList":[]}],"demandSubItems":null,"rebateDetail":null,"rebateAmountList":null,"productLineCode":"4011","productLineName":"HV","auditLoginName":null,"showPurchaseNo":false,"isRebate":null,"isShowReate":null,"taxRate":0.13,"rebateType":0,"paymentAmountWholeLine":1879,"discountAmountWholeLine":0,"payableAmountWholeLine":1879,"discountRate":0,"singleRebateAmount":null,"isRebateEdit":null,"payCertUrl":null,"rebateAmount":null,"demandCance":null,"soAdd":null,"soCance":null,"orderReturn":null,"needCustomerConfirm":false,"measuringUnit":null,"productId":null,"version":null,"mainVersion":null,"agencyConfigId":null,"confirmSign":null,"replySign":null,"agencySign":null,"editIng":null,"editIngStr":null,"jdeType":null,"isElectronicSeal":null,"contractAgreementNo":null,"alesDepartmentNo":null,"alesDepartmentName":null,"salesPersonNo":null,"salesPersonName":null,"customerNote":null,"otherNote":null,"contractAgreementCode":null,"projectName":null,"projectCode":null,"regionId":null,"regionName":null,"productLineBindSign":null,"shipVia":null,"orderSource":null,"userBalance":null,"liquidCode":null,"shipmentTypeStr":null,"specifications":"VH-100","pageStart":null,"pageSize":null,"changeSgin":null,"yapei":2,"companyId":null,"userReceiveId2":null,"preemptConfig":null,"productSpec":null,"secondAuditSign":null,"secondAuditById":null,"secondAuditByName":null,"secondAuditTime":null,"secondAuditRemark":null,"secondAuditStatus":null,"rebateRule":"0","rebateControlSign":0,"rebateId":null,"preferenceType":null,"preferenceName":null,"disPrice":null,"lineNum":0,"auditStaySign":0,"fileList":null,"imageUrls":null,"total":null,"submitTimeStr":null,"updateTimeStr":null,"auditTimeStr":null,"acceptTime":null,"acceptTimeStr":null,"paidTime":null,"paidTimeStr":null,"erpHandingTime":null,"erpHandingTimeStr":null,"partShippingTime":null,"partShippingTimeStr":null,"allShippingTime":null,"allShippingTimeStr":null,"pushJdeTimeStr":null,"successTimeStr":null,"onlinePaySuccessTime":null,"onlinePaySuccessTimeStr":null,"bankTransactionSerial":null,"newIsTax":null,"countFormula":null,"countNumber":null,"noTaxRebateAmount":0,"isCollectionAllocation":0,"siteCompanyCode":null,"hospitalOrderType":null,"proofTime":null,"proofURL":null,"proofRemark":null,"proofSign":0,"customerCancelSign":null,"cancelRecords":null,"cancelCount":0,"updateNewTime":null,"updateNewTimeStr":null,"fsDedUseSign":null,"notice":null,"shareType":null,"singleRebateSign":null,"cf":false,"isPre":null,"showDemandAuditLineLabel":false,"orderType":null,"newDiscountRate":null,"oldOrderType":null,"oldNewDiscountRate":null,"pendding":null,"pushJdeStatusDemandSub":null,"circleGiftSign":0,"delay":null,"limitS":null,"starts":null,"ends":null,"completedS":null,"confirmDays":null,"remindS":null,"skuGroupList":null,"groupProductType":0,"purchaseId":null,"purchaseCode":null,"sdCancelTime":null,"sdTipSign":0,"receiverNote":null,"receiverPhoneNote":null,"receiverAddressNote":null,"flag":null,"sourceStr":null,"addressNoNote":null,"detailIsSpit":false,"spitSgin":null,"distributionType":null,"rebateValidity":null,"orderChangeType":null,"logoIcon":null,"detail":null,"changeBigType":null,"promotionType":null,"activityTotalAmount":null,"couponTotalAmount":null,"userReceiveId":null,"editSgin":null,"snSgin":null,"jdeOutAmount":null,"totalAllPaAmount":null,"diffShowSgin":0,"lineCodeDelete":null,"startTime":null,"endTime":null,"changeSign":null,"distributionId":null,"limitBuySign":0,"companyType":null,"afterSale":null,"csId":null,"sdStatusNodeParamList":null,"ypPromotionTotal":null,"acrossMainCode":null,"forceApprovedSign":0,"circleGiftContinueSgin":0,"customerCharge":null,"onlinePaySign":0,"recodeDemandSkuList":null,"mergeDemandSkuList":null,"inventoryNode":null,"customCode":null,"terminalSource":null,"potentialClientsId":null,"settlementStatus":null,"firstOrderAuditStatus":null,"confirmReceiptSign":null,"confirmReceiptTime":null,"afterSaleDays":null,"deliveryCompletedTime":null,"taxSign":0,"orderSplitSign":0,"demandRebateSkuList":null,"confirmTime":null,"customerPurchaseNo":null,"mustInstallDate":false,"secondAddressList":null,"splitOrMerge":null,"spitOrderSign":null,"productAmountWholeLine":1879,"auditCompanyName":null,"auditCompanyNameCode":null,"edit":false,"showMoreAttribute":false,"ratio":null,"ratioFlag":false,"rebateFlags":false,"userBalancePrice":0,"allQuantity":1,"totalPriceNum":0,"maxTotalLimitPrice":0,"lastNoTaxDiscountAmount":0,"lastDiscountAmount":0}]}
+
+
+
+
+
+
+
+
+
+
+
diff --git a/data/cmdc_demand_fail/data b/data/cmdc_demand_fail/data
new file mode 100644
index 0000000000000000000000000000000000000000..c3de1051e02ee269802672a28de917dd4419e979
--- /dev/null
+++ b/data/cmdc_demand_fail/data
@@ -0,0 +1,41 @@
+#需求单拒绝接口地址
+"url": "/order/back/refuseDemand"
+#需求列表接口地址
+"url1": "/order/back/listDemand"
+
+# 后台运营管理系统登录信息
+"username": "Admin00111"
+"password": "Aa123456"
+
+json_headers1: {
+ "Content-Type": "application/json",
+ "Cmdc_access_token": "%s"
+}
+
+
+#测试场景一:需求正常单审核拒绝
+#获取需求单列表中待审核的需求单请求报文
+"payload10": {"times":[null],"listOrderStatus":["102"],"productName":null,"demandCode":null,"demandParentCode":null,"customerName":null,"manufacturer":null,"materialCode":null,"sellerCompanyName":null,"produceRegisterNum":null,"productLineName":null,"auditByName":null,"orderSource":null,"changeTypeList":null,"isRebateEdit":null,"jdeType":null,"pageSize":8,"pageStart":1,"orderChangeType":null,"snSgin":null,"changeSign":null,"customerCode":null,"distributionType":null,"busCustomerCode":null,"loginName":null,"cancelSign":0,"shipmentType":null,"startTime":null}
+#审核拒绝的请求报文
+"payload1": {"demandId":"%d","auditStatus":2,"auditRemark":"审核拒绝原因"}
+#预期结果
+checkDict1: {"success":true,"code":"200","message":"OK","data":1}
+
+
+#测试场景二:重复拒绝同一个需求单
+"payload2": {"demandId":"%d","auditStatus":2,"auditRemark":"审核拒绝原因"}
+#预期结果
+"checkDict2": {"success":false,"code":"demand","message":"该订单已提交过,请稍后操作","data":null,"freshToken":null}
+
+#测试场景三:审核拒绝不存在的需求单
+"payload3": {"demandId":"%s","auditStatus":2,"auditRemark":"#未首营平台取消#"}
+#预期结果
+"checkDict3": {"success":false,"code":"demand","message":"审核拒绝没有找到子需求单","data":null,"freshToken":null}
+
+#测试场景四:审核拒绝其他状态下的需求单,例如,审核通过的需求单
+#获取需求单列表中审核通过的需求单请求报文(待支付)
+"payload40": {"times":[null],"listOrderStatus":["132"],"productName":null,"demandCode":null,"demandParentCode":null,"customerName":null,"manufacturer":null,"materialCode":null,"sellerCompanyName":null,"produceRegisterNum":null,"productLineName":null,"auditByName":null,"orderSource":null,"changeTypeList":null,"isRebateEdit":null,"jdeType":null,"pageSize":8,"pageStart":1,"orderChangeType":null,"snSgin":null,"changeSign":null,"customerCode":null,"distributionType":null,"busCustomerCode":null,"loginName":null,"cancelSign":0,"shipmentType":null,"startTime":null,"itemStart":0}
+#审核的请求报文
+"payload4": {"demandId":"%d","auditStatus":2,"auditRemark":"审核拒绝原因"}
+#预期结果
+"checkDict4": {"success":true,"code":"200","message":"OK","data":1}
diff --git a/data/cmdc_demand_list/data b/data/cmdc_demand_list/data
new file mode 100644
index 0000000000000000000000000000000000000000..4f6e0c331eb5c30455c410a6ee2a5531ad0d3083
--- /dev/null
+++ b/data/cmdc_demand_list/data
@@ -0,0 +1,49 @@
+#需求单列表接口地址
+"url1": "/order/back/listDemand"
+json_headers: {
+ "Content-Type": "application/json",
+ "Cmdc_access_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VySWQiOjIsInVzZXJOYW1lIjoiYWRtaW4yIiwidGltZSI6MTY5Mzk4ODY5NDg0M30.f71cshaaFyY2w2i53P87etu5-x2Y3gqMVKraUGYndp0"
+}
+
+"payload": {"times":[null],"listOrderStatus":[],"productName":null,"demandCode":null,"demandParentCode":null,"customerName":null,"manufacturer":null,"materialCode":null,"sellerCompanyName":null,"produceRegisterNum":null,"productLineName":null,"auditByName":null,"orderSource":null,"changeTypeList":null,"isRebateEdit":null,"jdeType":null,"pageSize":8,"pageStart":1,"orderChangeType":null,"snSgin":null,"changeSign":null,"customerCode":null,"distributionType":null,"busCustomerCode":null,"loginName":null,"cancelSign":0,"shipmentType":null,"startTime":null}
+#预期结果
+checkDict1: {"code":"401","message":"Unauthorized","success":false}
+
+# 后台运营管理系统登录信息
+"username": "Admin00111"
+"password": "Aa123456"
+
+#获取后台运营平台需求单列表
+json_headers1: {
+ "Content-Type": "application/json",
+ "Cmdc_access_token": "%s"
+}
+"payload1": {"times":[null],"listOrderStatus":[],"productName":null,"demandCode":null,"demandParentCode":null,"customerName":null,"manufacturer":null,"materialCode":null,"sellerCompanyName":null,"produceRegisterNum":null,"productLineName":null,"auditByName":null,"orderSource":null,"changeTypeList":null,"isRebateEdit":null,"jdeType":null,"pageSize":8,"pageStart":1,"orderChangeType":null,"snSgin":null,"changeSign":null,"customerCode":null,"distributionType":null,"busCustomerCode":null,"loginName":null,"cancelSign":0,"shipmentType":null,"startTime":null}
+#预期结果
+checkDict2: {"success":true,"code":"200","message":"OK"}
+
+#需求单草稿订单删除接口地址
+"url": "/order/back/deleteDraft"
+json_headers2: {
+ "Cmdc_access_token": "%s"
+}
+
+#测试场景一:删除已保存订单状态的需求单
+#查询需求单列表中状态为已保存订单的需求单请求报文
+"payload20": {"times":[null],"listOrderStatus":["302"],"productName":null,"demandCode":null,"demandParentCode":null,"customerName":null,"manufacturer":null,"materialCode":null,"sellerCompanyName":null,"produceRegisterNum":null,"productLineName":null,"auditByName":null,"orderSource":null,"changeTypeList":null,"isRebateEdit":null,"jdeType":null,"pageSize":8,"pageStart":1,"orderChangeType":null,"snSgin":null,"changeSign":null,"customerCode":null,"distributionType":null,"busCustomerCode":null,"loginName":null,"cancelSign":0,"shipmentType":null,"startTime":null}
+#删除需求单请求报文
+"payload2": {"demandId": "%d"}
+#预期结果
+"checkDict3": {'success': True, 'code': '200', 'message': 'OK', 'data': None, 'freshToken': None}
+
+
+#测试场景二:重复删除已保存订单状态的需求单或删除其他状态下需求单
+"payload3": {"demandId": "%d"}
+#预期结果
+"checkDict4": {'success': True, 'code': '200', 'message': 'OK', 'data': None, 'freshToken': None}
+
+
+#创建并提交需求草稿订单
+#需求单草稿订单新增接口地址
+"url2": "/product/public/draft/add"
+"payload200": {"productMap":{"orderStatus":102,"demandItems":[{"maxProductNum":999999,"minProductNum":1,"addMinProductNum":1,"minProductNumSign":false,"isMultiple":false,"quantityTip":"","productId":8695,"productCode":"12137253","materialCode":"AP0005158","productName":"柠檬酸消毒液","specifications":"5L(AP0005158)","manufacturer":"费森尤斯医药用品股份及两合公司Fresenius Medical Care AG & Co. KGaA","productLineName":"费森尤斯","productLineCode":"3021","zonePriceVOList":null,"price":396,"storageType":"999","optionStr":"5L(AP0005158)","measuringUnit":"BK","ippMiniPurchaseNum":null,"ippMultipleSign":null,"ippPurchaseMultiple":null,"ippStatus":null,"quantity":1,"isGift":0,"measuringUnit1":"桶","imageUrl":null,"companyCode":"00111","areaName":null,"areaPrice":396,"agreementPriceId":null,"hidden":null,"description":"","taxRate":"0.13","allMaterialSign":null,"materialCodeExact":null,"specificationsExact":null,"hospitalOrderType":null,"hospitalHopeDate":null,"siteCompanyCode":null,"propertyName":null,"propertyVal":null,"propertyNote":null,"mustInstallDate":false,"showDemandAuditLineLabel":false,"editProductCode":false,"quantityErr":false,"fresenuis":true,"singleFresenuis":null,"zeroSign":false,"purchaseZeroProductList":[],"activityBasicId":null,"giftList":[],"selectGiftArr":[],"selectZeroGiftObj":{"mainProductList":[],"giftProductList":[]},"giftGroupQuantity":1,"giftSign":0,"customerCode":"1026966","realPay":"396.00"}],"paymentAmount":396,"productAmount":396,"userId":74,"userNo":"1026966","customerCode":"1026966","userName":"北京西麦克斯医疗器械有限公司","companyId":"6","paymentType":1,"receiveBankName":"国药集团上海医疗器械有限公司","receiveBankAccount":"36830188000041806","accountId":3,"remark":"","receiverNote":"段誉","receiverPhoneNote":"13333333333","receiverAddressNote":"云南省人民路3号","addressNoNote":0,"fileList":[],"sellerCompanyCode":"00111","sellerCompanyName":"国药集团上海医疗器械有限公司","orderSource":2,"replaceCustomerOrder":{"orderStatus":102,"demandItems":[{"maxProductNum":999999,"minProductNum":1,"addMinProductNum":1,"minProductNumSign":false,"isMultiple":false,"quantityTip":"","productId":8695,"productCode":"12137253","materialCode":"AP0005158","productName":"柠檬酸消毒液","specifications":"5L(AP0005158)","manufacturer":"费森尤斯医药用品股份及两合公司Fresenius Medical Care AG & Co. KGaA","productLineName":"费森尤斯","productLineCode":"3021","zonePriceVOList":null,"price":396,"storageType":"999","optionStr":"5L(AP0005158)","measuringUnit":"BK","ippMiniPurchaseNum":null,"ippMultipleSign":null,"ippPurchaseMultiple":null,"ippStatus":null,"quantity":1,"isGift":0,"measuringUnit1":"桶","imageUrl":null,"companyCode":"00111","areaName":null,"areaPrice":396,"agreementPriceId":null,"hidden":null,"description":"","taxRate":"0.13","allMaterialSign":null,"materialCodeExact":null,"specificationsExact":null,"hospitalOrderType":null,"hospitalHopeDate":null,"siteCompanyCode":null,"propertyName":null,"propertyVal":null,"propertyNote":null,"mustInstallDate":false,"showDemandAuditLineLabel":false,"editProductCode":false,"quantityErr":false,"fresenuis":true,"singleFresenuis":null,"zeroSign":false,"purchaseZeroProductList":[],"activityBasicId":null,"giftList":[],"selectGiftArr":[],"selectZeroGiftObj":{"mainProductList":[],"giftProductList":[]},"giftGroupQuantity":1}],"paymentAmount":396,"productAmount":396,"userId":74,"userNo":"1026966","customerCode":"1026966","userName":"北京西麦克斯医疗器械有限公司","companyId":"6","paymentType":1,"receiveBankName":"国药集团上海医疗器械有限公司","receiveBankAccount":"36830188000041806","accountId":3,"remark":"","receiverNote":"段誉","receiverPhoneNote":"13333333333","receiverAddressNote":"云南省人民路3号","addressNoNote":0,"fileList":[],"sellerCompanyCode":"00111","sellerCompanyName":"国药集团上海医疗器械有限公司","orderSource":2,"customerInfo":{"userId":74,"userName":"BJ0512","rejectUserName":null,"password":null,"realName":"贾爽","userNo":"1026966","telephone":"15116969098","rejectTelephone":null,"registerAddress":"[{\\\"province\\\":1,\\\"city\\\":2,\\\"area\\\":13}]","detailAddress":"北京市昌平区科技园区白浮泉路10号2层02","businessScope":"[{\\\"province\\\":1,\\\"city\\\":2,\\\"area\\\":13}]","companyProperty":101,"companyId":null,"companyCode":null,"companyName":"国药集团上海医疗器械有限公司","companyNameList":null,"customerCompanyName":"北京西麦克斯医疗器械有限公司","lienceNo":"91110114666946257A","userType":2,"companyType":null,"status":3,"disableSign":0,"deleteSign":null,"createBy":null,"updateBy":null,"createTime":null,"updateTime":null,"licenceSketchUrl":null,"licenceUrl":null,"openId":null,"referrer":null,"gift":null,"identity":null,"department":null,"platformStatus":1,"rejectionReason":null,"registerType":null,"siteType":null,"departmentCode":null,"personName":null,"registration":null,"realPassword":null,"recommend":null,"taxRate":0.13,"roleNames":null,"subCompanyName":"国药集团上海医疗器械有限公司","roleIds":null,"addressList":null,"licenseList":null,"labelList":null,"managerList":null,"createTimeStr":null,"categoriesList":null,"merchantsAddress":null,"merchantStatus":null,"refuseReason":null,"merchantsId":null,"userTransactionAmount":"0","gray":null,"bindingTime":null,"bindSign":1,"jdeStatus":0,"jdePhone":"","recommender":null,"coopeSgin":null,"bindflowList":null,"userJDEInfo":null}},"draftId":null,"demands":[{"demandId":null,"demandParentId":null,"demandParentCode":null,"demandCode":null,"customerId":null,"customerName":null,"customerCode":1026966,"loginName":null,"realName":null,"addressNumber":null,"mobile":null,"productName":null,"productCode":null,"sellerCompanyName":null,"sellerCompanyCode":null,"paymentType":null,"receiveBankName":null,"receiveBankAccount":null,"paymentAmount":"396.00","productAmount":396,"payableAmount":396,"refundAmount":null,"cancelAmount":null,"discountAmount":0,"orderStatus":null,"refundStatus":null,"receiverName":null,"receiverContact":null,"receiverAddress":null,"remark":null,"revokedReason":null,"auditById":null,"auditByName":null,"auditTime":null,"auditRemark":null,"flhsStatus":null,"pushJdeStatus":null,"createTime":null,"updateTime":null,"submitTime":null,"pushJdeTime":null,"successTime":null,"auditStatus":null,"deleteSign":null,"firstOrderFlag":null,"demandItems":[{"demandSkuId":null,"demandId":null,"distributionId":null,"companyCode":"00111","demandCode":null,"demandParentId":null,"sellerCompanyId":null,"sellerCompanyName":null,"sellerCompanyCode":null,"customerCode":1026966,"productLineCode":"3021","productLineName":"费森尤斯","propertyStr":null,"storageType":"999","suppDist":null,"productId":8695,"productName":"柠檬酸消毒液","productCode":"12137253","productNature":null,"brandName":null,"optionStr":"5L(AP0005158)","imageUrl":null,"lineNumber":null,"price":396,"rebateId":null,"originalPrice":null,"biddingDiscountTax":null,"salesDiscountTax":null,"quantity":1,"sumQuantity":null,"sendQuantity":null,"lackQuantity":null,"cancelQuantity":null,"cancelAmount":null,"refundQuantity":null,"refundAmount":null,"discountQuantity":null,"discountAmount":null,"subtotal":396,"measuringUnit":"桶","auxiliaryMeasuringUnit":null,"procurementMeasuringUnit":null,"pricingMeasuringUnit":null,"materialCode":"AP0005158","manufacturer":"费森尤斯医药用品股份及两合公司Fresenius Medical Care AG & Co. KGaA","produceRegisterNum":null,"riskRank":null,"productClassify":null,"createTime":null,"updateTime":null,"deleteSign":null,"calCancelFlag":null,"refundFlag":null,"discountRate":0,"realPay":396,"promotionPrice":null,"promotionTotalPrice":0,"demandParentCode":null,"regionId":null,"regionName":null,"spitSign":null,"activityAmount":null,"couponAmount":null,"activityUnitAmount":0,"couponUnitAmount":null,"activityBasicId":null,"couponSgin":null,"couponSgin2":null,"returnQuantity":null,"returnAmount":null,"customerId":null,"prescription":null,"specifications":"5L(AP0005158)","lineCodeDelete":null,"sdOutStorage":null,"licenseNo":null,"demandCodes":null,"areaName":null,"agreementPriceId":null,"offerPrice":null,"orderMark":null,"totalPrice":null,"productLimitBuyList":null,"giftSign":0,"giftProductCode":null,"activityCarDataVoList":null,"orderSource":null,"receiverName":null,"receiverContact":null,"receiverAddress":null,"rebateTripId":null,"allSign":null,"salesReturn":null,"nowAmount":null,"taxSign":0,"plusMinuKey":null,"rebateRule":"0","lockType":null,"lineNumberOrg":null,"changeSgin":null,"addSgin":null,"ptbfa1":null,"ptbfa2":null,"ptbfa3":null,"ptbfa4":null,"ptbfa5":null,"yapeiPriceId":null,"ypLinePromotion":null,"yapeiPrice":null,"companyId":null,"buyerCartId":0,"userReceiveIdx":null,"userReceiveIdx2":null,"limitNum":null,"productLimitBuyId":null,"alreadyBuyNum":null,"limitBuySign":0,"proposeNum":null,"takeEffectRange":null,"takeEffectTime":null,"endTime1":null,"groupId":null,"fsGroupId":null,"proposalQuantity":null,"proposalSign":0,"manufacturerUserNo":null,"manufacturerUserDesc":null,"manufacturerProductNo":null,"manufacturerProductDesc":null,"manufacturerUserId":null,"manufacturerProductId":null,"busProductCode":null,"paidTime":null,"customerName":null,"paymentAmount":null,"specQuantity":null,"disQuantity":null,"fulfilledQuantity":null,"fulCancelQuantity":null,"couponId":null,"couponId2":null,"limitS":null,"starts":null,"ends":null,"userId":null,"productTax":"","taxRate":0.13,"demandSplitSign":"1","hospitalHopeDate":null,"uniqueKey":null,"productType":null,"activityRuleId":null,"allowanceBeginTime":null,"allowanceEndTime":null,"sign":null,"differenceActivityUserId":null,"groupNumber":1,"groupName":null,"skuGroup":null,"subList":null,"dataJson":null,"skuMergeSign":null,"freseniusPriceId":null,"quantityAndGroupAll":null,"booleaTime":null,"spitSgin":0,"groupSpitSign":0,"sort":0,"circleArea":null,"purchaseEntryId":null,"mustInstallDate":false,"installedDate":null,"installedDateStr":null,"demandLines":null,"subLineNumber":null,"demandSubCode":null,"propertyName":null,"propertyVal":null,"propertyNote":null,"sendManualSign":0,"activityType":0,"giftSettlementMethod":null,"giftInitQuantity":null,"packageCode":null,"giftGroupQuantity":1,"siteCompanyCode":null,"hospitalOrderType":null,"isCollectionAllocation":null,"orderStatus":null,"distributionType":null,"groupCode":null,"groupProductType":null,"pSign":0,"backSign":0,"description":"","stockNumber":null,"rebate":false,"userBalance":null,"purchaseQuantity":1,"purchaseZeroProductList":[]}],"demandSubItems":null,"rebateDetail":null,"rebateAmountList":null,"productLineCode":"3021","productLineName":"费森尤斯","auditLoginName":null,"showPurchaseNo":false,"isRebate":null,"isShowReate":null,"taxRate":0.13,"rebateType":0,"paymentAmountWholeLine":396,"discountAmountWholeLine":0,"payableAmountWholeLine":396,"discountRate":0,"singleRebateAmount":null,"isRebateEdit":null,"payCertUrl":null,"rebateAmount":null,"demandCance":null,"soAdd":null,"soCance":null,"orderReturn":null,"needCustomerConfirm":false,"measuringUnit":null,"productId":null,"version":null,"mainVersion":null,"agencyConfigId":null,"confirmSign":null,"replySign":null,"agencySign":null,"editIng":null,"editIngStr":null,"jdeType":null,"isElectronicSeal":null,"contractAgreementNo":null,"alesDepartmentNo":null,"alesDepartmentName":null,"salesPersonNo":null,"salesPersonName":null,"customerNote":null,"otherNote":null,"contractAgreementCode":null,"projectName":null,"projectCode":null,"regionId":null,"regionName":null,"productLineBindSign":null,"shipVia":null,"orderSource":null,"userBalance":null,"liquidCode":null,"shipmentTypeStr":null,"specifications":"5L(AP0005158)","pageStart":null,"pageSize":null,"changeSgin":null,"yapei":2,"companyId":null,"userReceiveId2":null,"preemptConfig":null,"productSpec":null,"secondAuditSign":null,"secondAuditById":null,"secondAuditByName":null,"secondAuditTime":null,"secondAuditRemark":null,"secondAuditStatus":null,"rebateRule":"0","rebateControlSign":0,"rebateId":null,"preferenceType":null,"preferenceName":null,"disPrice":null,"lineNum":0,"auditStaySign":0,"fileList":null,"imageUrls":null,"total":null,"submitTimeStr":null,"updateTimeStr":null,"auditTimeStr":null,"acceptTime":null,"acceptTimeStr":null,"paidTime":null,"paidTimeStr":null,"erpHandingTime":null,"erpHandingTimeStr":null,"partShippingTime":null,"partShippingTimeStr":null,"allShippingTime":null,"allShippingTimeStr":null,"pushJdeTimeStr":null,"successTimeStr":null,"onlinePaySuccessTime":null,"onlinePaySuccessTimeStr":null,"bankTransactionSerial":null,"newIsTax":null,"countFormula":null,"countNumber":null,"noTaxRebateAmount":0,"isCollectionAllocation":0,"siteCompanyCode":null,"hospitalOrderType":null,"proofTime":null,"proofURL":null,"proofRemark":null,"proofSign":0,"customerCancelSign":null,"cancelRecords":null,"cancelCount":0,"updateNewTime":null,"updateNewTimeStr":null,"fsDedUseSign":null,"notice":null,"shareType":null,"singleRebateSign":null,"cf":false,"isPre":null,"showDemandAuditLineLabel":false,"orderType":null,"newDiscountRate":null,"oldOrderType":null,"oldNewDiscountRate":null,"pendding":null,"pushJdeStatusDemandSub":null,"circleGiftSign":0,"delay":null,"limitS":null,"starts":null,"ends":null,"completedS":null,"confirmDays":null,"remindS":null,"skuGroupList":null,"groupProductType":0,"purchaseId":null,"purchaseCode":null,"sdCancelTime":null,"sdTipSign":0,"receiverNote":null,"receiverPhoneNote":null,"receiverAddressNote":null,"flag":null,"sourceStr":null,"addressNoNote":null,"detailIsSpit":false,"spitSgin":null,"distributionType":null,"rebateValidity":null,"orderChangeType":null,"logoIcon":null,"detail":null,"changeBigType":null,"promotionType":null,"activityTotalAmount":null,"couponTotalAmount":null,"userReceiveId":null,"editSgin":null,"snSgin":null,"jdeOutAmount":null,"totalAllPaAmount":null,"diffShowSgin":0,"lineCodeDelete":null,"startTime":null,"endTime":null,"changeSign":null,"distributionId":null,"limitBuySign":0,"companyType":null,"afterSale":null,"csId":null,"sdStatusNodeParamList":null,"ypPromotionTotal":null,"acrossMainCode":null,"forceApprovedSign":0,"circleGiftContinueSgin":0,"customerCharge":null,"onlinePaySign":0,"recodeDemandSkuList":null,"mergeDemandSkuList":null,"inventoryNode":null,"customCode":null,"terminalSource":null,"potentialClientsId":null,"settlementStatus":null,"firstOrderAuditStatus":null,"confirmReceiptSign":null,"confirmReceiptTime":null,"afterSaleDays":null,"deliveryCompletedTime":null,"taxSign":0,"orderSplitSign":0,"demandRebateSkuList":null,"confirmTime":null,"customerPurchaseNo":null,"mustInstallDate":false,"secondAddressList":null,"splitOrMerge":null,"spitOrderSign":null,"productAmountWholeLine":396,"auditCompanyName":null,"auditCompanyNameCode":null,"edit":false,"showMoreAttribute":false,"ratio":null,"ratioFlag":false,"rebateFlags":false,"userBalancePrice":0,"allQuantity":1,"totalPriceNum":0,"maxTotalLimitPrice":0,"lastNoTaxDiscountAmount":0,"lastDiscountAmount":0}]},"id":null,"type":2,"userNo":"1026966","userName":"北京西麦克斯医疗器械有限公司"}
\ No newline at end of file
diff --git a/data/cmdc_demand_list_pc/data b/data/cmdc_demand_list_pc/data
new file mode 100644
index 0000000000000000000000000000000000000000..1a46846978dcb38f87194d5f6ebb480e5bf8ea7b
--- /dev/null
+++ b/data/cmdc_demand_list_pc/data
@@ -0,0 +1,77 @@
+# 多采商城登录信息
+"username": "GL1000086"
+"password": "Aa123456"
+
+json_headers: {
+ "Cmdc_access_token": "%s",
+ "Sourcetype": "mall"
+}
+
+
+#需求单列表接口地址
+"url1": "/order/public/ownListDemand"
+
+#测试场景:获取用户多采商城对应的需求单列表信息
+json_headers1: {
+ "Cmdc_access_token": "%s",
+ "Sourcetype": "mall"
+}
+
+"payload1": {"sellerCompanyCodes":[],"materialCode":"","productCode":"","productInfoValue":"","manufacturerList":null,"orderNum":"","paymentType":null,"preferenceType":null,"changeSign":null,"mainOrderStatus":null,"shipmentType":null,"pageStart":1,"pageSize":10}
+#预期结果
+checkDict1: {"success":true,"code":"200","message":"OK"}
+
+
+
+#需求单列表取消接口地址
+"url2": "/order/public/customerApplyCancel"
+
+#测试场景:在用户多采商城中的需求单列表进行需求单取消操作
+json_headers2: {
+ "Cmdc_access_token": "%s",
+ "Sourcetype": "mall"
+}
+#获取草稿需求单列表请求报文
+"payload20": {"sellerCompanyCodes":[],"materialCode":"","productCode":"","productInfoValue":"","manufacturerList":null,"orderNum":"","paymentType":null,"preferenceType":null,"changeSign":null,"mainOrderStatus":2,"shipmentType":null,"pageStart":1,"pageSize":10}
+"payload2": {"demandCode":"%s","remark":"取消原因测试"}
+#预期结果
+checkDict2: {"success":true,"code":"200","message":"OK","data":1,"freshToken":null}
+
+
+#需求单列表删除接口地址
+"url3": "/order/mall/deleteDraft"
+
+#测试场景:在用户多采商城中的需求单列表进行需求单删除操作
+json_headers3: {
+ "Cmdc_access_token": "%s",
+ "Sourcetype": "mall"
+}
+#获取草稿需求单列表请求报文
+"payload30": {"sellerCompanyCodes":[],"materialCode":"","productCode":"","productInfoValue":"","manufacturerList":null,"orderNum":"","paymentType":null,"preferenceType":null,"changeSign":null,"mainOrderStatus":8,"shipmentType":null,"pageStart":1,"pageSize":10}
+"payload3": {"demandParentId":"%d"}
+#预期结果
+checkDict3: {"success":true,"code":"200","message":"OK","data":null,"freshToken":null}
+
+#客户确认接受
+#客户接受确认接口
+"url4": "/order/mall/acceptDemandMain"
+"payload40": {"sellerCompanyCodes":[],"materialCode":"","productCode":"","productInfoValue":"","manufacturerList":null,"orderNum":"","paymentType":null,"preferenceType":null,"changeSign":null,"mainOrderStatus":3,"shipmentType":null,"pageStart":1,"pageSize":10}
+"payload4": {"demandParentId":"%d","demandId":"%d"}
+#预期结果
+checkDict4: {"success":true,"code":"200","message":"ok","data":null,"freshToken":null}
+
+#客户不接受确认
+#客户不接受确认接口
+"url5": "/order/mall/rejectDemandMain"
+"payload50": {"sellerCompanyCodes":[],"materialCode":"","productCode":"","productInfoValue":"","manufacturerList":null,"orderNum":"","paymentType":null,"preferenceType":null,"changeSign":null,"mainOrderStatus":3,"shipmentType":null,"pageStart":1,"pageSize":10}
+"payload5": {"demandParentId":"%d","demandId":"%d","comment":"客户不接受确认"}
+#预期结果
+checkDict5: {"success":true,"code":"200","message":"ok","data":null,"freshToken":null}
+
+#需求单创建
+"url_demand_create": "/product/public/draft/add"
+"payload_demand_create": {"productMap":{"三方南博万药业":{"datas":[{"demandId":null,"demandParentId":null,"demandParentCode":null,"demandCode":null,"customerId":null,"customerName":null,"customerCode":3333,"loginName":null,"realName":null,"addressNumber":null,"mobile":null,"productName":null,"productCode":null,"sellerCompanyName":null,"sellerCompanyCode":null,"paymentType":null,"receiveBankName":null,"receiveBankAccount":null,"paymentAmount":"100.8100","productAmount":100.81,"payableAmount":100.8123,"refundAmount":null,"cancelAmount":null,"discountAmount":0,"orderStatus":null,"refundStatus":null,"receiverName":null,"receiverContact":null,"receiverAddress":null,"remark":null,"revokedReason":null,"auditById":null,"auditByName":null,"auditTime":null,"auditRemark":null,"flhsStatus":null,"pushJdeStatus":null,"createTime":null,"updateTime":null,"submitTime":null,"pushJdeTime":null,"successTime":null,"auditStatus":null,"deleteSign":null,"firstOrderFlag":null,"demandItems":[{"demandSkuId":null,"demandId":null,"distributionId":null,"companyCode":"-88893354","demandCode":null,"demandParentId":null,"sellerCompanyId":null,"sellerCompanyName":null,"sellerCompanyCode":null,"customerCode":null,"productLineCode":"","productLineName":"","propertyStr":null,"storageType":"999","suppDist":null,"productId":111304,"productName":"南博万面罩","productCode":"10175811","productNature":"01","brandName":null,"optionStr":"100120","imageUrl":"https://pro-cmdc.oss-cn-beijing.aliyuncs.com/productFile/2022/08/23/5da58cd7-6f0a-4632-a7ef-ae44ec83cc5b.jpg","lineNumber":null,"price":100.8123,"rebateId":null,"originalPrice":null,"biddingDiscountTax":null,"salesDiscountTax":null,"quantity":1,"sumQuantity":null,"sendQuantity":null,"lackQuantity":null,"cancelQuantity":null,"cancelAmount":null,"refundQuantity":null,"refundAmount":null,"discountQuantity":null,"discountAmount":null,"subtotal":100.81,"measuringUnit":"只","auxiliaryMeasuringUnit":"LL","procurementMeasuringUnit":"LL","pricingMeasuringUnit":"LL","materialCode":"","manufacturer":"枣庄汇康医疗用品有限公司","produceRegisterNum":null,"riskRank":"003","productClassify":"6803","createTime":null,"updateTime":null,"deleteSign":null,"calCancelFlag":null,"refundFlag":null,"discountRate":100,"realPay":100.81,"promotionPrice":null,"promotionTotalPrice":0,"demandParentCode":null,"regionId":null,"regionName":null,"spitSign":null,"activityAmount":null,"couponAmount":0,"activityUnitAmount":0,"couponUnitAmount":null,"activityBasicId":null,"couponSgin":null,"couponSgin2":null,"returnQuantity":null,"returnAmount":null,"customerId":null,"prescription":null,"specifications":"100120","lineCodeDelete":null,"sdOutStorage":null,"licenseNo":null,"demandCodes":null,"areaName":"","agreementPriceId":533272,"offerPrice":null,"orderMark":null,"totalPrice":null,"productLimitBuyList":null,"giftSign":0,"giftProductCode":null,"activityCarDataVoList":null,"orderSource":null,"receiverName":null,"receiverContact":null,"receiverAddress":null,"rebateTripId":null,"allSign":null,"salesReturn":null,"nowAmount":null,"taxSign":0,"plusMinuKey":null,"rebateRule":null,"lockType":null,"lineNumberOrg":null,"changeSgin":null,"addSgin":null,"ptbfa1":null,"ptbfa2":null,"ptbfa3":null,"ptbfa4":null,"ptbfa5":null,"yapeiPriceId":null,"ypLinePromotion":null,"yapeiPrice":null,"companyId":34,"buyerCartId":null,"userReceiveIdx":null,"userReceiveIdx2":null,"limitNum":null,"productLimitBuyId":null,"alreadyBuyNum":null,"limitBuySign":0,"proposeNum":null,"takeEffectRange":null,"takeEffectTime":null,"endTime1":null,"groupId":null,"fsGroupId":null,"proposalQuantity":null,"proposalSign":0,"manufacturerUserNo":null,"manufacturerUserDesc":null,"manufacturerProductNo":null,"manufacturerProductDesc":null,"manufacturerUserId":null,"manufacturerProductId":null,"busProductCode":"","paidTime":null,"customerName":null,"paymentAmount":null,"specQuantity":null,"disQuantity":null,"fulfilledQuantity":null,"fulCancelQuantity":null,"couponId":null,"couponId2":null,"limitS":null,"starts":null,"ends":null,"userId":null,"productTax":"","taxRate":0,"demandSplitSign":"1","hospitalHopeDate":null,"uniqueKey":null,"productType":null,"activityRuleId":null,"allowanceBeginTime":null,"allowanceEndTime":null,"sign":null,"differenceActivityUserId":null,"groupNumber":null,"groupName":null,"skuGroup":null,"subList":null,"dataJson":null,"skuMergeSign":null,"freseniusPriceId":null,"quantityAndGroupAll":null,"booleaTime":null,"spitSgin":0,"groupSpitSign":0,"sort":0,"circleArea":null,"purchaseEntryId":null,"mustInstallDate":false,"installedDate":null,"installedDateStr":null,"demandLines":null,"subLineNumber":null,"demandSubCode":null,"propertyName":null,"propertyVal":null,"propertyNote":null,"sendManualSign":0,"activityType":0,"giftSettlementMethod":null,"giftInitQuantity":null,"packageCode":null,"giftGroupQuantity":null,"siteCompanyCode":null,"hospitalOrderType":null,"isCollectionAllocation":null,"orderStatus":null,"distributionType":null,"groupCode":null,"groupProductType":null,"pSign":0,"backSign":0,"description":null,"stockNumber":null,"rebate":false,"purchaseZeroProductList":[],"prePromotionPrice":null,"prepromotionTotalPrice":0,"preDiscountRate":null,"userBalance":0}],"demandSubItems":null,"rebateDetail":null,"rebateAmountList":null,"productLineCode":"","productLineName":"","auditLoginName":null,"showPurchaseNo":false,"isRebate":null,"isShowReate":null,"taxRate":0,"rebateType":0,"paymentAmountWholeLine":100.8123,"discountAmountWholeLine":0,"payableAmountWholeLine":100.8123,"discountRate":null,"singleRebateAmount":null,"isRebateEdit":null,"payCertUrl":null,"rebateAmount":null,"demandCance":null,"soAdd":null,"soCance":null,"orderReturn":null,"needCustomerConfirm":false,"measuringUnit":null,"productId":null,"version":null,"mainVersion":null,"agencyConfigId":null,"confirmSign":null,"replySign":null,"agencySign":null,"editIng":null,"editIngStr":null,"jdeType":null,"isElectronicSeal":null,"contractAgreementNo":null,"alesDepartmentNo":null,"alesDepartmentName":null,"salesPersonNo":null,"salesPersonName":null,"customerNote":null,"otherNote":null,"contractAgreementCode":null,"projectName":null,"projectCode":null,"regionId":null,"regionName":null,"productLineBindSign":null,"shipVia":null,"orderSource":null,"userBalance":null,"liquidCode":null,"shipmentTypeStr":null,"specifications":"100120","pageStart":null,"pageSize":null,"changeSgin":null,"yapei":2,"companyId":34,"preemptConfig":null,"productSpec":null,"secondAuditSign":null,"secondAuditById":null,"secondAuditByName":null,"secondAuditTime":null,"secondAuditRemark":null,"secondAuditStatus":null,"rebateRule":null,"rebateControlSign":0,"rebateId":null,"preferenceType":null,"preferenceName":null,"disPrice":null,"lineNum":0,"auditStaySign":0,"fileList":null,"imageUrls":null,"total":null,"submitTimeStr":null,"updateTimeStr":null,"auditTimeStr":null,"acceptTime":null,"acceptTimeStr":null,"paidTime":null,"paidTimeStr":null,"erpHandingTime":null,"erpHandingTimeStr":null,"partShippingTime":null,"partShippingTimeStr":null,"allShippingTime":null,"allShippingTimeStr":null,"pushJdeTimeStr":null,"successTimeStr":null,"onlinePaySuccessTime":null,"onlinePaySuccessTimeStr":null,"bankTransactionSerial":null,"newIsTax":null,"countFormula":null,"countNumber":null,"noTaxRebateAmount":0,"isCollectionAllocation":0,"siteCompanyCode":null,"hospitalOrderType":null,"proofTime":null,"proofURL":null,"proofRemark":null,"proofSign":0,"customerCancelSign":null,"cancelRecords":null,"cancelCount":0,"updateNewTime":null,"updateNewTimeStr":null,"fsDedUseSign":null,"notice":null,"shareType":null,"singleRebateSign":null,"cf":false,"isPre":null,"showDemandAuditLineLabel":false,"orderType":null,"newDiscountRate":null,"oldOrderType":null,"oldNewDiscountRate":null,"pendding":null,"pushJdeStatusDemandSub":null,"circleGiftSign":0,"delay":null,"limitS":null,"starts":null,"ends":null,"completedS":null,"confirmDays":null,"remindS":null,"skuGroupList":null,"groupProductType":0,"purchaseId":null,"purchaseCode":null,"sdCancelTime":null,"sdTipSign":0,"receiverNote":null,"receiverPhoneNote":null,"receiverAddressNote":null,"flag":null,"sourceStr":null,"addressNoNote":null,"detailIsSpit":false,"spitSgin":null,"distributionType":null,"rebateValidity":null,"orderChangeType":null,"logoIcon":null,"detail":null,"changeBigType":null,"promotionType":1,"activityTotalAmount":0,"couponTotalAmount":0,"userReceiveId":null,"editSgin":null,"snSgin":null,"jdeOutAmount":null,"totalAllPaAmount":null,"diffShowSgin":0,"lineCodeDelete":null,"startTime":null,"endTime":null,"changeSign":null,"distributionId":null,"limitBuySign":0,"companyType":"3","afterSale":null,"csId":null,"sdStatusNodeParamList":null,"ypPromotionTotal":null,"acrossMainCode":null,"forceApprovedSign":0,"circleGiftContinueSgin":0,"customerCharge":null,"onlinePaySign":0,"recodeDemandSkuList":null,"mergeDemandSkuList":null,"inventoryNode":null,"customCode":null,"terminalSource":null,"potentialClientsId":null,"settlementStatus":null,"firstOrderAuditStatus":null,"confirmReceiptSign":null,"confirmReceiptTime":null,"afterSaleDays":null,"deliveryCompletedTime":null,"taxSign":0,"orderSplitSign":0,"demandRebateSkuList":null,"confirmTime":null,"customerPurchaseNo":null,"mustInstallDate":false,"secondAddressList":null,"splitOrMerge":null,"spitOrderSign":null,"productAmountWholeLine":100.8123,"auditCompanyName":null,"auditCompanyNameCode":null,"edit":false,"ratio":null,"showMoreAttribute":false,"lastNoTaxDiscountAmount":0,"lastDiscountAmount":0,"settementQuantity":1,"userBalancePrice":0,"isEdit":true,"discountRateOne":100,"_rebateType":false}],"addressConfig":2,"openPreTaxAmount":0,"promotionOrRebate":1,"promotionType":1,"showChangePromotionOrRebate":false,"couponTotalAmount":0,"activityTotalAmount":0,"totalQuantity":1,"totalPrice":100.81,"discountAmount":0,"demandItems":[{"demandSkuId":null,"demandId":null,"distributionId":null,"companyCode":"-88893354","demandCode":null,"demandParentId":null,"sellerCompanyId":null,"sellerCompanyName":null,"sellerCompanyCode":null,"customerCode":null,"productLineCode":"","productLineName":"","propertyStr":null,"storageType":"999","suppDist":null,"productId":111304,"productName":"南博万面罩","productCode":"10175811","productNature":"01","brandName":null,"optionStr":"100120","imageUrl":"https://pro-cmdc.oss-cn-beijing.aliyuncs.com/productFile/2022/08/23/5da58cd7-6f0a-4632-a7ef-ae44ec83cc5b.jpg","lineNumber":null,"price":100.8123,"rebateId":null,"originalPrice":null,"biddingDiscountTax":null,"salesDiscountTax":null,"quantity":1,"sumQuantity":null,"sendQuantity":null,"lackQuantity":null,"cancelQuantity":null,"cancelAmount":null,"refundQuantity":null,"refundAmount":null,"discountQuantity":null,"discountAmount":null,"subtotal":100.81,"measuringUnit":"只","auxiliaryMeasuringUnit":"LL","procurementMeasuringUnit":"LL","pricingMeasuringUnit":"LL","materialCode":"","manufacturer":"枣庄汇康医疗用品有限公司","produceRegisterNum":null,"riskRank":"003","productClassify":"6803","createTime":null,"updateTime":null,"deleteSign":null,"calCancelFlag":null,"refundFlag":null,"discountRate":100,"realPay":100.81,"promotionPrice":null,"promotionTotalPrice":0,"demandParentCode":null,"regionId":null,"regionName":null,"spitSign":null,"activityAmount":null,"couponAmount":0,"activityUnitAmount":0,"couponUnitAmount":null,"activityBasicId":null,"couponSgin":null,"couponSgin2":null,"returnQuantity":null,"returnAmount":null,"customerId":null,"prescription":null,"specifications":"100120","lineCodeDelete":null,"sdOutStorage":null,"licenseNo":null,"demandCodes":null,"areaName":"","agreementPriceId":533272,"offerPrice":null,"orderMark":null,"totalPrice":null,"productLimitBuyList":null,"giftSign":0,"giftProductCode":null,"activityCarDataVoList":null,"orderSource":null,"receiverName":null,"receiverContact":null,"receiverAddress":null,"rebateTripId":null,"allSign":null,"salesReturn":null,"nowAmount":null,"taxSign":0,"plusMinuKey":null,"rebateRule":null,"lockType":null,"lineNumberOrg":null,"changeSgin":null,"addSgin":null,"ptbfa1":null,"ptbfa2":null,"ptbfa3":null,"ptbfa4":null,"ptbfa5":null,"yapeiPriceId":null,"ypLinePromotion":null,"yapeiPrice":null,"companyId":34,"buyerCartId":null,"userReceiveIdx":null,"userReceiveIdx2":null,"limitNum":null,"productLimitBuyId":null,"alreadyBuyNum":null,"limitBuySign":0,"proposeNum":null,"takeEffectRange":null,"takeEffectTime":null,"endTime1":null,"groupId":null,"fsGroupId":null,"proposalQuantity":null,"proposalSign":0,"manufacturerUserNo":null,"manufacturerUserDesc":null,"manufacturerProductNo":null,"manufacturerProductDesc":null,"manufacturerUserId":null,"manufacturerProductId":null,"busProductCode":"","paidTime":null,"customerName":null,"paymentAmount":null,"specQuantity":null,"disQuantity":null,"fulfilledQuantity":null,"fulCancelQuantity":null,"couponId":null,"couponId2":null,"limitS":null,"starts":null,"ends":null,"userId":null,"productTax":"","taxRate":0,"demandSplitSign":"1","hospitalHopeDate":null,"uniqueKey":null,"productType":null,"activityRuleId":null,"allowanceBeginTime":null,"allowanceEndTime":null,"sign":null,"differenceActivityUserId":null,"groupNumber":null,"groupName":null,"skuGroup":null,"subList":null,"dataJson":null,"skuMergeSign":null,"freseniusPriceId":null,"quantityAndGroupAll":null,"booleaTime":null,"spitSgin":0,"groupSpitSign":0,"sort":0,"circleArea":null,"purchaseEntryId":null,"mustInstallDate":false,"installedDate":null,"installedDateStr":null,"demandLines":null,"subLineNumber":null,"demandSubCode":null,"propertyName":null,"propertyVal":null,"propertyNote":null,"sendManualSign":0,"activityType":0,"giftSettlementMethod":null,"giftInitQuantity":null,"packageCode":null,"giftGroupQuantity":null,"siteCompanyCode":null,"hospitalOrderType":null,"isCollectionAllocation":null,"orderStatus":null,"distributionType":null,"groupCode":null,"groupProductType":null,"pSign":0,"backSign":0,"description":null,"stockNumber":null,"rebate":false,"purchaseZeroProductList":[],"prePromotionPrice":null,"prepromotionTotalPrice":0,"preDiscountRate":null,"userBalance":0}],"productPrice":"100.8100","fileList":[],"showInfo":false,"pageStart":1,"pageSize":5,"receiveInfo":[],"defaultBankInfo":{"accountId":18,"companyId":34,"companyName":"南博万药业","registeredAddress":"武汉市高新大道","bank":"中国银行","accountName":"中国银行东湖高新区支行","accountNumber":"32423423623342342342","disableSign":0,"deleteSign":0,"createTime":"2022-09-23 17:26:05","updateTime":"2022-11-04 11:06:01","createBy":88893354,"updateBy":88893354,"realName":"三方南博万药业"},"addressList":[{"addressId":4656,"addressNo":0,"addressName":null,"provinceCode":null,"userId":null,"companyId":34,"receiverName":"萧峰","address":"大师傅士大夫撒旦","isDefault":0,"type":5,"postcode":null,"mobile":"18888888888","updateDate":null,"updateTime":0,"flag":null,"deleteSign":null,"province":null,"city":null,"area":null,"dateTime":null,"provinceStr":null,"cityStr":null,"areaStr":null,"isJde":0,"cityList":null,"areaList":null}],"selecteAddresId":4656,"receiverNote":"萧峰","receiverPhoneNote":"18888888888","receiverAddressNote":"大师傅士大夫撒旦","addressNoNote":0,"province":null,"city":null,"cityList":null,"area":null,"areaList":null,"paymentAmount":"100.8100","taxRate":null,"demands":[{"demandId":null,"demandParentId":null,"demandParentCode":null,"demandCode":null,"customerId":null,"customerName":null,"customerCode":3333,"loginName":null,"realName":null,"addressNumber":null,"mobile":null,"productName":null,"productCode":null,"sellerCompanyName":null,"sellerCompanyCode":null,"paymentType":null,"receiveBankName":null,"receiveBankAccount":null,"paymentAmount":"100.8100","productAmount":100.81,"payableAmount":100.8123,"refundAmount":null,"cancelAmount":null,"discountAmount":0,"orderStatus":null,"refundStatus":null,"receiverName":null,"receiverContact":null,"receiverAddress":null,"remark":null,"revokedReason":null,"auditById":null,"auditByName":null,"auditTime":null,"auditRemark":null,"flhsStatus":null,"pushJdeStatus":null,"createTime":null,"updateTime":null,"submitTime":null,"pushJdeTime":null,"successTime":null,"auditStatus":null,"deleteSign":null,"firstOrderFlag":null,"demandItems":[{"demandSkuId":null,"demandId":null,"distributionId":null,"companyCode":"-88893354","demandCode":null,"demandParentId":null,"sellerCompanyId":null,"sellerCompanyName":null,"sellerCompanyCode":null,"customerCode":null,"productLineCode":"","productLineName":"","propertyStr":null,"storageType":"999","suppDist":null,"productId":111304,"productName":"南博万面罩","productCode":"10175811","productNature":"01","brandName":null,"optionStr":"100120","imageUrl":"https://pro-cmdc.oss-cn-beijing.aliyuncs.com/productFile/2022/08/23/5da58cd7-6f0a-4632-a7ef-ae44ec83cc5b.jpg","lineNumber":null,"price":100.8123,"rebateId":null,"originalPrice":null,"biddingDiscountTax":null,"salesDiscountTax":null,"quantity":1,"sumQuantity":null,"sendQuantity":null,"lackQuantity":null,"cancelQuantity":null,"cancelAmount":null,"refundQuantity":null,"refundAmount":null,"discountQuantity":null,"discountAmount":null,"subtotal":100.81,"measuringUnit":"只","auxiliaryMeasuringUnit":"LL","procurementMeasuringUnit":"LL","pricingMeasuringUnit":"LL","materialCode":"","manufacturer":"枣庄汇康医疗用品有限公司","produceRegisterNum":null,"riskRank":"003","productClassify":"6803","createTime":null,"updateTime":null,"deleteSign":null,"calCancelFlag":null,"refundFlag":null,"discountRate":100,"realPay":100.81,"promotionPrice":null,"promotionTotalPrice":0,"demandParentCode":null,"regionId":null,"regionName":null,"spitSign":null,"activityAmount":null,"couponAmount":0,"activityUnitAmount":0,"couponUnitAmount":null,"activityBasicId":null,"couponSgin":null,"couponSgin2":null,"returnQuantity":null,"returnAmount":null,"customerId":null,"prescription":null,"specifications":"100120","lineCodeDelete":null,"sdOutStorage":null,"licenseNo":null,"demandCodes":null,"areaName":"","agreementPriceId":533272,"offerPrice":null,"orderMark":null,"totalPrice":null,"productLimitBuyList":null,"giftSign":0,"giftProductCode":null,"activityCarDataVoList":null,"orderSource":null,"receiverName":null,"receiverContact":null,"receiverAddress":null,"rebateTripId":null,"allSign":null,"salesReturn":null,"nowAmount":null,"taxSign":0,"plusMinuKey":null,"rebateRule":null,"lockType":null,"lineNumberOrg":null,"changeSgin":null,"addSgin":null,"ptbfa1":null,"ptbfa2":null,"ptbfa3":null,"ptbfa4":null,"ptbfa5":null,"yapeiPriceId":null,"ypLinePromotion":null,"yapeiPrice":null,"companyId":34,"buyerCartId":null,"userReceiveIdx":null,"userReceiveIdx2":null,"limitNum":null,"productLimitBuyId":null,"alreadyBuyNum":null,"limitBuySign":0,"proposeNum":null,"takeEffectRange":null,"takeEffectTime":null,"endTime1":null,"groupId":null,"fsGroupId":null,"proposalQuantity":null,"proposalSign":0,"manufacturerUserNo":null,"manufacturerUserDesc":null,"manufacturerProductNo":null,"manufacturerProductDesc":null,"manufacturerUserId":null,"manufacturerProductId":null,"busProductCode":"","paidTime":null,"customerName":null,"paymentAmount":null,"specQuantity":null,"disQuantity":null,"fulfilledQuantity":null,"fulCancelQuantity":null,"couponId":null,"couponId2":null,"limitS":null,"starts":null,"ends":null,"userId":null,"productTax":"","taxRate":0,"demandSplitSign":"1","hospitalHopeDate":null,"uniqueKey":null,"productType":null,"activityRuleId":null,"allowanceBeginTime":null,"allowanceEndTime":null,"sign":null,"differenceActivityUserId":null,"groupNumber":null,"groupName":null,"skuGroup":null,"subList":null,"dataJson":null,"skuMergeSign":null,"freseniusPriceId":null,"quantityAndGroupAll":null,"booleaTime":null,"spitSgin":0,"groupSpitSign":0,"sort":0,"circleArea":null,"purchaseEntryId":null,"mustInstallDate":false,"installedDate":null,"installedDateStr":null,"demandLines":null,"subLineNumber":null,"demandSubCode":null,"propertyName":null,"propertyVal":null,"propertyNote":null,"sendManualSign":0,"activityType":0,"giftSettlementMethod":null,"giftInitQuantity":null,"packageCode":null,"giftGroupQuantity":null,"siteCompanyCode":null,"hospitalOrderType":null,"isCollectionAllocation":null,"orderStatus":null,"distributionType":null,"groupCode":null,"groupProductType":null,"pSign":0,"backSign":0,"description":null,"stockNumber":null,"rebate":false,"purchaseZeroProductList":[],"prePromotionPrice":null,"prepromotionTotalPrice":0,"preDiscountRate":null,"userBalance":0,"orderType":null}],"demandSubItems":null,"rebateDetail":null,"rebateAmountList":null,"productLineCode":"","productLineName":"","auditLoginName":null,"showPurchaseNo":false,"isRebate":null,"isShowReate":null,"taxRate":0,"rebateType":0,"paymentAmountWholeLine":100.8123,"discountAmountWholeLine":0,"payableAmountWholeLine":100.8123,"discountRate":null,"singleRebateAmount":null,"isRebateEdit":null,"payCertUrl":null,"rebateAmount":null,"demandCance":null,"soAdd":null,"soCance":null,"orderReturn":null,"needCustomerConfirm":false,"measuringUnit":null,"productId":null,"version":null,"mainVersion":null,"agencyConfigId":null,"confirmSign":null,"replySign":null,"agencySign":null,"editIng":null,"editIngStr":null,"jdeType":null,"isElectronicSeal":null,"contractAgreementNo":null,"alesDepartmentNo":null,"alesDepartmentName":null,"salesPersonNo":null,"salesPersonName":null,"customerNote":null,"otherNote":null,"contractAgreementCode":null,"projectName":null,"projectCode":null,"regionId":null,"regionName":null,"productLineBindSign":null,"shipVia":null,"orderSource":null,"userBalance":null,"liquidCode":null,"shipmentTypeStr":null,"specifications":"100120","pageStart":null,"pageSize":null,"changeSgin":null,"yapei":2,"companyId":34,"preemptConfig":null,"productSpec":null,"secondAuditSign":null,"secondAuditById":null,"secondAuditByName":null,"secondAuditTime":null,"secondAuditRemark":null,"secondAuditStatus":null,"rebateRule":null,"rebateControlSign":0,"rebateId":null,"preferenceType":null,"preferenceName":null,"disPrice":null,"lineNum":0,"auditStaySign":0,"fileList":null,"imageUrls":null,"total":null,"submitTimeStr":null,"updateTimeStr":null,"auditTimeStr":null,"acceptTime":null,"acceptTimeStr":null,"paidTime":null,"paidTimeStr":null,"erpHandingTime":null,"erpHandingTimeStr":null,"partShippingTime":null,"partShippingTimeStr":null,"allShippingTime":null,"allShippingTimeStr":null,"pushJdeTimeStr":null,"successTimeStr":null,"onlinePaySuccessTime":null,"onlinePaySuccessTimeStr":null,"bankTransactionSerial":null,"newIsTax":null,"countFormula":null,"countNumber":null,"noTaxRebateAmount":0,"isCollectionAllocation":0,"siteCompanyCode":null,"hospitalOrderType":null,"proofTime":null,"proofURL":null,"proofRemark":null,"proofSign":0,"customerCancelSign":null,"cancelRecords":null,"cancelCount":0,"updateNewTime":null,"updateNewTimeStr":null,"fsDedUseSign":null,"notice":null,"shareType":null,"singleRebateSign":null,"cf":false,"isPre":null,"showDemandAuditLineLabel":false,"orderType":null,"newDiscountRate":null,"oldOrderType":null,"oldNewDiscountRate":null,"pendding":null,"pushJdeStatusDemandSub":null,"circleGiftSign":0,"delay":null,"limitS":null,"starts":null,"ends":null,"completedS":null,"confirmDays":null,"remindS":null,"skuGroupList":null,"groupProductType":0,"purchaseId":null,"purchaseCode":null,"sdCancelTime":null,"sdTipSign":0,"receiverNote":null,"receiverPhoneNote":null,"receiverAddressNote":null,"flag":null,"sourceStr":null,"addressNoNote":null,"detailIsSpit":false,"spitSgin":null,"distributionType":null,"rebateValidity":null,"orderChangeType":null,"logoIcon":null,"detail":null,"changeBigType":null,"promotionType":1,"activityTotalAmount":0,"couponTotalAmount":0,"userReceiveId":null,"editSgin":null,"snSgin":null,"jdeOutAmount":null,"totalAllPaAmount":null,"diffShowSgin":0,"lineCodeDelete":null,"startTime":null,"endTime":null,"changeSign":null,"distributionId":null,"limitBuySign":0,"companyType":"3","afterSale":null,"csId":null,"sdStatusNodeParamList":null,"ypPromotionTotal":null,"acrossMainCode":null,"forceApprovedSign":0,"circleGiftContinueSgin":0,"customerCharge":null,"onlinePaySign":0,"recodeDemandSkuList":null,"mergeDemandSkuList":null,"inventoryNode":null,"customCode":null,"terminalSource":null,"potentialClientsId":null,"settlementStatus":null,"firstOrderAuditStatus":null,"confirmReceiptSign":null,"confirmReceiptTime":null,"afterSaleDays":null,"deliveryCompletedTime":null,"taxSign":0,"orderSplitSign":0,"demandRebateSkuList":null,"confirmTime":null,"customerPurchaseNo":null,"mustInstallDate":false,"secondAddressList":null,"splitOrMerge":null,"spitOrderSign":null,"productAmountWholeLine":100.8123,"auditCompanyName":null,"auditCompanyNameCode":null,"edit":false,"ratio":null,"showMoreAttribute":false,"lastNoTaxDiscountAmount":0,"lastDiscountAmount":0,"settementQuantity":1,"userBalancePrice":0,"isEdit":true,"discountRateOne":100,"_rebateType":false}],"orderStatus":102,"userReceiveId":null,"userReceiveId2":null,"productAmount":100.81,"paymentType":0,"accountId":18,"receiveBankName":"中国银行东湖高新区支行","receiveBankAccount":"32423423623342342342","buyerCartIds":[""],"sellerCompanyCode":"-88893354","companyId":34}},"type":4,"userNo":null,"userName":"GL1000086"}
+
+
+
+
diff --git "a/data/cmdc_files/\345\245\227\345\214\205\345\225\206\345\223\201\346\211\271\351\207\217\347\273\264\346\212\244\346\250\241\346\235\277.xlsx" "b/data/cmdc_files/\345\245\227\345\214\205\345\225\206\345\223\201\346\211\271\351\207\217\347\273\264\346\212\244\346\250\241\346\235\277.xlsx"
new file mode 100644
index 0000000000000000000000000000000000000000..b9aed50ebd9038e47d7c3c3bf3e2bd828ef20e0a
Binary files /dev/null and "b/data/cmdc_files/\345\245\227\345\214\205\345\225\206\345\223\201\346\211\271\351\207\217\347\273\264\346\212\244\346\250\241\346\235\277.xlsx" differ
diff --git "a/data/cmdc_files/\345\245\227\345\214\205\345\225\206\345\223\201\346\211\271\351\207\217\347\273\264\346\212\244\346\250\241\346\235\277\345\245\227\345\214\205\345\225\206\345\223\201\347\256\241\347\220\206.xlsx" "b/data/cmdc_files/\345\245\227\345\214\205\345\225\206\345\223\201\346\211\271\351\207\217\347\273\264\346\212\244\346\250\241\346\235\277\345\245\227\345\214\205\345\225\206\345\223\201\347\256\241\347\220\206.xlsx"
new file mode 100644
index 0000000000000000000000000000000000000000..d9ec15a09a6a374e4b0f7567662366c83f72821a
Binary files /dev/null and "b/data/cmdc_files/\345\245\227\345\214\205\345\225\206\345\223\201\346\211\271\351\207\217\347\273\264\346\212\244\346\250\241\346\235\277\345\245\227\345\214\205\345\225\206\345\223\201\347\256\241\347\220\206.xlsx" differ
diff --git "a/data/cmdc_files/\345\245\227\345\214\205\346\214\211\346\235\241\344\273\266\345\201\234\347\224\250.xlsx" "b/data/cmdc_files/\345\245\227\345\214\205\346\214\211\346\235\241\344\273\266\345\201\234\347\224\250.xlsx"
new file mode 100644
index 0000000000000000000000000000000000000000..e5bb955a45e03fd5900f134c594401c794862c8c
Binary files /dev/null and "b/data/cmdc_files/\345\245\227\345\214\205\346\214\211\346\235\241\344\273\266\345\201\234\347\224\250.xlsx" differ
diff --git "a/data/cmdc_files/\345\245\227\345\214\205\346\214\211\346\235\241\344\273\266\345\210\240\351\231\244.xlsx" "b/data/cmdc_files/\345\245\227\345\214\205\346\214\211\346\235\241\344\273\266\345\210\240\351\231\244.xlsx"
new file mode 100644
index 0000000000000000000000000000000000000000..20f7768eb3c050d58a66cdecf47bb6e9cf3014b8
Binary files /dev/null and "b/data/cmdc_files/\345\245\227\345\214\205\346\214\211\346\235\241\344\273\266\345\210\240\351\231\244.xlsx" differ
diff --git "a/data/cmdc_files/\345\245\227\345\214\205\346\214\211\346\235\241\344\273\266\345\220\257\347\224\250.xlsx" "b/data/cmdc_files/\345\245\227\345\214\205\346\214\211\346\235\241\344\273\266\345\220\257\347\224\250.xlsx"
new file mode 100644
index 0000000000000000000000000000000000000000..d3c06c7a063c3835af537d6588a044ff3c744da9
Binary files /dev/null and "b/data/cmdc_files/\345\245\227\345\214\205\346\214\211\346\235\241\344\273\266\345\220\257\347\224\250.xlsx" differ
diff --git "a/data/cmdc_files/\345\245\227\345\214\205\346\255\243\344\273\267\346\211\271\351\207\217\345\257\274\345\205\245\346\250\241\346\235\277.xlsx" "b/data/cmdc_files/\345\245\227\345\214\205\346\255\243\344\273\267\346\211\271\351\207\217\345\257\274\345\205\245\346\250\241\346\235\277.xlsx"
new file mode 100644
index 0000000000000000000000000000000000000000..d1c5e3d1a96fb8701d221956dd1042401d377fa4
Binary files /dev/null and "b/data/cmdc_files/\345\245\227\345\214\205\346\255\243\344\273\267\346\211\271\351\207\217\345\257\274\345\205\245\346\250\241\346\235\277.xlsx" differ
diff --git "a/data/cmdc_files/\346\214\211\346\235\241\344\273\266\345\201\234\347\224\250\345\215\225\345\223\201\344\270\216\345\256\242\346\210\267\345\205\263\347\263\273.xlsx" "b/data/cmdc_files/\346\214\211\346\235\241\344\273\266\345\201\234\347\224\250\345\215\225\345\223\201\344\270\216\345\256\242\346\210\267\345\205\263\347\263\273.xlsx"
new file mode 100644
index 0000000000000000000000000000000000000000..533c1b66cde3095919afbdc4d7221f51031a1965
Binary files /dev/null and "b/data/cmdc_files/\346\214\211\346\235\241\344\273\266\345\201\234\347\224\250\345\215\225\345\223\201\344\270\216\345\256\242\346\210\267\345\205\263\347\263\273.xlsx" differ
diff --git "a/data/cmdc_files/\346\214\211\346\235\241\344\273\266\345\210\240\351\231\244\346\255\243\344\273\267\345\245\227\345\214\205.xlsx" "b/data/cmdc_files/\346\214\211\346\235\241\344\273\266\345\210\240\351\231\244\346\255\243\344\273\267\345\245\227\345\214\205.xlsx"
new file mode 100644
index 0000000000000000000000000000000000000000..158dbe1f411158c276fdcda3007b454b6c9066b9
Binary files /dev/null and "b/data/cmdc_files/\346\214\211\346\235\241\344\273\266\345\210\240\351\231\244\346\255\243\344\273\267\345\245\227\345\214\205.xlsx" differ
diff --git "a/data/cmdc_files/\346\214\211\346\235\241\344\273\266\345\220\257\347\224\250\345\215\225\345\223\201\344\270\216\345\256\242\346\210\267\345\205\263\347\263\273.xlsx" "b/data/cmdc_files/\346\214\211\346\235\241\344\273\266\345\220\257\347\224\250\345\215\225\345\223\201\344\270\216\345\256\242\346\210\267\345\205\263\347\263\273.xlsx"
new file mode 100644
index 0000000000000000000000000000000000000000..6cfd9ca796e16089d32fda1008497dd5ecf4ba16
Binary files /dev/null and "b/data/cmdc_files/\346\214\211\346\235\241\344\273\266\345\220\257\347\224\250\345\215\225\345\223\201\344\270\216\345\256\242\346\210\267\345\205\263\347\263\273.xlsx" differ
diff --git a/data/cmdc_frequent_purchase/data b/data/cmdc_frequent_purchase/data
new file mode 100644
index 0000000000000000000000000000000000000000..b307cca8c3eaaeb1250d3e9b554dca7efba7a74a
--- /dev/null
+++ b/data/cmdc_frequent_purchase/data
@@ -0,0 +1,155 @@
+# 多采商城登录信息
+"username": "BJ0621"
+"password": "Aa123456"
+#后台运营管理系统登录信息
+"username1": "admin"
+"password1": "Aa123456"
+
+json_headers: {
+ "Content-Type": "application/json",
+ "Cmdc_access_token": "%s"
+}
+
+
+#常购清单列表新增商品接口地址
+"url1": "/product/mall/addFrequentPurchase"
+
+
+json_headers1: {
+"Content-Type": "application/json",
+ "Cmdc_access_token": "%s",
+ "Sourcetype": "mall"
+}
+
+#测试场景:新增商品至用户的常购清单列表
+#查询已上架商品列表接口地址
+"url10": "/product/mall/queryProductInfoByPage"
+#查询已上架商品列表请求报文
+"payload10": {"isFbList":0,"filialeCode":"00111","productName":null,"productCode":null,"specifications":null,"materialCode":null,"manufacturer":null,"lineName":null,"riskRank":null,"isRelease":"1","isExistImage":null,"jdeStatus":"P","isGift":null,"description":null,"tbsj":[],"pageNum":1,"pageSize":8,"total":3,"firstQuery":true,"flag":true,"preInvalidStatus":null,"isControlSales":"0","startTime":null,"endTime":null,"status":101}
+#添加商品至购物车报文
+"payload1": {"currentCompanyId":3,"productId":"%s","quantity":1,"agreementPriceId":0,"price":"%s"}
+#预期结果
+checkDict1: {"success":true,"code":"200","message":"OK","data":"ok"}
+
+
+#测试场景:新增不存在的商品至用户的常购清单列表
+json_headers4: {
+ "Cmdc_access_token": "%s",
+ "Sourcetype": "mall"
+}
+
+"payload400": {"currentCompanyId":null,"productId":"%d","quantity":1,"agreementPriceId":0,"price":68.88}
+#预期结果
+checkDict400: {"success":false,"code":"1078","message":"该商品不存在,加入购物车失败","data":null,"freshToken":null}
+
+
+
+
+#获取用户常购清单列表接口地址
+"url2": "/product/mall/queryTotalFrequentPurchaseList"
+
+#测试场景:获取用户常购清单列表
+json_headers2: {
+ "Cmdc_access_token": "%s",
+ "Sourcetype": "mall"
+}
+
+"payload2": {"productName":"","materialCode":"","manufacturer":"","licenseCode":"","timeSortStatus":0,"pageSize":100,"pageStart":1}
+#预期结果
+checkDict2: {"success":true,"code":"200","message":"OK"}
+
+
+
+#常购清单商品删除接口地址
+"url3": "/product/mall/removeFrequentPurchase"
+
+#测试场景:从用户常购清单列表删除已添加的商品
+json_headers3: {
+ "Cmdc_access_token": "%s",
+ "Sourcetype": "mall"
+}
+
+"payload3": {"frequentPurchaseIdList":["%s"]}
+#预期结果
+checkDict3: {"success":true,"code":"200","message":"OK","data":"ok"}
+
+
+#测试场景:新增已失效商品至用户的常购清单列表
+#查询已上架商品列表接口地址
+"url40": "/product/mall/queryProductByJdeStatus"
+#查询已失效商品列表请求报文
+"payload40": {"isFbList":0,"filialeCode":"00102","productName":null,"productCode":null,"specifications":null,"materialCode":null,"manufacturer":null,"lineName":null,"riskRank":null,"isRelease":null,"isExistImage":null,"jdeStatus":null,"isGift":null,"description":null,"tbsj":[],"pageNum":1,"pageSize":8,"total":6,"firstQuery":true,"flag":true,"preInvalidStatus":null,"isControlSales":"0","startTime":null,"endTime":null}
+#添加已失效商品至购物车报文
+"payload4": {"currentCompanyId":null,"productId":"%d","quantity":1,"agreementPriceId":0,"price":"%d"}
+#预期结果
+checkDict4: {'success': False, 'code': 'addFrequentPurchaseFail', 'message': '商品为失效状态,不可加入常购清单', 'data': None, 'freshToken': None}
+
+
+#测试场景:新增控销商品至用户的常购清单列表
+#查询控销商品列表接口地址
+"url50": "/product/mall/queryProductInfoByPage"
+#查询控销商品列表请求报文
+"payload50": {"isFbList":0,"filialeCode":"00102","productName":null,"productCode":null,"specifications":null,"materialCode":null,"manufacturer":null,"lineName":null,"riskRank":null,"isRelease":"1","isExistImage":null,"jdeStatus":"P","isGift":"0","description":null,"tbsj":[],"pageNum":1,"pageSize":8,"total":115,"firstQuery":true,"flag":true,"preInvalidStatus":null,"isControlSales":"1","startTime":null,"endTime":null,"status":101}
+#添加控销商品至购物车报文
+"payload5": {"currentCompanyId":null,"productId":"%d","quantity":1,"agreementPriceId":0,"price":"%d"}
+#预期结果
+checkDict5: {'success': False, 'code': 'addFrequentPurchaseFail', 'message': '商品为控销状态,不可加入常购清单', 'data': None, 'freshToken': None}
+
+
+#测试场景:新增赠品_控销_商品至用户的常购清单列表
+#查询赠品_控销_商品列表接口地址
+"url60": "/product/mall/queryProductInfoByPage"
+#查询赠品_控销_商品列表请求报文
+"payload60": {"isFbList":0,"filialeCode":null,"productName":null,"productCode":null,"specifications":null,"materialCode":null,"manufacturer":null,"lineName":"","riskRank":null,"isRelease":"1","isExistImage":null,"jdeStatus":"P","isGift":"1","description":null,"tbsj":[],"pageNum":1,"pageSize":8,"total":6,"firstQuery":true,"flag":true,"preInvalidStatus":null,"isControlSales":"1","sdOutStorage":"","startTime":null,"endTime":null,"status":101}
+#添加赠品_控销_商品至购物车报文
+"payload6": {"currentCompanyId":null,"productId":"%d","quantity":1,"agreementPriceId":0,"price":"%d"}
+#预期结果
+checkDict6: {'success': False, 'code': 'addFrequentPurchaseFail', 'message': '商品为控销状态,不可加入常购清单', 'data': None, 'freshToken': None}
+
+
+#测试场景:新增赠品至用户的常购清单列表
+#查询赠品列表接口地址
+"url70": "/product/mall/queryProductInfoByPage"
+#查询赠品列表请求报文
+"payload70": {"isFbList":0,"filialeCode":"00102","productName":null,"productCode":null,"specifications":null,"materialCode":null,"manufacturer":null,"lineName":null,"riskRank":null,"isRelease":"1","isExistImage":null,"jdeStatus":"P","isGift":"1","description":null,"tbsj":[],"pageNum":1,"pageSize":8,"total":11,"firstQuery":true,"flag":true,"preInvalidStatus":null,"isControlSales":"0","startTime":null,"endTime":null,"status":101}
+#添加赠品至购物车报文
+"payload7": {"currentCompanyId":null,"productId":"%d","quantity":1,"agreementPriceId":0,"price":"%d"}
+#预期结果
+checkDict7: {"success":true,"code":"200","message":"OK","data":"ok"}
+
+
+#测试场景:新增JDE已停用的商品至用户的常购清单列表
+#查询JDE已停用的商品列表接口地址
+"url80": "/product/mall/queryProductInfoByPage"
+#查询JDE已停用的商品列表请求报文
+"payload80": {"isFbList":0,"filialeCode":null,"productName":null,"productCode":null,"specifications":null,"materialCode":null,"manufacturer":null,"lineName":null,"riskRank":null,"isRelease":null,"isExistImage":null,"jdeStatus":"O","isGift":null,"description":null,"tbsj":[],"pageNum":1,"pageSize":8,"total":121,"firstQuery":true,"flag":true,"preInvalidStatus":null,"isControlSales":"","startTime":null,"endTime":null,"status":101}
+#添加JDE已停用的商品至购物车报文
+"payload8": {"currentCompanyId":null,"productId":"%d","quantity":1,"agreementPriceId":0,"price":"%d"}
+#预期结果
+checkDict8: {'success': False, 'code': 'addFrequentPurchaseFail', 'message': '商品为失效状态,不可加入常购清单', 'data': None, 'freshToken': None}
+
+
+
+#新增跨站点商品至常购清单列表
+"payload90": {"currentCompanyId":3,"productId":23400,"quantity":1,"agreementPriceId":0,"price":1260,"filialeCode":"00103"}
+"payload91": {"currentCompanyId":3,"productId":"23400","quantity":1,"agreementPriceId":0,"price":1260}
+#商品查询
+#查询站点国药集团河南省医疗器械有限公司商品信息
+"payload4000": {"isFbList":0,"filialeCode":"00140","productName":null,"productCode":null,"specifications":null,"materialCode":null,"manufacturer":null,"lineName":null,"riskRank":null,"isRelease":"1","isExistImage":null,"jdeStatus":"P","isGift":"0","description":null,"tbsj":[],"pageNum":1,"pageSize":8,"total":8850,"firstQuery":true,"flag":true,"preInvalidStatus":null,"isControlSales":"0","startTime":null,"endTime":null,"status":101}
+#查询站点国药集团联合医疗器械有限公司商品信息
+"payload4001": {"isFbList":0,"filialeCode":"00102","productName":null,"productCode":null,"specifications":null,"materialCode":null,"manufacturer":null,"lineName":null,"riskRank":null,"isRelease":"1","isExistImage":null,"jdeStatus":"P","isGift":"0","description":null,"tbsj":[],"pageNum":1,"pageSize":8,"total":218,"firstQuery":true,"flag":true,"preInvalidStatus":null,"isControlSales":"0","startTime":null,"endTime":null,"status":101}
+
+
+
+#预期结果
+checkDict9: {"success":true,"code":"200","message":"OK","data":"ok"}
+checkDict90: {"success":false,"code":"1078","message":"该商品不存在,加入购物车失败","data":null,"freshToken":null}
+
+
+
+#站点切换
+"url2000": "/user/mall/switchWebsite"
+"payload2000": {"companyId":3,"companyCode":"00103"}
+"payload2001": {"companyId":7,"companyCode":"00102"}
+"payload2002": {"companyId":8,"companyCode":"00140"}
+"payload3001": {"currentCompanyId":3,"productId":"396","quantity":1,"agreementPriceId":0,"price":230}
\ No newline at end of file
diff --git a/data/cmdc_fresenius_group/data b/data/cmdc_fresenius_group/data
new file mode 100644
index 0000000000000000000000000000000000000000..9fb9d2928e83c5380d495240fa5ca2119ea666c3
--- /dev/null
+++ b/data/cmdc_fresenius_group/data
@@ -0,0 +1,264 @@
+# 多采商城登录信息
+"username": "BJ0621"
+"password": "Aa123456"
+
+#后台运营管理系统登录信息(子站点上海医疗器械有限公司)
+"username1": "Admin00111"
+"password1": "Aa123456"
+
+
+#后台管理系统headers
+json_headers: {
+ "Content-Type": "application/json",
+ "Cmdc_access_token": "%s"
+}
+
+json_headers2: {
+ "Cmdc_access_token": "%s"
+}
+
+#多采商城headers
+json_headers1: {
+ "Cmdc_access_token": "%s",
+ "Sourcetype": "mall"
+}
+
+#测试场景一:套包列表获取
+"url1": "/order/public/queryFreseniusGroup"
+"payload1": {"groupCode":"","groupName":"","productCode":"","productName":"","materialCode":"","manufacturerList":[],"productLineName":"","description":"","manufacturerProductDesc":"","manufacturerProductNo":"","companyCode":"","productInfo":"","status":null,"pageStart":1,"pageSize":10,"groupType":3}
+#预期结果
+checkDict1: {"success":true,"code":"200","message":"OK"}
+
+#测试场景二:套包商品列表获取
+"url2": "/product/public/productGroupList"
+"payload2": {"productCode":"","productName":"","materialCode":"","specifications":"","userNo":"","companyCode":"00111","pageSize":10,"pageNum":1}
+#预期结果
+checkDict2: {"success":true,"code":"200","message":"OK"}
+
+#测试场景三:产品线查询
+"url3": "/product/public/queryProductLineName"
+"payload3": {"filialeCode":"00111"}
+#预期结果
+checkDict3: {"success":true,"code":"200","message":"OK"}
+
+#测试场景四:根据规格型号获取对应商品列表
+"url4": "/product/public/productGroupList"
+"payload4": {"companyCode":"00111","pageSize":10,"pageNum":1,"specifications":"%s"}
+#预期结果
+checkDict4: {"optionStr":"%s"}
+
+
+#测试场景五:查询规格型号
+"url5": "/product/public/productGroupMaterialCodeList"
+"payload5": {"materialCodeInput":"%s","allMaterialSign":2}
+#预期结果
+checkDict5: {"success":true,"code":"200","message":"OK"}
+
+
+#测试场景六:套包商品列表查询条件验证
+"url6": "/product/public/productGroupList"
+"payload6": {"productCode":"%s","productName":"%s","materialCode":"%s","specifications":"%s","productLineName":"%s","userNo":"","companyCode":"00111","pageSize":10,"pageNum":1}
+#预期结果
+checkDict6: {"productCode":"%s"}
+
+
+
+#测试场景七:套包列表查询条件验证
+"url7": "/order/public/queryFreseniusGroup"
+"payload7": {"groupCode":"%s","groupName":"%s","productCode":"%s","productName":"%s","materialCode":"%s","manufacturerList":["%s"],"productLineName":"%s","description":"%s","manufacturerProductDesc":"","manufacturerProductNo":"","companyCode":"","productInfo":"%s","status":null,"pageStart":1,"pageSize":10,"groupType":3}
+#预期结果
+checkDict7: {"productCode":"%s"}
+
+
+
+#测试场景八:套包创建
+"url8": "/order/public/saveFreseniusGroup"
+"payload8": {"manufacturerGroupName":"","manufacturerGroupCode":"","groupName":"","products":[{"productCode":"14479934","productName":"一次性使用灭菌橡胶外科手套","manufacturer":"TG MEDICAL SDN. BHD.","manufacturerCode":"7007634","optionStr":"SFTCS1145E 7.5 无粉麻面","storageCondition":"002","activityUnitAmount":null,"price":9999999.99,"measuringUnit":"副","materialCode":"SFTCS1145E-0040050","description":"","quantity":"%s","manufacturerProductNo":null,"manufacturerProductDesc":null,"produceRegisterNum":"国械注进20172661704","productLineName":"麦迪康","productLineCode":"2012"},{"productCode":"14184540","productName":"医用检查手套","manufacturer":"麦迪康(马来西亚)公司 A R MEDICOM (M) SDN BHD","manufacturerCode":"7047412","optionStr":"LATEX POWDER FREE EXAMINATION GLOVES(无粉乳胶检查手套)(1668C M)","storageCondition":"002","activityUnitAmount":null,"price":9999999.99,"measuringUnit":"只","materialCode":"DRG-CL101668C","description":"","quantity":"%s","manufacturerProductNo":null,"manufacturerProductDesc":null,"produceRegisterNum":"国械备20190299号","productLineName":"麦迪康","productLineCode":"2012"}],"productLineName":"麦迪康","status":0,"groupType":3}
+#预期结果
+checkDict8: {"success":true,"code":"200","message":"OK"}
+
+
+#测试场景九:套包删除验证
+"url9": "/order/public/batchEnableOrDisableFreseniusGroup"
+"payload9": {"groupIds":["%s"],"type":1,"remarks":"","groupType":3}
+#预期结果
+checkDict9: {"success":true,"code":"200","message":"OK"}
+checkDict90: {"status": 2}
+
+
+#测试场景十:验证新增相同名称套包
+"url10": "/order/public/saveFreseniusGroup"
+"payload10": {"manufacturerGroupName":"","manufacturerGroupCode":"","groupName":"%s","products":[{"productCode":"14622141","productName":"内窥镜手术器械控制系统用无源器械和附件","manufacturer":"Intuitive Surgical,Inc.直观医疗公司","manufacturerCode":"7044889","optionStr":"470359 8mm 无刃透明闭孔器","storageCondition":"999","activityUnitAmount":null,"price":1967.86,"measuringUnit":"箱","materialCode":"470359","description":"","quantity":"%s","manufacturerProductNo":null,"manufacturerProductDesc":null,"produceRegisterNum":"国械注进20172222398","productLineName":"达芬奇耗材","productLineCode":"6011"},{"productCode":"14561459","productName":"内窥镜手术器械控制系统用器械和附件","manufacturer":"Intuitive Surgical, Inc","manufacturerCode":"7023154","optionStr":"420015 器械臂铺单(无菌套)","storageCondition":"999","activityUnitAmount":null,"price":8413.71,"measuringUnit":"箱","materialCode":"420015","description":"","quantity":"%s","manufacturerProductNo":null,"manufacturerProductDesc":null,"produceRegisterNum":"国械注进20162013327","productLineName":"达芬奇耗材","productLineCode":"6011"}],"productLineName":"达芬奇耗材","status":0,"groupType":3}
+#预期结果
+checkDict10: {"success":false,"code":"FRESENIUS_GROUP_ERROR","message":"该行套包名称系统已存在,无需重复添加!","data":null,"freshToken":null}
+
+
+#测试场景十一:验证新增相同名称套包
+"url11": "/order/public/saveFreseniusGroup"
+"payload11": {"manufacturerGroupName":"","manufacturerGroupCode":"","groupName":"","products":[{"productCode":"14615827","productName":"麦迪康牌灭菌指示包装袋(卷)","manufacturer":"AMD Medicom Inc.麦迪康(加拿大)公司","manufacturerCode":"7050567","optionStr":"9560 平面灭菌卷250mmx200m","storageCondition":"999","activityUnitAmount":null,"price":9999999.99,"measuringUnit":"卷","materialCode":"MED0869560-0040001","description":"","quantity":"1","manufacturerProductNo":null,"manufacturerProductDesc":null,"produceRegisterNum":null,"productLineName":"麦迪康","productLineCode":"2012"},{"productCode":"10700237","productName":"一次性使用灭菌橡胶外科手套","manufacturer":"TG MEDICAL SDN. BHD.","manufacturerCode":"7007634","optionStr":"/(SFBCS1144C-0080050无粉6.5号)","storageCondition":"999","activityUnitAmount":null,"price":9999999.99,"measuringUnit":"副","materialCode":"SFBCS1144C-0080050","description":"","quantity":"1","manufacturerProductNo":null,"manufacturerProductDesc":null,"produceRegisterNum":"国械注进20172661704","productLineName":"麦迪康","productLineCode":"2012"}],"productLineName":"麦迪康","status":0,"groupType":3}
+#预期结果
+checkDict11: {"success":false,"code":"FRESENIUS_GROUP_ERROR","message":"已存在相同结构的套包,不允许重复录入","data":null,"freshToken":null}
+
+
+#测试场景十二:验证套包内商品非同一产品线限制
+"url12": "/order/public/saveFreseniusGroup"
+"payload12": {"manufacturerGroupName":"","manufacturerGroupCode":"","groupName":"","products":[{"productCode":"11792427","productName":"可吸收外科缝线","manufacturer":"贝朗医疗西班牙股份公司B.Braun Surgical SA","manufacturerCode":"7039686","optionStr":"C0023412","storageCondition":"999","activityUnitAmount":null,"price":1518,"measuringUnit":"盒","materialCode":"C0023412","description":"","quantity":"999999","manufacturerProductNo":null,"manufacturerProductDesc":null,"produceRegisterNum":"国械注进20193021757","productLineName":"蛇牌","productLineCode":"3046"},{"productCode":"13422435","productName":"造口护理用品附件","manufacturer":"康乐保公司 Coloplast A/S","manufacturerCode":"7038267","optionStr":"12050","storageCondition":"999","activityUnitAmount":null,"price":144.1,"measuringUnit":"支","materialCode":"","description":"","quantity":"999999","manufacturerProductNo":null,"manufacturerProductDesc":null,"produceRegisterNum":"国械备20191252号","productLineName":"康乐保","productLineCode":"3111"}],"productLineName":"蛇牌","status":0,"groupType":3}
+#预期结果
+checkDict12: {"success":false,"code":"FRESENIUS_GROUP_ERROR","message":"组成一个套包内商品需满足套包在同一产品线下","data":null,"freshToken":null}
+
+
+
+#测试场景十三:验证组成套包需2个或2个以上商品
+"url13": "/order/public/saveFreseniusGroup"
+"payload13": {"manufacturerGroupName":"","manufacturerGroupCode":"","groupName":"","products":[{"productCode":"14593614","productName":"3M™爱护佳皮肤清洗液","manufacturer":"3M中国有限公司","manufacturerCode":"7000536","optionStr":"9230P","storageCondition":"002","activityUnitAmount":null,"price":15.82,"measuringUnit":"瓶","materialCode":"XF003887106","description":"","quantity":"1","manufacturerProductNo":null,"manufacturerProductDesc":null,"produceRegisterNum":null,"productLineName":"3M医疗","productLineCode":"7021"}],"productLineName":"3M医疗","status":0,"groupType":3}
+#预期结果
+checkDict13: {"success":false,"code":"FRESENIUS_GROUP_ERROR","message":"组成套包需2个或2个以上商品","data":null,"freshToken":null}
+
+
+#测试场景十四:套包更新_套包名称已存在
+"url14": "/order/public/updateFreseniusGroup"
+#预期结果
+checkDict14: {"success":false,"code":"FRESENIUS_GROUP_ERROR","message":"该行套包名称系统已存在,无需重复添加!","data":null,"freshToken":null}
+
+
+#测试场景十五:套包更新_验证组成套包需2个或2个以上商品
+#预期结果
+checkDict15: {"success":false,"code":"FRESENIUS_GROUP_ERROR","message":"组成套包需2个或2个以上商品","data":null,"freshToken":null}
+
+
+#测试场景十六:套包更新_套包内商品需满足同一产品线
+#预期结果
+checkDict16: {"success":false,"code":"FRESENIUS_GROUP_ERROR","message":"组成一个套包内商品需满足套包在同一产品线下","data":null,"freshToken":null}
+"other_product": {"productCode":"10057881","productName":"造口护理用品附件","manufacturer":"Coloplast A/S","manufacturerCode":"7000118","optionStr":"12070","storageCondition":"999","activityUnitAmount":null,"price":15.2,"measuringUnit":"个","materialCode":"","description":"","quantity":"1","manufacturerProductNo":null,"manufacturerProductDesc":null,"produceRegisterNum":"国械注进20152664141","productLineName":"康乐保","productLineCode":"3111"}
+
+
+#测试场景十七:套包更新验证
+
+#预期结果
+checkDict17: {"success":true,"code":"200","message":"OK","data":true,"freshToken":null}
+
+
+#测试场景十八:套包批量新增
+"url18": "/order/public/importFreseniusGroup"
+"payload18": {"groupType":3}
+#预期结果
+checkDict18: {"success":true,"code":"200","message":"OK","data":{"success":true},"freshToken":null}
+
+# 获取商品信息-产品线为麦迪康
+"url19": "/product/public/productGroupList"
+"payload19": {"productCode":"","productName":"","materialCode":"","specifications":"","productLineName":"麦迪康","userNo":"","companyCode":"00111","pageSize":10,"pageNum":1}
+
+
+#测试场景二十:套包批量新增-套包名称已存在、结构与已有相同、商品数少于2、组成一个套包内商品需满足套包在同一产品线下、商品重复添加
+#预期结果
+checkDict20: {"success":false}
+
+
+#测试场景二十一:套包批量新增
+#Excel导入接口
+"url21": "/order/public/importEnableOrDisable"
+"payload21": {"groupType":3,"type":1}
+#预期结果
+checkDict21: {"success":true,"code":"200","message":"OK"}
+
+#套包批量删除接口
+"url22": "/order/public/batchEnableOrDisableFreseniusGroup"
+
+#预期结果
+checkDict22: {"success":true,"code":"200","message":"OK"}
+
+
+
+#测试场景二十二:套包批量新增
+#预期结果
+checkDict23: {"success":false}
+
+
+#测试场景二十三:导入日志查询
+"url24": "/order/public/excelLog/list"
+#预期结果
+checkDict24: {"success":true,"code":"200","message":"OK"}
+
+
+#测试场景二十四:验证套包中商品详情页面是否显示套包信息
+#获取指定套包信息
+"payload22": {"groupCode":"cpg00659551","groupName":"","productCode":"","productName":"","materialCode":"","manufacturerList":[],"productLineName":"","description":"","manufacturerProductDesc":"","manufacturerProductNo":"","companyCode":"","productInfo":"","status":null,"pageStart":1,"pageSize":10,"groupType":3}
+#获取套包信息接口和报文
+"url25": "/order/public/getFreseniusGroup"
+"payload23": {"productCode":"%s","companyCode":"%s","detail":true,"buyCart":true,"num":1}
+#预期结果
+checkDict25: {"groupCode":"%s"}
+
+#测试场景二十五:获取套包列表
+#获取套包列表接口和报文
+"url26": "/order/public/getFreseniusGroup"
+"payload26": {"productInfo":null,"documentNo":null,"groupCode":null,"materialCode":null,"type":0,"productLineCode":"%s","companyCode":"%s","buyCart":true,"num":1}
+
+
+#测试场景二十六:验证多采商品套包列表页面中物料编码模糊查询
+#获取套包列表接口和报文
+"url27": "/product/public/getTipsList"
+"payload27": {"sign":2,"inputValue":"%s"}
+#预期结果
+checkDict27: {"success":true,"code":"200","message":"OK"}
+
+
+#测试场景二十七:套包列表查询条件验证_商品详情页跳转
+#获取套包列表接口和报文
+"url28": "/order/public/getFreseniusGroup"
+"payload28": {"productInfo":"%s","documentNo":null,"groupCode":null,"materialCode":null,"type":0,"productLineCode":"%s","companyCode":"%s","buyCart":true,"num":1,"groupProductCode":"%s","groupName":"%s","groupMaterialCode":"%s"}
+#预期结果
+checkDict28: {"groupCode":"%s"}
+
+
+#测试场景二十八:套包加入购物车验证
+#加入购物车接口和报文
+"url29": "/product/mall/addBuyerCart"
+"payload29": {"freseniusList":[{"currentCompanyId":6,"productId":7438,"pSign":0,"quantity":1,"agreementPriceId":0,"price":"100.0","filialeCode":"00111"},{"currentCompanyId":6,"productId":7439,"pSign":0,"quantity":1,"agreementPriceId":0,"price":"101.0","filialeCode":"00111"}],"pSign":0,"groupId":355,"currentCompanyId":6,"quantity":1,"agreementPriceId":0,"price":201,"filialeCode":"00111"}
+#预期结果
+checkDict29: {"success":true,"code":"200","message":"OK"}
+
+
+#测试场景二十九:套包清单获取
+#套包清单获取接口地址和报文
+"url30": "/order/public/getFreseniusGroup"
+"payload30": {"userNo":"1126384","companyCode":"00111","back":true,"p":true,"buyCart":true,"num":1}
+#预期结果
+checkDict30: {"success":true,"code":"200","message":"OK"}
+
+
+#测试场景三十:创建需求单_普通套包
+#需求单创建接口地址和报文
+"url31": "/order/public/saveAllDemandOrder"
+"payload31": {"国药集团上海医疗器械有限公司":{"datas":[{"demandId":null,"demandParentId":null,"demandParentCode":null,"demandCode":null,"customerId":null,"customerName":null,"customerCode":1126384,"loginName":null,"realName":null,"addressNumber":null,"mobile":null,"productName":null,"productCode":null,"sellerCompanyName":null,"sellerCompanyCode":null,"paymentType":null,"receiveBankName":null,"receiveBankAccount":null,"paymentAmount":101,"productAmount":201,"payableAmount":101,"refundAmount":null,"cancelAmount":null,"discountAmount":0,"orderStatus":null,"refundStatus":null,"receiverName":null,"receiverContact":null,"receiverAddress":null,"remark":null,"revokedReason":null,"auditById":null,"auditByName":null,"auditTime":null,"auditRemark":null,"flhsStatus":null,"pushJdeStatus":null,"createTime":null,"updateTime":null,"submitTime":null,"pushJdeTime":null,"successTime":null,"auditStatus":null,"deleteSign":null,"firstOrderFlag":null,"demandItems":[{"demandSkuId":null,"demandId":null,"distributionId":null,"companyCode":"00111","demandCode":null,"demandParentId":null,"sellerCompanyId":null,"sellerCompanyName":null,"sellerCompanyCode":null,"customerCode":null,"productLineCode":"2012","productLineName":"麦迪康","propertyStr":null,"storageType":"002","suppDist":null,"productId":7438,"productName":"检查手套","productCode":"14037826","productNature":null,"brandName":null,"optionStr":"1131C 丁腈无粉 M 蓝紫色","imageUrl":"","lineNumber":null,"price":100,"rebateId":null,"originalPrice":null,"biddingDiscountTax":null,"salesDiscountTax":null,"quantity":1,"sumQuantity":null,"sendQuantity":null,"lackQuantity":null,"cancelQuantity":null,"cancelAmount":null,"refundQuantity":null,"refundAmount":null,"discountQuantity":null,"discountAmount":null,"subtotal":100,"measuringUnit":"只","auxiliaryMeasuringUnit":null,"procurementMeasuringUnit":null,"pricingMeasuringUnit":null,"materialCode":"SFTCN1131C-0100100","manufacturer":"麦迪康(马来西亚)公司 A R Medicom (M) Sdn Bhd","produceRegisterNum":"国械备20181202号","riskRank":null,"productClassify":null,"createTime":null,"updateTime":null,"deleteSign":null,"calCancelFlag":null,"refundFlag":null,"discountRate":100,"realPay":100,"promotionPrice":null,"promotionTotalPrice":0,"demandParentCode":null,"regionId":null,"regionName":null,"spitSign":null,"activityAmount":0,"couponAmount":49.75,"activityUnitAmount":0,"couponUnitAmount":null,"activityBasicId":null,"couponSgin":null,"couponSgin2":null,"returnQuantity":null,"returnAmount":null,"customerId":null,"prescription":null,"specifications":null,"lineCodeDelete":null,"sdOutStorage":null,"licenseNo":null,"demandCodes":null,"areaName":null,"agreementPriceId":null,"offerPrice":null,"orderMark":null,"totalPrice":null,"productLimitBuyList":null,"giftSign":0,"giftProductCode":null,"activityCarDataVoList":[],"orderSource":null,"receiverName":null,"receiverContact":null,"receiverAddress":null,"rebateTripId":null,"allSign":null,"salesReturn":null,"nowAmount":null,"taxSign":0,"plusMinuKey":null,"rebateRule":null,"areaPrice":null,"lockType":null,"estimatedDeliveryDate":null,"licenseInfoFeignDtos":null,"receivedQty":null,"lineNumberOrg":null,"changeSgin":null,"addSgin":null,"ptbfa1":null,"ptbfa2":null,"ptbfa3":null,"ptbfa4":null,"ptbfa5":null,"yapeiPriceId":null,"ypLinePromotion":null,"yapeiPrice":null,"companyId":6,"buyerCartId":null,"userReceiveIdx":null,"userReceiveIdx2":null,"limitNum":null,"productLimitBuyId":null,"alreadyBuyNum":null,"limitBuySign":0,"proposeNum":null,"takeEffectRange":null,"takeEffectTime":null,"endTime1":null,"groupId":355,"fsGroupId":355,"proposalQuantity":null,"proposalSign":0,"manufacturerUserNo":null,"manufacturerUserDesc":null,"manufacturerProductNo":null,"manufacturerProductDesc":null,"manufacturerUserId":null,"manufacturerProductId":null,"busProductCode":null,"paidTime":null,"customerName":null,"paymentAmount":null,"specQuantity":null,"disQuantity":null,"fulfilledQuantity":null,"fulCancelQuantity":null,"couponId":null,"couponId2":null,"limitS":null,"starts":null,"ends":null,"userId":null,"productTax":"","taxRate":0.13,"demandSplitSign":"1","hospitalHopeDate":null,"uniqueKey":null,"productType":null,"activityRuleId":null,"allowanceBeginTime":null,"allowanceEndTime":null,"sign":null,"differenceActivityUserId":null,"groupNumber":1,"groupName":"套包测试","skuGroup":{"id":null,"groupId":355,"companyCode":"00111","groupProductType":4,"createTime":null,"updateTime":null,"demandSkuId":null,"demandId":null,"dataJson":"{\\\"groupCode\\\":\\\"cpg00659551\\\",\\\"groupName\\\":\\\"套包测试\\\",\\\"groupCode1\\\":\\\"cpg00659551\\\",\\\"groupPrice\\\":201,\\\"groupProductType\\\":4,\\\"realPay\\\":201,\\\"subtotal\\\":201,\\\"quantity\\\":1,\\\"calSubFreName\\\":\\\"检查手套(1131C 丁腈无粉 M 蓝紫色)*1只+一次性使用灭菌橡胶外科手套(SFTCS1145E 7.5 无粉麻面)*1副\\\",\\\"subList\\\":[{\\\"activityUnitAmount\\\":\\\"100.0\\\",\\\"quantity\\\":1,\\\"productCode\\\":\\\"14037826\\\"},{\\\"activityUnitAmount\\\":\\\"101.0\\\",\\\"quantity\\\":1,\\\"productCode\\\":\\\"14479934\\\"}]}","lineNumber":null,"freseniusPriceId":null,"groupNumber":1,"demandSkuList":null,"demandSkuVOList":null,"groupCode":"cpg00659551","groupName":"套包测试","groupCode1":"cpg00659551","groupPrice":201,"realPay":201,"subtotal":201,"quantity":1,"calSubFreName":"检查手套(1131C 丁腈无粉 M 蓝紫色)*1只+一次性使用灭菌橡胶外科手套(SFTCS1145E 7.5 无粉麻面)*1副","subList":[{"activityUnitAmount":"100.0","quantity":1,"productCode":"14037826"},{"activityUnitAmount":"101.0","quantity":1,"productCode":"14479934"}],"_rebateType":false},"subList":null,"dataJson":null,"skuMergeSign":null,"freseniusPriceId":null,"quantityAndGroupAll":1,"booleaTime":null,"spitSgin":0,"groupSpitSign":0,"sort":0,"circleArea":null,"purchaseEntryId":null,"mustInstallDate":false,"installedDate":null,"installedDateStr":null,"demandLines":null,"subLineNumber":null,"demandSubCode":null,"propertyName":null,"propertyVal":null,"propertyNote":null,"sendManualSign":0,"activityType":0,"giftSettlementMethod":null,"giftInitQuantity":null,"packageCode":null,"giftGroupQuantity":null,"siteCompanyCode":null,"hospitalOrderType":null,"isCollectionAllocation":null,"recDifferenceQty":null,"orderStatus":null,"distributionType":null,"groupCode":"cpg00659551","groupProductType":4,"pSign":0,"backSign":0,"description":"","stockNumber":null,"priceChange":false,"rebate":false,"bol":true,"purchaseZeroProductList":[],"prePromotionPrice":null,"prepromotionTotalPrice":0,"preDiscountRate":null,"userBalance":0,"rebateType":0},{"demandSkuId":null,"demandId":null,"distributionId":null,"companyCode":"00111","demandCode":null,"demandParentId":null,"sellerCompanyId":null,"sellerCompanyName":null,"sellerCompanyCode":null,"customerCode":null,"productLineCode":"2012","productLineName":"麦迪康","propertyStr":null,"storageType":"002","suppDist":null,"productId":7439,"productName":"一次性使用灭菌橡胶外科手套","productCode":"14479934","productNature":null,"brandName":null,"optionStr":"SFTCS1145E 7.5 无粉麻面","imageUrl":"https://pro-cmdc.oss-cn-beijing.aliyuncs.com/productFile/2021/04/13/bb721764-a0ca-4ff7-9d63-778803bc0c68.jpg","lineNumber":null,"price":101,"rebateId":null,"originalPrice":null,"biddingDiscountTax":null,"salesDiscountTax":null,"quantity":1,"sumQuantity":null,"sendQuantity":null,"lackQuantity":null,"cancelQuantity":null,"cancelAmount":null,"refundQuantity":null,"refundAmount":null,"discountQuantity":null,"discountAmount":null,"subtotal":101,"measuringUnit":"副","auxiliaryMeasuringUnit":null,"procurementMeasuringUnit":null,"pricingMeasuringUnit":null,"materialCode":"SFTCS1145E-0040050","manufacturer":"TG MEDICAL SDN. BHD.","produceRegisterNum":"国械注进20172661704","riskRank":null,"productClassify":null,"createTime":null,"updateTime":null,"deleteSign":null,"calCancelFlag":null,"refundFlag":null,"discountRate":100,"realPay":101,"promotionPrice":null,"promotionTotalPrice":0,"demandParentCode":null,"regionId":null,"regionName":null,"spitSign":null,"activityAmount":0,"couponAmount":50.25,"activityUnitAmount":0,"couponUnitAmount":null,"activityBasicId":null,"couponSgin":null,"couponSgin2":null,"returnQuantity":null,"returnAmount":null,"customerId":null,"prescription":null,"specifications":null,"lineCodeDelete":null,"sdOutStorage":null,"licenseNo":null,"demandCodes":null,"areaName":null,"agreementPriceId":null,"offerPrice":null,"orderMark":null,"totalPrice":null,"productLimitBuyList":null,"giftSign":0,"giftProductCode":null,"activityCarDataVoList":[],"orderSource":null,"receiverName":null,"receiverContact":null,"receiverAddress":null,"rebateTripId":null,"allSign":null,"salesReturn":null,"nowAmount":null,"taxSign":0,"plusMinuKey":null,"rebateRule":null,"areaPrice":null,"lockType":null,"estimatedDeliveryDate":null,"licenseInfoFeignDtos":null,"receivedQty":null,"lineNumberOrg":null,"changeSgin":null,"addSgin":null,"ptbfa1":null,"ptbfa2":null,"ptbfa3":null,"ptbfa4":null,"ptbfa5":null,"yapeiPriceId":null,"ypLinePromotion":null,"yapeiPrice":null,"companyId":6,"buyerCartId":null,"userReceiveIdx":null,"userReceiveIdx2":null,"limitNum":null,"productLimitBuyId":null,"alreadyBuyNum":null,"limitBuySign":0,"proposeNum":null,"takeEffectRange":null,"takeEffectTime":null,"endTime1":null,"groupId":355,"fsGroupId":355,"proposalQuantity":null,"proposalSign":0,"manufacturerUserNo":null,"manufacturerUserDesc":null,"manufacturerProductNo":null,"manufacturerProductDesc":null,"manufacturerUserId":null,"manufacturerProductId":null,"busProductCode":null,"paidTime":null,"customerName":null,"paymentAmount":null,"specQuantity":null,"disQuantity":null,"fulfilledQuantity":null,"fulCancelQuantity":null,"couponId":null,"couponId2":null,"limitS":null,"starts":null,"ends":null,"userId":null,"productTax":"","taxRate":0.13,"demandSplitSign":"1","hospitalHopeDate":null,"uniqueKey":null,"productType":null,"activityRuleId":null,"allowanceBeginTime":null,"allowanceEndTime":null,"sign":null,"differenceActivityUserId":null,"groupNumber":1,"groupName":"套包测试","skuGroup":{"id":null,"groupId":355,"companyCode":"00111","groupProductType":4,"createTime":null,"updateTime":null,"demandSkuId":null,"demandId":null,"dataJson":"{\\\"groupCode\\\":\\\"cpg00659551\\\",\\\"groupName\\\":\\\"套包测试\\\",\\\"groupCode1\\\":\\\"cpg00659551\\\",\\\"groupPrice\\\":201,\\\"groupProductType\\\":4,\\\"realPay\\\":201,\\\"subtotal\\\":201,\\\"quantity\\\":1,\\\"calSubFreName\\\":\\\"检查手套(1131C 丁腈无粉 M 蓝紫色)*1只+一次性使用灭菌橡胶外科手套(SFTCS1145E 7.5 无粉麻面)*1副\\\",\\\"subList\\\":[{\\\"activityUnitAmount\\\":\\\"100.0\\\",\\\"quantity\\\":1,\\\"productCode\\\":\\\"14037826\\\"},{\\\"activityUnitAmount\\\":\\\"101.0\\\",\\\"quantity\\\":1,\\\"productCode\\\":\\\"14479934\\\"}]}","lineNumber":null,"freseniusPriceId":null,"groupNumber":1,"demandSkuList":null,"demandSkuVOList":null,"groupCode":"cpg00659551","groupName":"套包测试","groupCode1":"cpg00659551","groupPrice":201,"realPay":201,"subtotal":201,"quantity":1,"calSubFreName":"检查手套(1131C 丁腈无粉 M 蓝紫色)*1只+一次性使用灭菌橡胶外科手套(SFTCS1145E 7.5 无粉麻面)*1副","subList":[{"activityUnitAmount":"100.0","quantity":1,"productCode":"14037826"},{"activityUnitAmount":"101.0","quantity":1,"productCode":"14479934"}],"_rebateType":false},"subList":null,"dataJson":null,"skuMergeSign":null,"freseniusPriceId":null,"quantityAndGroupAll":1,"booleaTime":null,"spitSgin":0,"groupSpitSign":0,"sort":0,"circleArea":null,"purchaseEntryId":null,"mustInstallDate":false,"installedDate":null,"installedDateStr":null,"demandLines":null,"subLineNumber":null,"demandSubCode":null,"propertyName":null,"propertyVal":null,"propertyNote":null,"sendManualSign":0,"activityType":0,"giftSettlementMethod":null,"giftInitQuantity":null,"packageCode":null,"giftGroupQuantity":null,"siteCompanyCode":null,"hospitalOrderType":null,"isCollectionAllocation":null,"recDifferenceQty":null,"orderStatus":null,"distributionType":null,"groupCode":"cpg00659551","groupProductType":4,"pSign":0,"backSign":0,"description":"","stockNumber":null,"priceChange":false,"rebate":false,"bol":false,"purchaseZeroProductList":[],"prePromotionPrice":null,"prepromotionTotalPrice":0,"preDiscountRate":null,"userBalance":0,"rebateType":0}],"demandSubItems":null,"rebateDetail":null,"rebateAmountList":null,"productLineCode":"2012","productLineName":"麦迪康","auditLoginName":null,"showPurchaseNo":false,"isRebate":null,"isShowReate":null,"taxRate":0.13,"rebateType":0,"paymentAmountWholeLine":201,"discountAmountWholeLine":0,"payableAmountWholeLine":201,"discountRate":null,"singleRebateAmount":null,"isRebateEdit":null,"payCertUrl":null,"rebateAmount":null,"demandCance":null,"soAdd":null,"soCance":null,"orderReturn":null,"needCustomerConfirm":false,"measuringUnit":null,"productId":null,"version":null,"mainVersion":null,"agencyConfigId":null,"confirmSign":null,"replySign":null,"agencySign":null,"editIng":null,"editIngStr":null,"jdeType":null,"isElectronicSeal":null,"contractAgreementNo":null,"alesDepartmentNo":null,"alesDepartmentName":null,"salesPersonNo":null,"salesPersonName":null,"customerNote":null,"otherNote":null,"contractAgreementCode":null,"projectName":null,"projectCode":null,"regionId":null,"regionName":null,"productLineBindSign":null,"shipVia":null,"orderSource":null,"userBalance":null,"liquidCode":null,"shipmentTypeStr":null,"specifications":null,"pageStart":1,"pageSize":5,"changeSgin":null,"yapei":2,"companyId":6,"preemptConfig":null,"productSpec":null,"secondAuditSign":null,"secondAuditById":null,"secondAuditByName":null,"secondAuditTime":null,"secondAuditRemark":null,"secondAuditStatus":null,"rebateRule":"0","rebateControlSign":0,"rebateId":null,"preferenceType":null,"preferenceName":null,"disPrice":null,"lineNum":0,"auditStaySign":0,"fileList":null,"imageUrls":null,"total":null,"submitTimeStr":null,"updateTimeStr":null,"auditTimeStr":null,"acceptTime":null,"acceptTimeStr":null,"paidTime":null,"paidTimeStr":null,"erpHandingTime":null,"erpHandingTimeStr":null,"partShippingTime":null,"partShippingTimeStr":null,"allShippingTime":null,"allShippingTimeStr":null,"pushJdeTimeStr":null,"successTimeStr":null,"onlinePaySuccessTime":null,"onlinePaySuccessTimeStr":null,"bankTransactionSerial":null,"newIsTax":null,"countFormula":null,"countNumber":null,"noTaxRebateAmount":0,"isCollectionAllocation":0,"siteCompanyCode":null,"hospitalOrderType":null,"proofTime":null,"proofURL":null,"proofRemark":null,"proofSign":0,"customerCancelSign":null,"cancelRecords":null,"cancelCount":0,"updateNewTime":null,"updateNewTimeStr":null,"fsDedUseSign":null,"notice":null,"shareType":null,"singleRebateSign":null,"cf":false,"isPre":null,"showDemandAuditLineLabel":false,"orderType":null,"newDiscountRate":null,"oldOrderType":null,"oldNewDiscountRate":null,"pendding":null,"pushJdeStatusDemandSub":null,"circleGiftSign":0,"delay":null,"limitS":null,"starts":null,"ends":null,"completedS":null,"confirmDays":null,"remindS":null,"skuGroupList":null,"groupProductType":0,"purchaseId":null,"purchaseCode":null,"sdCancelTime":null,"sdTipSign":0,"receiverNote":null,"receiverPhoneNote":null,"receiverAddressNote":null,"flag":null,"sourceStr":null,"addressNoNote":null,"detailIsSpit":false,"spitSgin":null,"distributionType":null,"rebateValidity":null,"orderChangeType":null,"logoIcon":null,"detail":null,"changeBigType":null,"promotionType":2,"activityTotalAmount":0,"couponTotalAmount":100,"userReceiveId":null,"editSgin":null,"snSgin":null,"jdeOutAmount":null,"totalAllPaAmount":null,"diffShowSgin":0,"lineCodeDelete":null,"startTime":null,"endTime":null,"changeSign":null,"distributionId":null,"limitBuySign":0,"companyType":null,"afterSale":null,"csId":null,"sdStatusNodeParamList":null,"ypPromotionTotal":null,"acrossMainCode":null,"forceApprovedSign":0,"circleGiftContinueSgin":0,"customerCharge":null,"onlinePaySign":0,"recodeDemandSkuList":null,"mergeDemandSkuList":null,"inventoryNode":null,"customCode":null,"terminalSource":null,"potentialClientsId":null,"settlementStatus":null,"firstOrderAuditStatus":null,"confirmReceiptSign":null,"confirmReceiptTime":null,"afterSaleDays":null,"deliveryCompletedTime":null,"taxSign":0,"orderSplitSign":0,"demandRebateSkuList":null,"confirmTime":null,"customerPurchaseNo":null,"mustInstallDate":false,"secondAddressList":null,"splitOrMerge":null,"spitOrderSign":null,"edit":false,"productAmountWholeLine":201,"auditCompanyName":null,"auditCompanyNameCode":null,"ratio":null,"showMoreAttribute":false,"lastNoTaxDiscountAmount":0,"lastDiscountAmount":0,"showInfo":false,"addressConfig":2,"settementQuantity":2,"userBalancePrice":0,"isEdit":true,"discountRateOne":100,"totalPriceNum":0}],"addressConfig":2,"openPreTaxAmount":0,"promotionOrRebate":2,"promotionType":2,"productLineCodes":["2012"],"addressIsCommon":true,"showChangePromotionOrRebate":false,"couponTotalAmount":100,"activityTotalAmount":0,"totalQuantity":2,"totalPrice":201,"discountAmount":0,"demandItems":[{"demandSkuId":null,"demandId":null,"distributionId":null,"companyCode":"00111","demandCode":null,"demandParentId":null,"sellerCompanyId":null,"sellerCompanyName":null,"sellerCompanyCode":null,"customerCode":null,"productLineCode":"2012","productLineName":"麦迪康","propertyStr":null,"storageType":"002","suppDist":null,"productId":7438,"productName":"检查手套","productCode":"14037826","productNature":null,"brandName":null,"optionStr":"1131C 丁腈无粉 M 蓝紫色","imageUrl":"","lineNumber":null,"price":100,"rebateId":null,"originalPrice":null,"biddingDiscountTax":null,"salesDiscountTax":null,"quantity":1,"sumQuantity":null,"sendQuantity":null,"lackQuantity":null,"cancelQuantity":null,"cancelAmount":null,"refundQuantity":null,"refundAmount":null,"discountQuantity":null,"discountAmount":null,"subtotal":100,"measuringUnit":"只","auxiliaryMeasuringUnit":null,"procurementMeasuringUnit":null,"pricingMeasuringUnit":null,"materialCode":"SFTCN1131C-0100100","manufacturer":"麦迪康(马来西亚)公司 A R Medicom (M) Sdn Bhd","produceRegisterNum":"国械备20181202号","riskRank":null,"productClassify":null,"createTime":null,"updateTime":null,"deleteSign":null,"calCancelFlag":null,"refundFlag":null,"discountRate":100,"realPay":100,"promotionPrice":null,"promotionTotalPrice":0,"demandParentCode":null,"regionId":null,"regionName":null,"spitSign":null,"activityAmount":0,"couponAmount":49.75,"activityUnitAmount":0,"couponUnitAmount":null,"activityBasicId":null,"couponSgin":null,"couponSgin2":null,"returnQuantity":null,"returnAmount":null,"customerId":null,"prescription":null,"specifications":null,"lineCodeDelete":null,"sdOutStorage":null,"licenseNo":null,"demandCodes":null,"areaName":null,"agreementPriceId":null,"offerPrice":null,"orderMark":null,"totalPrice":null,"productLimitBuyList":null,"giftSign":0,"giftProductCode":null,"activityCarDataVoList":[],"orderSource":null,"receiverName":null,"receiverContact":null,"receiverAddress":null,"rebateTripId":null,"allSign":null,"salesReturn":null,"nowAmount":null,"taxSign":0,"plusMinuKey":null,"rebateRule":null,"areaPrice":null,"lockType":null,"estimatedDeliveryDate":null,"licenseInfoFeignDtos":null,"receivedQty":null,"lineNumberOrg":null,"changeSgin":null,"addSgin":null,"ptbfa1":null,"ptbfa2":null,"ptbfa3":null,"ptbfa4":null,"ptbfa5":null,"yapeiPriceId":null,"ypLinePromotion":null,"yapeiPrice":null,"companyId":6,"buyerCartId":null,"userReceiveIdx":null,"userReceiveIdx2":null,"limitNum":null,"productLimitBuyId":null,"alreadyBuyNum":null,"limitBuySign":0,"proposeNum":null,"takeEffectRange":null,"takeEffectTime":null,"endTime1":null,"groupId":355,"fsGroupId":355,"proposalQuantity":null,"proposalSign":0,"manufacturerUserNo":null,"manufacturerUserDesc":null,"manufacturerProductNo":null,"manufacturerProductDesc":null,"manufacturerUserId":null,"manufacturerProductId":null,"busProductCode":null,"paidTime":null,"customerName":null,"paymentAmount":null,"specQuantity":null,"disQuantity":null,"fulfilledQuantity":null,"fulCancelQuantity":null,"couponId":null,"couponId2":null,"limitS":null,"starts":null,"ends":null,"userId":null,"productTax":"","taxRate":0.13,"demandSplitSign":"1","hospitalHopeDate":null,"uniqueKey":null,"productType":null,"activityRuleId":null,"allowanceBeginTime":null,"allowanceEndTime":null,"sign":null,"differenceActivityUserId":null,"groupNumber":1,"groupName":"套包测试","skuGroup":{"id":null,"groupId":355,"companyCode":"00111","groupProductType":4,"createTime":null,"updateTime":null,"demandSkuId":null,"demandId":null,"dataJson":"{\\\"groupCode\\\":\\\"cpg00659551\\\",\\\"groupName\\\":\\\"套包测试\\\",\\\"groupCode1\\\":\\\"cpg00659551\\\",\\\"groupPrice\\\":201,\\\"groupProductType\\\":4,\\\"realPay\\\":201,\\\"subtotal\\\":201,\\\"quantity\\\":1,\\\"calSubFreName\\\":\\\"检查手套(1131C 丁腈无粉 M 蓝紫色)*1只+一次性使用灭菌橡胶外科手套(SFTCS1145E 7.5 无粉麻面)*1副\\\",\\\"subList\\\":[{\\\"activityUnitAmount\\\":\\\"100.0\\\",\\\"quantity\\\":1,\\\"productCode\\\":\\\"14037826\\\"},{\\\"activityUnitAmount\\\":\\\"101.0\\\",\\\"quantity\\\":1,\\\"productCode\\\":\\\"14479934\\\"}]}","lineNumber":null,"freseniusPriceId":null,"groupNumber":1,"demandSkuList":null,"demandSkuVOList":null,"groupCode":"cpg00659551","groupName":"套包测试","groupCode1":"cpg00659551","groupPrice":201,"realPay":201,"subtotal":201,"quantity":1,"calSubFreName":"检查手套(1131C 丁腈无粉 M 蓝紫色)*1只+一次性使用灭菌橡胶外科手套(SFTCS1145E 7.5 无粉麻面)*1副","subList":[{"activityUnitAmount":"100.0","quantity":1,"productCode":"14037826"},{"activityUnitAmount":"101.0","quantity":1,"productCode":"14479934"}],"_rebateType":false},"subList":null,"dataJson":null,"skuMergeSign":null,"freseniusPriceId":null,"quantityAndGroupAll":1,"booleaTime":null,"spitSgin":0,"groupSpitSign":0,"sort":0,"circleArea":null,"purchaseEntryId":null,"mustInstallDate":false,"installedDate":null,"installedDateStr":null,"demandLines":null,"subLineNumber":null,"demandSubCode":null,"propertyName":null,"propertyVal":null,"propertyNote":null,"sendManualSign":0,"activityType":0,"giftSettlementMethod":null,"giftInitQuantity":null,"packageCode":null,"giftGroupQuantity":null,"siteCompanyCode":null,"hospitalOrderType":null,"isCollectionAllocation":null,"recDifferenceQty":null,"orderStatus":null,"distributionType":null,"groupCode":"cpg00659551","groupProductType":4,"pSign":0,"backSign":0,"description":"","stockNumber":null,"priceChange":false,"rebate":false,"bol":true,"purchaseZeroProductList":[],"prePromotionPrice":null,"prepromotionTotalPrice":0,"preDiscountRate":null,"userBalance":0},{"demandSkuId":null,"demandId":null,"distributionId":null,"companyCode":"00111","demandCode":null,"demandParentId":null,"sellerCompanyId":null,"sellerCompanyName":null,"sellerCompanyCode":null,"customerCode":null,"productLineCode":"2012","productLineName":"麦迪康","propertyStr":null,"storageType":"002","suppDist":null,"productId":7439,"productName":"一次性使用灭菌橡胶外科手套","productCode":"14479934","productNature":null,"brandName":null,"optionStr":"SFTCS1145E 7.5 无粉麻面","imageUrl":"https://pro-cmdc.oss-cn-beijing.aliyuncs.com/productFile/2021/04/13/bb721764-a0ca-4ff7-9d63-778803bc0c68.jpg","lineNumber":null,"price":101,"rebateId":null,"originalPrice":null,"biddingDiscountTax":null,"salesDiscountTax":null,"quantity":1,"sumQuantity":null,"sendQuantity":null,"lackQuantity":null,"cancelQuantity":null,"cancelAmount":null,"refundQuantity":null,"refundAmount":null,"discountQuantity":null,"discountAmount":null,"subtotal":101,"measuringUnit":"副","auxiliaryMeasuringUnit":null,"procurementMeasuringUnit":null,"pricingMeasuringUnit":null,"materialCode":"SFTCS1145E-0040050","manufacturer":"TG MEDICAL SDN. BHD.","produceRegisterNum":"国械注进20172661704","riskRank":null,"productClassify":null,"createTime":null,"updateTime":null,"deleteSign":null,"calCancelFlag":null,"refundFlag":null,"discountRate":100,"realPay":101,"promotionPrice":null,"promotionTotalPrice":0,"demandParentCode":null,"regionId":null,"regionName":null,"spitSign":null,"activityAmount":0,"couponAmount":50.25,"activityUnitAmount":0,"couponUnitAmount":null,"activityBasicId":null,"couponSgin":null,"couponSgin2":null,"returnQuantity":null,"returnAmount":null,"customerId":null,"prescription":null,"specifications":null,"lineCodeDelete":null,"sdOutStorage":null,"licenseNo":null,"demandCodes":null,"areaName":null,"agreementPriceId":null,"offerPrice":null,"orderMark":null,"totalPrice":null,"productLimitBuyList":null,"giftSign":0,"giftProductCode":null,"activityCarDataVoList":[],"orderSource":null,"receiverName":null,"receiverContact":null,"receiverAddress":null,"rebateTripId":null,"allSign":null,"salesReturn":null,"nowAmount":null,"taxSign":0,"plusMinuKey":null,"rebateRule":null,"areaPrice":null,"lockType":null,"estimatedDeliveryDate":null,"licenseInfoFeignDtos":null,"receivedQty":null,"lineNumberOrg":null,"changeSgin":null,"addSgin":null,"ptbfa1":null,"ptbfa2":null,"ptbfa3":null,"ptbfa4":null,"ptbfa5":null,"yapeiPriceId":null,"ypLinePromotion":null,"yapeiPrice":null,"companyId":6,"buyerCartId":null,"userReceiveIdx":null,"userReceiveIdx2":null,"limitNum":null,"productLimitBuyId":null,"alreadyBuyNum":null,"limitBuySign":0,"proposeNum":null,"takeEffectRange":null,"takeEffectTime":null,"endTime1":null,"groupId":355,"fsGroupId":355,"proposalQuantity":null,"proposalSign":0,"manufacturerUserNo":null,"manufacturerUserDesc":null,"manufacturerProductNo":null,"manufacturerProductDesc":null,"manufacturerUserId":null,"manufacturerProductId":null,"busProductCode":null,"paidTime":null,"customerName":null,"paymentAmount":null,"specQuantity":null,"disQuantity":null,"fulfilledQuantity":null,"fulCancelQuantity":null,"couponId":null,"couponId2":null,"limitS":null,"starts":null,"ends":null,"userId":null,"productTax":"","taxRate":0.13,"demandSplitSign":"1","hospitalHopeDate":null,"uniqueKey":null,"productType":null,"activityRuleId":null,"allowanceBeginTime":null,"allowanceEndTime":null,"sign":null,"differenceActivityUserId":null,"groupNumber":1,"groupName":"套包测试","skuGroup":{"id":null,"groupId":355,"companyCode":"00111","groupProductType":4,"createTime":null,"updateTime":null,"demandSkuId":null,"demandId":null,"dataJson":"{\\\"groupCode\\\":\\\"cpg00659551\\\",\\\"groupName\\\":\\\"套包测试\\\",\\\"groupCode1\\\":\\\"cpg00659551\\\",\\\"groupPrice\\\":201,\\\"groupProductType\\\":4,\\\"realPay\\\":201,\\\"subtotal\\\":201,\\\"quantity\\\":1,\\\"calSubFreName\\\":\\\"检查手套(1131C 丁腈无粉 M 蓝紫色)*1只+一次性使用灭菌橡胶外科手套(SFTCS1145E 7.5 无粉麻面)*1副\\\",\\\"subList\\\":[{\\\"activityUnitAmount\\\":\\\"100.0\\\",\\\"quantity\\\":1,\\\"productCode\\\":\\\"14037826\\\"},{\\\"activityUnitAmount\\\":\\\"101.0\\\",\\\"quantity\\\":1,\\\"productCode\\\":\\\"14479934\\\"}]}","lineNumber":null,"freseniusPriceId":null,"groupNumber":1,"demandSkuList":null,"demandSkuVOList":null,"groupCode":"cpg00659551","groupName":"套包测试","groupCode1":"cpg00659551","groupPrice":201,"realPay":201,"subtotal":201,"quantity":1,"calSubFreName":"检查手套(1131C 丁腈无粉 M 蓝紫色)*1只+一次性使用灭菌橡胶外科手套(SFTCS1145E 7.5 无粉麻面)*1副","subList":[{"activityUnitAmount":"100.0","quantity":1,"productCode":"14037826"},{"activityUnitAmount":"101.0","quantity":1,"productCode":"14479934"}],"_rebateType":false},"subList":null,"dataJson":null,"skuMergeSign":null,"freseniusPriceId":null,"quantityAndGroupAll":1,"booleaTime":null,"spitSgin":0,"groupSpitSign":0,"sort":0,"circleArea":null,"purchaseEntryId":null,"mustInstallDate":false,"installedDate":null,"installedDateStr":null,"demandLines":null,"subLineNumber":null,"demandSubCode":null,"propertyName":null,"propertyVal":null,"propertyNote":null,"sendManualSign":0,"activityType":0,"giftSettlementMethod":null,"giftInitQuantity":null,"packageCode":null,"giftGroupQuantity":null,"siteCompanyCode":null,"hospitalOrderType":null,"isCollectionAllocation":null,"recDifferenceQty":null,"orderStatus":null,"distributionType":null,"groupCode":"cpg00659551","groupProductType":4,"pSign":0,"backSign":0,"description":"","stockNumber":null,"priceChange":false,"rebate":false,"bol":false,"purchaseZeroProductList":[],"prePromotionPrice":null,"prepromotionTotalPrice":0,"preDiscountRate":null,"userBalance":0}],"productPrice":101,"fileList":[],"showInfo":false,"pageStart":1,"pageSize":5,"receiveInfo":[{"addressId":27568,"addressNo":82429,"addressName":"昆明高新技术产业开发区马金铺高登路1676号水科技园标准工业厂房1号办公楼4层405室,2号工业厂房一层101、102、103、104-2室","provinceCode":null,"userId":null,"companyId":null,"receiverName":"/","address":"","isDefault":1,"type":null,"postcode":null,"mobile":"/","updateDate":null,"updateTime":null,"flag":null,"deleteSign":null,"province":null,"city":null,"area":null,"dateTime":null,"provinceStr":null,"cityStr":null,"areaStr":null,"isJde":0}],"defaultBankInfo":{"accountId":3,"companyId":6,"companyName":"国药集团上海医疗器械有限公司","registeredAddress":"上海市宝山区江杨南路880号厂房7幢V008","bank":"中国光大银行上海彭浦支行","accountName":"国药集团上海医疗器械有限公司","accountNumber":"36830188000041806","disableSign":0,"deleteSign":0,"createTime":"2021-05-06 10:46:15","updateTime":"2021-05-06 10:46:15","createBy":2795,"realName":"国药集团上海医疗器械有限公司admin"},"addressList":[{"addressId":27568,"addressNo":82429,"addressName":null,"provinceCode":null,"userId":null,"companyId":6,"receiverName":"/","address":"昆明高新技术产业开发区马金铺高登路1676号水科技园标准工业厂房1号办公楼4层405室,2号工业厂房一层101、102、103、104-2室","isDefault":1,"type":3,"postcode":null,"mobile":"/","updateDate":120035,"updateTime":93623,"flag":null,"deleteSign":null,"province":0,"city":0,"area":0,"dateTime":null,"provinceStr":"","cityStr":"","areaStr":"","isJde":0,"cityList":[],"areaList":[]}],"selecteAddresId":27568,"receiverNote":"/","receiverPhoneNote":"/","receiverAddressNote":"昆明高新技术产业开发区马金铺高登路1676号水科技园标准工业厂房1号办公楼4层405室,2号工业厂房一层101、102、103、104-2室","addressNoNote":82429,"province":0,"city":0,"cityList":[],"area":0,"areaList":[],"paymentAmount":"101.0000","taxRate":null,"demands":[{"demandId":null,"demandParentId":null,"demandParentCode":null,"demandCode":null,"customerId":null,"customerName":null,"customerCode":1126384,"loginName":null,"realName":null,"addressNumber":null,"mobile":null,"productName":null,"productCode":null,"sellerCompanyName":null,"sellerCompanyCode":null,"paymentType":null,"receiveBankName":null,"receiveBankAccount":null,"paymentAmount":101,"productAmount":201,"payableAmount":101,"refundAmount":null,"cancelAmount":null,"discountAmount":0,"orderStatus":null,"refundStatus":null,"receiverName":null,"receiverContact":null,"receiverAddress":null,"remark":null,"revokedReason":null,"auditById":null,"auditByName":null,"auditTime":null,"auditRemark":null,"flhsStatus":null,"pushJdeStatus":null,"createTime":null,"updateTime":null,"submitTime":null,"pushJdeTime":null,"successTime":null,"auditStatus":null,"deleteSign":null,"firstOrderFlag":null,"demandItems":[{"demandSkuId":null,"demandId":null,"distributionId":null,"companyCode":"00111","demandCode":null,"demandParentId":null,"sellerCompanyId":null,"sellerCompanyName":null,"sellerCompanyCode":null,"customerCode":null,"productLineCode":"2012","productLineName":"麦迪康","propertyStr":null,"storageType":"002","suppDist":null,"productId":7438,"productName":"检查手套","productCode":"14037826","productNature":null,"brandName":null,"optionStr":"1131C 丁腈无粉 M 蓝紫色","imageUrl":"","lineNumber":null,"price":100,"rebateId":null,"originalPrice":null,"biddingDiscountTax":null,"salesDiscountTax":null,"quantity":1,"sumQuantity":null,"sendQuantity":null,"lackQuantity":null,"cancelQuantity":null,"cancelAmount":null,"refundQuantity":null,"refundAmount":null,"discountQuantity":null,"discountAmount":null,"subtotal":100,"measuringUnit":"只","auxiliaryMeasuringUnit":null,"procurementMeasuringUnit":null,"pricingMeasuringUnit":null,"materialCode":"SFTCN1131C-0100100","manufacturer":"麦迪康(马来西亚)公司 A R Medicom (M) Sdn Bhd","produceRegisterNum":"国械备20181202号","riskRank":null,"productClassify":null,"createTime":null,"updateTime":null,"deleteSign":null,"calCancelFlag":null,"refundFlag":null,"discountRate":100,"realPay":100,"promotionPrice":null,"promotionTotalPrice":0,"demandParentCode":null,"regionId":null,"regionName":null,"spitSign":null,"activityAmount":0,"couponAmount":49.75,"activityUnitAmount":0,"couponUnitAmount":null,"activityBasicId":null,"couponSgin":null,"couponSgin2":null,"returnQuantity":null,"returnAmount":null,"customerId":null,"prescription":null,"specifications":null,"lineCodeDelete":null,"sdOutStorage":null,"licenseNo":null,"demandCodes":null,"areaName":null,"agreementPriceId":null,"offerPrice":null,"orderMark":null,"totalPrice":null,"productLimitBuyList":null,"giftSign":0,"giftProductCode":null,"activityCarDataVoList":[],"orderSource":null,"receiverName":null,"receiverContact":null,"receiverAddress":null,"rebateTripId":null,"allSign":null,"salesReturn":null,"nowAmount":null,"taxSign":0,"plusMinuKey":null,"rebateRule":null,"areaPrice":null,"lockType":null,"estimatedDeliveryDate":null,"licenseInfoFeignDtos":null,"receivedQty":null,"lineNumberOrg":null,"changeSgin":null,"addSgin":null,"ptbfa1":null,"ptbfa2":null,"ptbfa3":null,"ptbfa4":null,"ptbfa5":null,"yapeiPriceId":null,"ypLinePromotion":null,"yapeiPrice":null,"companyId":6,"buyerCartId":null,"userReceiveIdx":null,"userReceiveIdx2":null,"limitNum":null,"productLimitBuyId":null,"alreadyBuyNum":null,"limitBuySign":0,"proposeNum":null,"takeEffectRange":null,"takeEffectTime":null,"endTime1":null,"groupId":355,"fsGroupId":355,"proposalQuantity":null,"proposalSign":0,"manufacturerUserNo":null,"manufacturerUserDesc":null,"manufacturerProductNo":null,"manufacturerProductDesc":null,"manufacturerUserId":null,"manufacturerProductId":null,"busProductCode":null,"paidTime":null,"customerName":null,"paymentAmount":null,"specQuantity":null,"disQuantity":null,"fulfilledQuantity":null,"fulCancelQuantity":null,"couponId":null,"couponId2":null,"limitS":null,"starts":null,"ends":null,"userId":null,"productTax":"","taxRate":0.13,"demandSplitSign":"1","hospitalHopeDate":null,"uniqueKey":null,"productType":null,"activityRuleId":null,"allowanceBeginTime":null,"allowanceEndTime":null,"sign":null,"differenceActivityUserId":null,"groupNumber":1,"groupName":"套包测试","skuGroup":{"id":null,"groupId":355,"companyCode":"00111","groupProductType":4,"createTime":null,"updateTime":null,"demandSkuId":null,"demandId":null,"dataJson":"{\\\"groupCode\\\":\\\"cpg00659551\\\",\\\"groupName\\\":\\\"套包测试\\\",\\\"groupCode1\\\":\\\"cpg00659551\\\",\\\"groupPrice\\\":201,\\\"groupProductType\\\":4,\\\"realPay\\\":201,\\\"subtotal\\\":201,\\\"quantity\\\":1,\\\"calSubFreName\\\":\\\"检查手套(1131C 丁腈无粉 M 蓝紫色)*1只+一次性使用灭菌橡胶外科手套(SFTCS1145E 7.5 无粉麻面)*1副\\\",\\\"subList\\\":[{\\\"activityUnitAmount\\\":\\\"100.0\\\",\\\"quantity\\\":1,\\\"productCode\\\":\\\"14037826\\\"},{\\\"activityUnitAmount\\\":\\\"101.0\\\",\\\"quantity\\\":1,\\\"productCode\\\":\\\"14479934\\\"}]}","lineNumber":null,"freseniusPriceId":null,"groupNumber":1,"demandSkuList":null,"demandSkuVOList":null,"groupCode":"cpg00659551","groupName":"套包测试","groupCode1":"cpg00659551","groupPrice":201,"realPay":201,"subtotal":201,"quantity":1,"calSubFreName":"检查手套(1131C 丁腈无粉 M 蓝紫色)*1只+一次性使用灭菌橡胶外科手套(SFTCS1145E 7.5 无粉麻面)*1副","subList":[{"activityUnitAmount":"100.0","quantity":1,"productCode":"14037826"},{"activityUnitAmount":"101.0","quantity":1,"productCode":"14479934"}],"_rebateType":false},"subList":null,"dataJson":null,"skuMergeSign":null,"freseniusPriceId":null,"quantityAndGroupAll":1,"booleaTime":null,"spitSgin":0,"groupSpitSign":0,"sort":0,"circleArea":null,"purchaseEntryId":null,"mustInstallDate":false,"installedDate":null,"installedDateStr":null,"demandLines":null,"subLineNumber":null,"demandSubCode":null,"propertyName":null,"propertyVal":null,"propertyNote":null,"sendManualSign":0,"activityType":0,"giftSettlementMethod":null,"giftInitQuantity":null,"packageCode":null,"giftGroupQuantity":null,"siteCompanyCode":null,"hospitalOrderType":null,"isCollectionAllocation":null,"recDifferenceQty":null,"orderStatus":null,"distributionType":null,"groupCode":"cpg00659551","groupProductType":4,"pSign":0,"backSign":0,"description":"","stockNumber":null,"priceChange":false,"rebate":false,"bol":true,"purchaseZeroProductList":[],"prePromotionPrice":null,"prepromotionTotalPrice":0,"preDiscountRate":null,"userBalance":0,"orderType":null,"rebateType":0},{"demandSkuId":null,"demandId":null,"distributionId":null,"companyCode":"00111","demandCode":null,"demandParentId":null,"sellerCompanyId":null,"sellerCompanyName":null,"sellerCompanyCode":null,"customerCode":null,"productLineCode":"2012","productLineName":"麦迪康","propertyStr":null,"storageType":"002","suppDist":null,"productId":7439,"productName":"一次性使用灭菌橡胶外科手套","productCode":"14479934","productNature":null,"brandName":null,"optionStr":"SFTCS1145E 7.5 无粉麻面","imageUrl":"https://pro-cmdc.oss-cn-beijing.aliyuncs.com/productFile/2021/04/13/bb721764-a0ca-4ff7-9d63-778803bc0c68.jpg","lineNumber":null,"price":101,"rebateId":null,"originalPrice":null,"biddingDiscountTax":null,"salesDiscountTax":null,"quantity":1,"sumQuantity":null,"sendQuantity":null,"lackQuantity":null,"cancelQuantity":null,"cancelAmount":null,"refundQuantity":null,"refundAmount":null,"discountQuantity":null,"discountAmount":null,"subtotal":101,"measuringUnit":"副","auxiliaryMeasuringUnit":null,"procurementMeasuringUnit":null,"pricingMeasuringUnit":null,"materialCode":"SFTCS1145E-0040050","manufacturer":"TG MEDICAL SDN. BHD.","produceRegisterNum":"国械注进20172661704","riskRank":null,"productClassify":null,"createTime":null,"updateTime":null,"deleteSign":null,"calCancelFlag":null,"refundFlag":null,"discountRate":100,"realPay":101,"promotionPrice":null,"promotionTotalPrice":0,"demandParentCode":null,"regionId":null,"regionName":null,"spitSign":null,"activityAmount":0,"couponAmount":50.25,"activityUnitAmount":0,"couponUnitAmount":null,"activityBasicId":null,"couponSgin":null,"couponSgin2":null,"returnQuantity":null,"returnAmount":null,"customerId":null,"prescription":null,"specifications":null,"lineCodeDelete":null,"sdOutStorage":null,"licenseNo":null,"demandCodes":null,"areaName":null,"agreementPriceId":null,"offerPrice":null,"orderMark":null,"totalPrice":null,"productLimitBuyList":null,"giftSign":0,"giftProductCode":null,"activityCarDataVoList":[],"orderSource":null,"receiverName":null,"receiverContact":null,"receiverAddress":null,"rebateTripId":null,"allSign":null,"salesReturn":null,"nowAmount":null,"taxSign":0,"plusMinuKey":null,"rebateRule":null,"areaPrice":null,"lockType":null,"estimatedDeliveryDate":null,"licenseInfoFeignDtos":null,"receivedQty":null,"lineNumberOrg":null,"changeSgin":null,"addSgin":null,"ptbfa1":null,"ptbfa2":null,"ptbfa3":null,"ptbfa4":null,"ptbfa5":null,"yapeiPriceId":null,"ypLinePromotion":null,"yapeiPrice":null,"companyId":6,"buyerCartId":null,"userReceiveIdx":null,"userReceiveIdx2":null,"limitNum":null,"productLimitBuyId":null,"alreadyBuyNum":null,"limitBuySign":0,"proposeNum":null,"takeEffectRange":null,"takeEffectTime":null,"endTime1":null,"groupId":355,"fsGroupId":355,"proposalQuantity":null,"proposalSign":0,"manufacturerUserNo":null,"manufacturerUserDesc":null,"manufacturerProductNo":null,"manufacturerProductDesc":null,"manufacturerUserId":null,"manufacturerProductId":null,"busProductCode":null,"paidTime":null,"customerName":null,"paymentAmount":null,"specQuantity":null,"disQuantity":null,"fulfilledQuantity":null,"fulCancelQuantity":null,"couponId":null,"couponId2":null,"limitS":null,"starts":null,"ends":null,"userId":null,"productTax":"","taxRate":0.13,"demandSplitSign":"1","hospitalHopeDate":null,"uniqueKey":null,"productType":null,"activityRuleId":null,"allowanceBeginTime":null,"allowanceEndTime":null,"sign":null,"differenceActivityUserId":null,"groupNumber":1,"groupName":"套包测试","skuGroup":{"id":null,"groupId":355,"companyCode":"00111","groupProductType":4,"createTime":null,"updateTime":null,"demandSkuId":null,"demandId":null,"dataJson":"{\\\"groupCode\\\":\\\"cpg00659551\\\",\\\"groupName\\\":\\\"套包测试\\\",\\\"groupCode1\\\":\\\"cpg00659551\\\",\\\"groupPrice\\\":201,\\\"groupProductType\\\":4,\\\"realPay\\\":201,\\\"subtotal\\\":201,\\\"quantity\\\":1,\\\"calSubFreName\\\":\\\"检查手套(1131C 丁腈无粉 M 蓝紫色)*1只+一次性使用灭菌橡胶外科手套(SFTCS1145E 7.5 无粉麻面)*1副\\\",\\\"subList\\\":[{\\\"activityUnitAmount\\\":\\\"100.0\\\",\\\"quantity\\\":1,\\\"productCode\\\":\\\"14037826\\\"},{\\\"activityUnitAmount\\\":\\\"101.0\\\",\\\"quantity\\\":1,\\\"productCode\\\":\\\"14479934\\\"}]}","lineNumber":null,"freseniusPriceId":null,"groupNumber":1,"demandSkuList":null,"demandSkuVOList":null,"groupCode":"cpg00659551","groupName":"套包测试","groupCode1":"cpg00659551","groupPrice":201,"realPay":201,"subtotal":201,"quantity":1,"calSubFreName":"检查手套(1131C 丁腈无粉 M 蓝紫色)*1只+一次性使用灭菌橡胶外科手套(SFTCS1145E 7.5 无粉麻面)*1副","subList":[{"activityUnitAmount":"100.0","quantity":1,"productCode":"14037826"},{"activityUnitAmount":"101.0","quantity":1,"productCode":"14479934"}],"_rebateType":false},"subList":null,"dataJson":null,"skuMergeSign":null,"freseniusPriceId":null,"quantityAndGroupAll":1,"booleaTime":null,"spitSgin":0,"groupSpitSign":0,"sort":0,"circleArea":null,"purchaseEntryId":null,"mustInstallDate":false,"installedDate":null,"installedDateStr":null,"demandLines":null,"subLineNumber":null,"demandSubCode":null,"propertyName":null,"propertyVal":null,"propertyNote":null,"sendManualSign":0,"activityType":0,"giftSettlementMethod":null,"giftInitQuantity":null,"packageCode":null,"giftGroupQuantity":null,"siteCompanyCode":null,"hospitalOrderType":null,"isCollectionAllocation":null,"recDifferenceQty":null,"orderStatus":null,"distributionType":null,"groupCode":"cpg00659551","groupProductType":4,"pSign":0,"backSign":0,"description":"","stockNumber":null,"priceChange":false,"rebate":false,"bol":false,"purchaseZeroProductList":[],"prePromotionPrice":null,"prepromotionTotalPrice":0,"preDiscountRate":null,"userBalance":0,"orderType":null,"rebateType":0}],"demandSubItems":null,"rebateDetail":null,"rebateAmountList":null,"productLineCode":"2012","productLineName":"麦迪康","auditLoginName":null,"showPurchaseNo":false,"isRebate":null,"isShowReate":null,"taxRate":0.13,"rebateType":0,"paymentAmountWholeLine":201,"discountAmountWholeLine":0,"payableAmountWholeLine":201,"discountRate":null,"singleRebateAmount":null,"isRebateEdit":null,"payCertUrl":null,"rebateAmount":null,"demandCance":null,"soAdd":null,"soCance":null,"orderReturn":null,"needCustomerConfirm":false,"measuringUnit":null,"productId":null,"version":null,"mainVersion":null,"agencyConfigId":null,"confirmSign":null,"replySign":null,"agencySign":null,"editIng":null,"editIngStr":null,"jdeType":null,"isElectronicSeal":null,"contractAgreementNo":null,"alesDepartmentNo":null,"alesDepartmentName":null,"salesPersonNo":null,"salesPersonName":null,"customerNote":null,"otherNote":null,"contractAgreementCode":null,"projectName":null,"projectCode":null,"regionId":null,"regionName":null,"productLineBindSign":null,"shipVia":null,"orderSource":null,"userBalance":null,"liquidCode":null,"shipmentTypeStr":null,"specifications":null,"pageStart":1,"pageSize":5,"changeSgin":null,"yapei":2,"companyId":6,"preemptConfig":null,"productSpec":null,"secondAuditSign":null,"secondAuditById":null,"secondAuditByName":null,"secondAuditTime":null,"secondAuditRemark":null,"secondAuditStatus":null,"rebateRule":"0","rebateControlSign":0,"rebateId":null,"preferenceType":null,"preferenceName":null,"disPrice":null,"lineNum":0,"auditStaySign":0,"fileList":null,"imageUrls":null,"total":null,"submitTimeStr":null,"updateTimeStr":null,"auditTimeStr":null,"acceptTime":null,"acceptTimeStr":null,"paidTime":null,"paidTimeStr":null,"erpHandingTime":null,"erpHandingTimeStr":null,"partShippingTime":null,"partShippingTimeStr":null,"allShippingTime":null,"allShippingTimeStr":null,"pushJdeTimeStr":null,"successTimeStr":null,"onlinePaySuccessTime":null,"onlinePaySuccessTimeStr":null,"bankTransactionSerial":null,"newIsTax":null,"countFormula":null,"countNumber":null,"noTaxRebateAmount":0,"isCollectionAllocation":0,"siteCompanyCode":null,"hospitalOrderType":null,"proofTime":null,"proofURL":null,"proofRemark":null,"proofSign":0,"customerCancelSign":null,"cancelRecords":null,"cancelCount":0,"updateNewTime":null,"updateNewTimeStr":null,"fsDedUseSign":null,"notice":null,"shareType":null,"singleRebateSign":null,"cf":false,"isPre":null,"showDemandAuditLineLabel":false,"orderType":null,"newDiscountRate":null,"oldOrderType":null,"oldNewDiscountRate":null,"pendding":null,"pushJdeStatusDemandSub":null,"circleGiftSign":0,"delay":null,"limitS":null,"starts":null,"ends":null,"completedS":null,"confirmDays":null,"remindS":null,"skuGroupList":null,"groupProductType":0,"purchaseId":null,"purchaseCode":null,"sdCancelTime":null,"sdTipSign":0,"receiverNote":null,"receiverPhoneNote":null,"receiverAddressNote":null,"flag":null,"sourceStr":null,"addressNoNote":null,"detailIsSpit":false,"spitSgin":null,"distributionType":null,"rebateValidity":null,"orderChangeType":null,"logoIcon":null,"detail":null,"changeBigType":null,"promotionType":2,"activityTotalAmount":0,"couponTotalAmount":100,"userReceiveId":null,"editSgin":null,"snSgin":null,"jdeOutAmount":null,"totalAllPaAmount":null,"diffShowSgin":0,"lineCodeDelete":null,"startTime":null,"endTime":null,"changeSign":null,"distributionId":null,"limitBuySign":0,"companyType":null,"afterSale":null,"csId":null,"sdStatusNodeParamList":null,"ypPromotionTotal":null,"acrossMainCode":null,"forceApprovedSign":0,"circleGiftContinueSgin":0,"customerCharge":null,"onlinePaySign":0,"recodeDemandSkuList":null,"mergeDemandSkuList":null,"inventoryNode":null,"customCode":null,"terminalSource":null,"potentialClientsId":null,"settlementStatus":null,"firstOrderAuditStatus":null,"confirmReceiptSign":null,"confirmReceiptTime":null,"afterSaleDays":null,"deliveryCompletedTime":null,"taxSign":0,"orderSplitSign":0,"demandRebateSkuList":null,"confirmTime":null,"customerPurchaseNo":null,"mustInstallDate":false,"secondAddressList":null,"splitOrMerge":null,"spitOrderSign":null,"edit":false,"productAmountWholeLine":201,"auditCompanyName":null,"auditCompanyNameCode":null,"ratio":null,"showMoreAttribute":false,"lastNoTaxDiscountAmount":0,"lastDiscountAmount":0,"showInfo":false,"addressConfig":2,"settementQuantity":2,"userBalancePrice":0,"isEdit":true,"discountRateOne":100,"totalPriceNum":0,"pSign":0}],"orderStatus":102,"userReceiveId":null,"userReceiveId2":null,"productAmount":201,"paymentType":0,"accountId":3,"receiveBankName":"国药集团上海医疗器械有限公司","receiveBankAccount":"36830188000041806","addressNumber":82429,"receiverName":"/","receiverContact":"/","receiverAddress":"昆明高新技术产业开发区马金铺高登路1676号水科技园标准工业厂房1号办公楼4层405室,2号工业厂房一层101、102、103、104-2室","buyerCartIds":[null],"sellerCompanyCode":"00111","companyId":6,"rebateType":0}}
+#预期结果
+checkDict31: {"demandCode": "%s"}
+
+
+#测试场景三十一:验证当套包结构发生改变时,需求单审核是否会进行拦截
+#套包核验接口
+"url32": "/order/public/submitFreseniusCheck"
+"payload32": [{"companyId":"6","customerCode":1126384,"fsGroupId":355,"groupCode":"cpg00659551","groupNumber":1,"userId":"69","sellerCompanyCode":"00111","productId":7438,"quantity":1,"groupProductType":4,"storageType":"002","price":100,"productLineCode":"2012","backSign":1,"freseniusPriceId":null,"demandCode":"16987323703568573","demandSkuId":198980},{"companyId":"6","customerCode":1126384,"fsGroupId":355,"groupCode":"cpg00659551","groupNumber":1,"userId":"69","sellerCompanyCode":"00111","productId":7439,"quantity":1,"groupProductType":4,"storageType":"002","price":101,"productLineCode":"2012","backSign":1,"freseniusPriceId":null,"demandCode":"16987323703568573","demandSkuId":198981}]
+#预期结果
+checkDict32: {"errType": 5}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/data/cmdc_login/data b/data/cmdc_login/data
new file mode 100644
index 0000000000000000000000000000000000000000..317883243a3a770a908817bda339ccf78b24f899
--- /dev/null
+++ b/data/cmdc_login/data
@@ -0,0 +1,13 @@
+# 多采商城图形验证码url
+"getVerifyCode_url": "/sso/getVerifyCode"
+# 多采商城登录地址
+"maii_login_url": "/sso/mallLogin"
+# 多采商城登录信息
+"do_username": "BJ0621"
+"do_password": "Aa123456"
+# 国药运营后台管理系统登录地址
+"do_login_url": "/sso/doLogin"
+# 国药运营后台管理系统账号信息
+"username": "Admin00111"
+"password": "Aa123456"
+
diff --git a/data/cmdc_product_list_query/data b/data/cmdc_product_list_query/data
new file mode 100644
index 0000000000000000000000000000000000000000..032a1b00e51fe9d91021583e95703553a736de6f
--- /dev/null
+++ b/data/cmdc_product_list_query/data
@@ -0,0 +1,54 @@
+#后台运营管理系统登录信息(上海公司)
+"username": "Admin00111"
+"password": "Aa123456"
+json_headers: {
+ "Content-Type": "application/json",
+ "Cmdc_access_token": "%s"
+}
+
+# 多采商城登录信息
+"username1": "BJ0621"
+"password1": "Aa123456"
+json_headers1: {
+ "Cmdc_access_token": "%s",
+ "Sourcetype": "mall"
+}
+
+
+#获取商品列表(代客下单)接口地址
+"url1": "/product/public/listQuickOrderProduct"
+"payload1": {"productCode":null,"productName":null,"materialCode":null,"specifications":null,"productLineName":null,"isGift":null,"userNo":"%s","companyCode":"00102","pageSize":10,"pageNum":1}
+#预期结果
+checkDict1: {"success":true,"code":"200","message":"OK"}
+
+
+#获取客户列表接口地址
+"url2": "/user/querySubCustomerPage"
+"payload2": {"disableSign":0,"status":3,"telephone":"","userNo":"","userName":"","customerCompanyName":"","pageSize":10,"pageStart":1,"total":0}
+#预期结果
+checkDict2: {"success":true,"code":"200","message":"OK"}
+
+
+#测试场景:登录多采商城-查询站点信息-查询站点对应的JDEcode-切换至站点-查询此站点对应的商品
+#步骤一获取站点信息
+"url10": "/cms/public/website/queryAll"
+"payload10": {}
+#步骤二站点对应的JDEcode
+"url11": "/user/public/queryJdeConfigByCode"
+"payload11": {"companyId":"%s"}
+
+#步骤三步切换站点
+"url12": "/user/mall/switchWebsite"
+"payload12": {"companyId":"%s","companyCode":"%s"}
+#步骤四步查询此站点对应的商品信息
+"url13": "/product/public/listQuickOrderProduct?productCode=&productName=&materialCode=&specifications=&productLineName=&pageSize=10&pageNum=1&total=0"
+"payload13": {"productCode":null,"productName":null,"materialCode":null,"specifications":null,"productLineName":null,"pageSize":10,"pageNum":1,"total":0}
+#预期结果
+checkDict13: {"success":true,"code":"200","message":"OK"}
+
+
+
+
+
+
+
diff --git a/data/cmdc_purchase_list/data b/data/cmdc_purchase_list/data
new file mode 100644
index 0000000000000000000000000000000000000000..2ed571ff297e0d5f8298f5891ade0112b799fab4
--- /dev/null
+++ b/data/cmdc_purchase_list/data
@@ -0,0 +1,16 @@
+#采购单查询接口
+"url": "/order/purchase/list"
+
+
+# 后台运营管理系统登录信息
+"username": "Admin00111"
+"password": "Aa123456"
+
+json_headers1: {
+ "Content-Type": "application/json",
+ "Cmdc_access_token": "%s"
+}
+"payload1": {"billNo":"","billStatusList":[],"creator":"","demandNo":"","startTime":"","endTime":"","times":null,"status":null,"pageNumber":1,"pageSize":8}
+#预期结果
+checkDict2: {"success":true,"code":"200","message":null}
+
diff --git a/data/cmdc_query_customer/data b/data/cmdc_query_customer/data
new file mode 100644
index 0000000000000000000000000000000000000000..4579fb344b24ca09b0868a2abe1a3823a3db019a
--- /dev/null
+++ b/data/cmdc_query_customer/data
@@ -0,0 +1,16 @@
+#采购单查询接口
+"url": "/user/querySubCustomerPage"
+
+
+# 后台运营管理系统登录信息
+"username": "Admin00111"
+"password": "Aa123456"
+
+json_headers1: {
+ "Content-Type": "application/json",
+ "Cmdc_access_token": "%s"
+}
+"payload1": {"disableSign":0,"status":3,"telephone":"","userNo":"","userName":"","customerCompanyName":"","pageSize":10,"pageStart":1,"total":0}
+#预期结果
+checkDict2: {"success":true,"code":"200","message":"OK"}
+
diff --git a/data/cmdc_special_fresenius_group/data b/data/cmdc_special_fresenius_group/data
new file mode 100644
index 0000000000000000000000000000000000000000..b3e8a14f9e64326e9b3ba7fffb79f7e176905468
--- /dev/null
+++ b/data/cmdc_special_fresenius_group/data
@@ -0,0 +1,320 @@
+# 多采商城登录信息
+"username": "BJ0621"
+"password": "Aa123456"
+
+#后台运营管理系统登录信息(子站点上海医疗器械有限公司)
+"username1": "Admin00111"
+"password1": "Aa123456"
+
+
+#后台管理系统headers
+json_headers: {
+ "Content-Type": "application/json",
+ "Cmdc_access_token": "%s"
+}
+
+#文件上传headers
+json_headers2: {
+ "Cmdc_access_token": "%s"
+}
+
+#多采商城headers
+json_headers1: {
+ "Cmdc_access_token": "%s",
+ "Sourcetype": "mall"
+}
+
+#测试场景一:特价单品查询
+"url1": "/order/public/querySingleProductPricePage"
+"payload1": {"groupCode":"","groupName":"","productCode":"","productInfo":"","materialCode":"","manufacturerList":[],"productLineName":"","description":"","manufacturerProductDesc":"","manufacturerProductNo":"","customerCode":"","customerName":"","manufacturerUserNo":"","manufacturerUserDesc":"","documentNo":"","groupType":1,"groupPriceStatus":null,"pageStart":null,"pageSize":null}
+"payload_1": {"groupCode":"","groupName":"","productCode":"","productInfo":"","materialCode":"","manufacturerList":[],"productLineName":"","description":"","manufacturerProductDesc":"","manufacturerProductNo":"","customerCode":"","customerName":"","manufacturerUserNo":"","manufacturerUserDesc":"","documentNo":"","groupType":1,"groupPriceStatus":"1","pageStart":1,"pageSize":8}
+#预期结果
+checkDict1: {"total":"%s"}
+
+#测试场景二:套包正价查询
+"url2": "/order/public/queryRegularFreseniusPricePageInfo"
+"payload2": {"groupCode":"","groupName":"","productCode":"","productInfo":"","materialCode":"","manufacturerList":[],"productLineName":"","description":"","manufacturerProductDesc":"","manufacturerProductNo":"","customerCode":"","customerName":"","manufacturerUserNo":"","manufacturerUserDesc":"","documentNo":"","companyCode":"","groupType":0,"status":null,"pageStart":null,"pageSize":null,"regularPriceSign":1,"groupPriceStatus":1,"isRegularPrice":1}
+#预期结果
+checkDict2: {"total":"%s"}
+
+
+#测试场景三:套包协议特价查询
+"url3": "/order/public/queryFreseniusAgreementPricePageInfo"
+"payload3": {"groupCode":"","groupName":"","productCode":"","productInfo":"","materialCode":"","manufacturerList":[],"productLineName":"","description":"","manufacturerProductDesc":"","manufacturerProductNo":"","customerCode":"","customerName":"","manufacturerUserNo":"","manufacturerUserDesc":"","documentNo":"","companyCode":"","groupType":0,"status":null,"pageStart":null,"pageSize":null}
+"payload03": {"groupCode":"","groupName":"","productCode":"","productInfo":"","materialCode":"","manufacturerList":[],"productLineName":"","description":"","manufacturerProductDesc":"","manufacturerProductNo":"","customerCode":"","customerName":"","manufacturerUserNo":"","manufacturerUserDesc":"","documentNo":"","companyCode":"","groupType":0,"status":"1","pageStart":1,"pageSize":10}
+#预期结果
+checkDict3: {"total":"%s"}
+
+
+#测试场景四:套包正价_指定客户查询
+"url4": "/order/public/queryRegularFreseniusPricePageInfo"
+"payload4": {"groupCode":"","groupName":"","productCode":"","productInfo":"","materialCode":"","manufacturerList":[],"productLineName":"","description":"","manufacturerProductDesc":"","manufacturerProductNo":"","customerCode":"","customerName":"","manufacturerUserNo":"","manufacturerUserDesc":"","documentNo":"","companyCode":"","groupType":0,"status":null,"pageStart":null,"pageSize":null,"isRegularPrice":2,"regularPriceSign":2}
+#预期结果
+checkDict4: {"total":"%s"}
+
+
+#测试场景五:套包商品的创建
+"url5": "/order/public/saveFreseniusGroup"
+"payload5": {"manufacturerGroupName":"","manufacturerGroupCode":"","groupName":"%s","products":[{"productCode":"12364265","productName":"医用检查手套","manufacturer":"麦迪康(马来西亚)公司 A R MEDICOM (M) SDN BHD","manufacturerCode":"7047412","optionStr":"LATEX POWDER FREE EXAMINATION GLOVES(无粉乳胶检查手套)(SCS861202D L)","storageCondition":"999","activityUnitAmount":null,"price":9999999.99,"measuringUnit":"只","materialCode":"SCS861202D-0100100","description":"","quantity":"%s","manufacturerProductNo":null,"manufacturerProductDesc":null,"produceRegisterNum":"国械备20190299号","productLineName":"麦迪康","productLineCode":"2012"},{"productCode":"10248778","productName":"一次性医用外科口罩","manufacturer":"美迪康医用材料(上海)有限公司","manufacturerCode":"7001612","optionStr":"绑带式","storageCondition":"999","activityUnitAmount":null,"price":9999999.99,"measuringUnit":"只","materialCode":"MEDCMK2382-0120060","description":"","quantity":"%s","manufacturerProductNo":null,"manufacturerProductDesc":null,"produceRegisterNum":"沪械注准20162640540","productLineName":"麦迪康","productLineCode":"2012"}],"productLineName":"麦迪康","status":0}
+#预期结果
+checkDict5: {"groupName":"%s"}
+
+
+#测试场景六:套包启用
+#套包启用接口
+"url6": "/order/public/batchEnableOrDisableFreseniusGroup"
+#获取商品管理套包列表接口和报文
+"group_list": "/order/public/queryFreseniusGroup"
+"group_payload": {"groupCode":"","groupName":"","productCode":"","productName":"","materialCode":"","manufacturerList":[],"productLineName":"","description":"","manufacturerProductDesc":"","manufacturerProductNo":"","companyCode":"","productInfo":"","status":"%s","groupType":0,"pageStart":null,"pageSize":null}
+#预期结果
+checkDict6: {"status":1}
+
+#测试场景七:套包停用
+#套包停用接口
+"url7": "/order/public/batchEnableOrDisableFreseniusGroup"
+#预期结果
+checkDict7: {"status":2}
+
+#测试场景八:验证是否可以启用已停用的套包
+#套包创建的报文
+"payload8": {"manufacturerGroupName":"","manufacturerGroupCode":"","groupName":"","products":[{"productCode":"14630749","productName":"3M超浓缩多酶清洗液","manufacturer":"明尼苏达矿业制造医用器材(上海)有限公司","manufacturerCode":"7000301","optionStr":"70509 5L","storageCondition":"002","activityUnitAmount":null,"price":1069.95,"measuringUnit":"桶","materialCode":"XH003853617","description":"","quantity":"%s","manufacturerProductNo":null,"manufacturerProductDesc":null,"produceRegisterNum":null,"productLineName":"3M医疗","productLineCode":"7021"},{"productCode":"14581961","productName":"爱护佳™免洗泡沫型手消毒液","manufacturer":"3M中国有限公司","manufacturerCode":"7000536","optionStr":"9252T","storageCondition":"999","activityUnitAmount":null,"price":24.65,"measuringUnit":"瓶","materialCode":"XH003814536","description":"","quantity":"%s","manufacturerProductNo":null,"manufacturerProductDesc":null,"produceRegisterNum":null,"productLineName":"3M医疗","productLineCode":"7021"}],"productLineName":"3M医疗","status":0}
+
+
+#测试场景九:套包商品管理查询条件验证
+#套包创建的报文
+"payload9": {"groupCode":"%s","groupName":"%s","productCode":"%s","productName":"","materialCode":"%s","manufacturerList":["%s"],"productLineName":"%s","description":"%s","manufacturerProductDesc":"%s","manufacturerProductNo":"%s","companyCode":"","productInfo":"%s","status":"%s","groupType":0,"pageStart":1,"pageSize":10}
+#预期结果
+checkDict9: {"groupCode":"%s"}
+
+
+
+#测试场景十:批量启用功能验证
+#按条件启用接口地址和报文
+"url10": "/order/public/importEnableOrDisable"
+"payload10": {"type":0}
+
+
+#测试场景十一:验证使用按条件启用功能,是否可以启用已经是启用状态下的套包
+#预期结果
+checkDict11: {"errList":["%s"]}
+
+
+#测试场景十二:验证使用按条件启用功能,是否可以启用已经是停用状态下的套包
+
+
+#批量新增功能_套包商品管理功能验证
+#商品列表接口地址和报文
+"product_list": "/product/public/productGroupList"
+"product_payload": {"productCode":"","productName":"","materialCode":"","specifications":"","productLineName":"麦迪康","userNo":"","companyCode":"00111","pageSize":10,"pageNum":1}
+#批量导入url
+"import_url": "/order/public/importFreseniusGroup"
+#预期结果
+checkDict12: {"success":true,"code":"200","message":"OK","data":{"success":true},"freshToken":null}
+
+#测试场景:批量停用功能验证
+#按条件启用接口地址和报文
+"payload11": {"type":1}
+
+
+#测试场景:验证套包协议特价管理列表查询条件
+#报文
+"payload13": {"groupCode":"%s","groupName":"%s","productCode":"%s","productInfo":"%s","materialCode":"%s","manufacturerList":["%s"],"productLineName":"%s","description":"%s","manufacturerProductDesc":"%s","manufacturerProductNo":"%s","customerCode":"%s","customerName":"%s","manufacturerUserNo":"%s","manufacturerUserDesc":"%s","documentNo":"%s","companyCode":"","groupType":0,"status":"%s","pageStart":1,"pageSize":8,"groupPriceStatus":"%s"}
+#预期结果
+checkDict13: {"groupCode":"%s"}
+
+
+#特价单品管理
+#测试场景:验证特价单品管理列表查询条件
+#报文
+"payload14": {"groupCode":"","groupName":"","productCode":"%s","productInfo":"%s","materialCode":"%s","manufacturerList":["%s"],"productLineName":"%s","description":"%s","manufacturerProductDesc":"%s","manufacturerProductNo":"%s","customerCode":"%s","customerName":"%s","manufacturerUserNo":"%s","manufacturerUserDesc":"%s","documentNo":"%s","groupType":1,"groupPriceStatus":"%s","pageStart":1,"pageSize":8}
+#预期结果
+checkDict14: {"productCode":"%s"}
+
+#测试场景:获取客户列表
+"customer_list_url": "/user/queryUserForControlSalesByPage"
+"customer_payload": {"customerCode":null,"customerName":null,"pageSize":10,"pageNum":1}
+
+#预期结果
+checkDict15: {"success":true,"code":"200","message":"OK"}
+
+
+
+#测试场景:获取客户列表-查询条件验证
+"payload16": {"customerCode":"%s","customerName":"%s","pageSize":10,"pageNum":1}
+#预期结果
+checkDict16: {"customerCode":"%s"}
+
+#测试场景:特价单品新增验证
+"url17": "/order/public/saveSingleProductPrice"
+#预期结果
+checkDict17: {"total": 1}
+
+
+
+#测试场景:特价单品批量启用
+#特价单品查询-停用状态
+"payload_close": {"groupCode":"","groupName":"","productCode":"","productInfo":"","materialCode":"","manufacturerList":[],"productLineName":"","description":"","manufacturerProductDesc":"","manufacturerProductNo":"","customerCode":"","customerName":"","manufacturerUserNo":"","manufacturerUserDesc":"","documentNo":"","groupType":1,"groupPriceStatus":"0","pageStart":1,"pageSize":10}
+#excel导入接口和报文
+"url18": "/order/public/importEnableOrDisableSingleProduct"
+"payload18": {"groupPriceStatus": 1}
+"payload18_0": {"groupPriceStatus": 0}
+#特价单品启用接口信息
+"url_open": "/order/public/enableOrDisableProductPrice"
+#预期结果
+checkDict18: {"groupPriceStatus": 1}
+checkDict180: {"success": False, "code": "fresenius_agreement_price", "message": "客户【1071246】商品【14184540】存在效期冲突"}
+
+#测试场景:特价单品批量停用
+#预期结果
+checkDict19: {"groupPriceStatus": 0}
+
+
+#测试场景:新老商品关系编码维护新增功能验证
+#新增接口和报文
+"url19": "/order/public/saveProductCodeMaintain"
+#预期结果
+checkDict20: {"success":true,"code":"200","message":"OK"}
+checkDict20_1: {"success":false,"code":"FRESENIUS_GROUP_ERROR","message":"本次新增组内商品编码已存在于其他组里,请核对已建立的组","data":null,"freshToken":null}
+
+
+#测试场景:新老编码组停用
+#新老商品关系编码维护列表接口地址和请求报文
+"url_product_code": "/order/public/queryProductCodeMaintainPage"
+"payload_product_code": {"groupCode":"","groupName":"","productCode":"","productInfo":"","materialCode":"","manufacturerList":[],"productLineName":"","description":"","manufacturerGroupCode":"","manufacturerGroupName":"","customerCode":"","customerName":"","manufacturerUserNo":"","manufacturerUserDesc":"","documentNo":"","groupType":2,"status":null,"pageStart":1,"pageSize":8}
+"payload_product_code_1": {"groupCode":"","groupName":"","productCode":"","productInfo":"","materialCode":"","manufacturerList":[],"productLineName":"","description":"","manufacturerGroupCode":"","manufacturerGroupName":"","customerCode":"","customerName":"","manufacturerUserNo":"","manufacturerUserDesc":"","documentNo":"","groupType":2,"status":"1","pageStart":1,"pageSize":8}
+#新老编码组停用接口
+"url20": "/order/public/enableOrDisableProductMaintain"
+#预期结果
+checkDict21: {"status":2}
+
+#测试场景:新老编码组停用
+#请求报文
+"payload22": {"groupCode":"","groupName":"","productCode":"%s","productInfo":"%s","materialCode":"%s","manufacturerList":["%s"],"productLineName":"%s","description":"%s","manufacturerGroupCode":"","manufacturerGroupName":"","customerCode":"","customerName":"","manufacturerUserNo":"","manufacturerUserDesc":"","documentNo":"","groupType":2,"status":"%s","pageStart":1,"pageSize":8}
+#预期结果
+checkDict22: {"productCode":"%s"}
+
+
+#测试场景:套包正价按条件删除
+#文件导入接口和报文
+"url23": "/order/public/importEnableOrDisablePriceStatus"
+"payload23": {"groupPriceStatus": 0, "type": 1}
+#套包正价删除接口
+"url24": "/order/public/enableOrDisablePrice"
+#预期结果
+checkDict23: {"groupPriceStatus": 0}
+
+#测试场景:套包正价单个新增和批量新增
+#查询套包信息接口和报文(维护套包正价前,需先确保该套包已存在,并且套包处于启用有效状态)
+"url25": "/order/public/queryFreseniusGroup"
+"payload25": {"groupCode":"","groupName":"","productCode":"","productInfo":"","materialCode":"","manufacturerList":[],"productLineName":"","description":"","manufacturerGroupCode":"","manufacturerGroupName":"","manufacturerProductDesc":"","manufacturerProductNo":"","groupType":0,"status":1,"groupPriceStatus":1,"pageStart":1,"pageSize":50}
+#批量导入接口信息
+"url26": "/order/public/importRegularFreseniusGroupPrice"
+
+
+#测试场景:列表查询条件验证-套包正价管理(指定客户)
+#列表获取接口信息
+"url30": "/order/public/queryRegularFreseniusPricePageInfo"
+"payload30": {"groupCode":"","groupName":"","productCode":"","productInfo":"","materialCode":"","manufacturerList":[],"productLineName":"","description":"","manufacturerProductDesc":"","manufacturerProductNo":"","customerCode":"","customerName":"","manufacturerUserNo":"","manufacturerUserDesc":"","documentNo":"","companyCode":"","groupType":0,"status":null,"pageStart":1,"pageSize":10,"isRegularPrice":2,"regularPriceSign":2}
+
+#查询条件验证请求报文
+"payload31": {"groupCode":"%s","groupName":"%s","productCode":"%s","productInfo":"%s","materialCode":"%s","manufacturerList":["%s"],"productLineName":"%s","description":"%s","manufacturerProductDesc":"%s","manufacturerProductNo":"%s","customerCode":"%s","customerName":"%s","manufacturerUserNo":"%s","manufacturerUserDesc":"%s","documentNo":"","companyCode":"","groupType":0,"status":"%s","pageStart":1,"pageSize":8,"isRegularPrice":2,"regularPriceSign":2}
+#预期结果
+checkDict31: {"groupCode": "%s"}
+
+"payload32": {"freseniusPriceId":null,"customerCode":null,"customerName":null,"isLimit":null,"isRegularPrice":null,"limitPurchase":null,"groupPrice":null,"effectiveTime":null,"expirationTime":null,"documentNo":null,"salesArea":null,"salesProvince":null,"supplementNo":null,"applicationType":null,"manufacturerUserDesc":null,"manufacturerUserNo":null,"manufacturerUserType":null,"groupPriceStatus":null,"surplusQuantity":null,"freseniusGroup":null,"id":"%d","productCode":"%s","productName":"%s","manufacturer":"%s","manufacturerCode":"%s","optionStr":"%s","activityUnitAmount":null,"price":null,"measuringUnit":"%s","materialCode":"%s","description":"","quantity":"%d","manufacturerProductNo":null,"manufacturerProductDesc":null,"produceRegisterNum":null,"storageCondition":null,"productCodeList":null,"storageType":null,"productId":null,"productNature":null,"brandName":null,"imageUrl":null,"riskRank":null,"productClassify":null,"rowspan":2,"colspan":1}
+#测试场景:套包正价管理(指定客户)单个新增功能验证
+"url31": "/order/public/saveRegularFreseniusPrice"
+
+#测试场景:单个新增验证_套包协议特价
+"url35": "/order/public/saveFreseniusAgreementPrice"
+
+#测试场景:套包协议特价停用功能验证
+#套包协议特价列表接口和报文
+"url36": "/order/public/queryFreseniusAgreementPricePageInfo"
+"payload36": {"groupCode":"","groupName":"","productCode":"","productInfo":"","materialCode":"","manufacturerList":[],"productLineName":"","description":"","manufacturerProductDesc":"","manufacturerProductNo":"","customerCode":"","customerName":"","manufacturerUserNo":"","manufacturerUserDesc":"","documentNo":"","companyCode":"","groupType":0,"status":null,"pageStart":1,"pageSize":10,"groupPriceStatus":"1"}
+#套包协议特价停用
+"url37": "/order/public/enableOrDisablePrice"
+
+
+#测试场景:获取特殊套包详情
+#获取特殊套包详情接口信息
+"url38": "/order/public/getDetailFreseniusGroup"
+"payload38": {"productCode":"10056821","companyCode":"00111"}
+#预期结果
+checkDict38: {"productCode": "10056821"}
+
+#切换站点信息
+"url_website": "/user/mall/switchWebsite"
+"payload_website": {"companyId":6,"companyCode":"00111"}
+
+
+
+#测试场景:验证特价单品商品详情页面,显示特价信息
+#获取特价单品信息
+"payload40": {"groupCode":"","groupName":"","productCode":"","productInfo":"","materialCode":"","manufacturerList":[],"productLineName":"","description":"","manufacturerProductDesc":"","manufacturerProductNo":"","customerCode":"","customerName":"","manufacturerUserNo":"","manufacturerUserDesc":"","documentNo":"特价单品验证毋动","groupType":1,"groupPriceStatus":null,"pageStart":1,"pageSize":8}
+#获取特殊套包详情接口信息
+"url41": "/order/public/getDetailFreseniusGroup"
+"payload41": {"productCode":"%s","companyCode":"%s"}
+#预期结果
+checkDict41: {"activityName":"每只特价101元,有效期2023-11-09至2031-12-31"}
+
+
+#测试场景:特价单品限购验证
+#splitGroup接口信息
+"url42": "/order/public/splitGroup"
+"payload42": {"freseniusPriceId":"%s","purchaseQuantity":6,"groupProductType":1}
+#预期结果
+checkDict42: {"purchaseQuantity":5}
+
+#测试场景:特价单品加入购物车验证以及购物车展示
+"url43": "/product/mall/addBuyerCart"
+"payload43": {"freseniusList":[{"currentCompanyId":6,"pSign":0,"productId":7438,"quantity":5,"agreementPriceId":0,"price":"101.0000","filialeCode":"00111","installedDate":null,"splitQuantity":5}],"groupProductType":1,"groupId":501,"currentCompanyId":6,"productId":7438,"pSign":0,"quantity":5,"agreementPriceId":0,"price":101,"filialeCode":"00111"}
+#预期结果
+checkDict43: {"success":true,"code":"200","message":"OK","data":"ok","freshToken":null}
+#购物车列表
+"url_buyercart": "/product/mall/queryTotalBuyerCartList"
+"payload_buyercart": {"productName":"","materialCode":"","manufacturer":"","licenseCode":"","timeSortStatus":0,"pageSize":100,"pageStart":1}
+#预期结果
+checkDict_buyercart: {"groupPrice": 101.0, "timeStr":"2023-11-09至2031-12-31", "documentNo":"特价单品验证毋动","buyCartNum": 5}
+
+#测试场景:审核节点_特价单品_限购拦截验证
+"url45": "/order/public/submitFreseniusCheck"
+"payload45": [{"companyId":"6","customerCode":1126384,"fsGroupId":501,"groupCode":"sspg00825034","groupNumber":6,"userId":"69","sellerCompanyCode":"00111","productId":7438,"quantity":6,"groupProductType":1,"storageType":"002","price":101,"productLineCode":"2012","backSign":1,"freseniusPriceId":285,"demandCode":"16995201506004617","demandSkuId":199582}]
+checkDict45: {"success":true,"code":"200","message":"OK"}
+
+
+#测试场景:特价单品_创建需求单
+"url46": "/order/public/saveAllDemandOrder"
+"payload46": {"国药集团上海医疗器械有限公司":{"datas":[{"demandId":null,"demandParentId":null,"demandParentCode":null,"demandCode":null,"customerId":null,"customerName":null,"customerCode":1126384,"loginName":null,"realName":null,"addressNumber":null,"mobile":null,"productName":null,"productCode":null,"sellerCompanyName":null,"sellerCompanyCode":null,"paymentType":null,"receiveBankName":null,"receiveBankAccount":null,"paymentAmount":"705.0000","productAmount":705,"payableAmount":705,"refundAmount":null,"cancelAmount":null,"discountAmount":0,"orderStatus":null,"refundStatus":null,"receiverName":null,"receiverContact":null,"receiverAddress":null,"remark":null,"revokedReason":null,"auditById":null,"auditByName":null,"auditTime":null,"auditRemark":null,"flhsStatus":null,"pushJdeStatus":null,"createTime":null,"updateTime":null,"submitTime":null,"pushJdeTime":null,"successTime":null,"auditStatus":null,"deleteSign":null,"firstOrderFlag":null,"demandItems":[{"maxProductNum":999999,"minProductNum":1,"addMinProductNum":1,"minProductNumSign":false,"isMultiple":false,"quantityTip":"","demandSkuId":null,"demandId":null,"distributionId":null,"companyCode":"00111","demandCode":null,"demandParentId":null,"sellerCompanyId":null,"sellerCompanyName":null,"sellerCompanyCode":null,"customerCode":null,"productLineCode":"2012","productLineName":"麦迪康","propertyStr":null,"storageType":"002","suppDist":null,"productId":7438,"productName":"检查手套","productCode":"14037826","productNature":null,"brandName":null,"optionStr":"1131C 丁腈无粉 M 蓝紫色","imageUrl":"","lineNumber":null,"price":101,"rebateId":null,"rebateDetail":null,"useMaxLimit":null,"useLimitStart":null,"useBalance":null,"originalPrice":null,"biddingDiscountTax":0,"salesDiscountTax":0,"quantity":5,"sumQuantity":null,"sendQuantity":null,"lackQuantity":null,"cancelQuantity":null,"cancelAmount":null,"refundQuantity":null,"refundAmount":null,"discountQuantity":null,"discountAmount":null,"subtotal":505,"measuringUnit":"只","auxiliaryMeasuringUnit":null,"procurementMeasuringUnit":null,"pricingMeasuringUnit":null,"materialCode":"SFTCN1131C-0100100","manufacturer":"麦迪康(马来西亚)公司 A R Medicom (M) Sdn Bhd","produceRegisterNum":"国械备20181202号","riskRank":null,"productClassify":null,"createTime":null,"updateTime":null,"deleteSign":null,"calCancelFlag":null,"refundFlag":null,"discountRate":1,"realPay":505,"promotionPrice":null,"promotionTotalPrice":0,"demandParentCode":null,"regionId":null,"regionName":null,"spitSign":null,"activityAmount":0,"couponAmount":0,"activityUnitAmount":0,"couponUnitAmount":null,"activityBasicId":null,"couponSgin":null,"couponSgin2":null,"returnQuantity":null,"returnAmount":null,"customerId":null,"prescription":null,"specifications":null,"lineCodeDelete":null,"sdOutStorage":null,"licenseNo":null,"demandCodes":null,"areaName":null,"agreementPriceId":null,"offerPrice":0,"orderMark":null,"totalPrice":null,"productLimitBuyList":null,"giftSign":0,"giftProductCode":null,"activityCarDataVoList":null,"orderSource":null,"receiverName":null,"receiverContact":null,"receiverAddress":null,"rebateTripId":null,"allSign":null,"salesReturn":null,"nowAmount":null,"taxSign":0,"plusMinuKey":null,"rebateRule":null,"areaPrice":null,"lockType":null,"estimatedDeliveryDate":null,"licenseInfoFeignDtos":null,"receivedQty":null,"rebateSign":null,"ippMiniPurchaseNum":null,"ippMultipleSign":null,"ippPurchaseMultiple":null,"ippStatus":null,"lineNumberOrg":null,"changeSgin":null,"addSgin":null,"ptbfa1":0,"ptbfa2":0,"ptbfa3":0,"ptbfa4":0,"ptbfa5":0,"yapeiPriceId":0,"ypLinePromotion":null,"yapeiPrice":null,"companyId":6,"buyerCartId":null,"userReceiveIdx":null,"userReceiveIdx2":null,"limitNum":null,"productLimitBuyId":null,"alreadyBuyNum":null,"limitBuySign":0,"proposeNum":null,"takeEffectRange":null,"takeEffectTime":null,"endTime1":null,"groupId":501,"fsGroupId":501,"proposalQuantity":null,"proposalSign":0,"manufacturerUserNo":null,"manufacturerUserDesc":null,"manufacturerProductNo":null,"manufacturerProductDesc":null,"manufacturerUserId":null,"manufacturerProductId":null,"busProductCode":null,"paidTime":null,"customerName":null,"paymentAmount":null,"specQuantity":null,"disQuantity":null,"fulfilledQuantity":null,"fulCancelQuantity":null,"couponId":null,"couponId2":null,"limitS":null,"starts":null,"ends":null,"userId":null,"productTax":"","taxRate":0.13,"demandSplitSign":"1","hospitalHopeDate":null,"uniqueKey":null,"productType":null,"activityRuleId":null,"allowanceBeginTime":null,"allowanceEndTime":null,"sign":null,"differenceActivityUserId":null,"groupNumber":5,"groupName":null,"skuGroup":{"id":null,"groupId":501,"companyCode":"00111","groupProductType":1,"createTime":null,"updateTime":null,"demandSkuId":null,"demandId":null,"dataJson":"{\\\"surplusQuantity\\\":5,\\\"groupCode\\\":\\\"sspg00825034\\\",\\\"groupCode1\\\":\\\"sspg00825034\\\",\\\"groupPrice\\\":101,\\\"groupProductType\\\":1,\\\"limitPurchase\\\":5,\\\"isLimit\\\":1,\\\"documentNo\\\":\\\"特价单品验证毋动\\\",\\\"realPay\\\":505,\\\"subtotal\\\":505,\\\"timeStr\\\":\\\"2023-11-09至2031-12-31\\\",\\\"quantity\\\":5,\\\"calSubFreName\\\":\\\"检查手套(1131C 丁腈无粉 M 蓝紫色)*1只\\\",\\\"subList\\\":[{\\\"activityUnitAmount\\\":\\\"101.0000\\\",\\\"quantity\\\":1,\\\"productCode\\\":\\\"14037826\\\"}],\\\"oldObjArr\\\":[{\\\"activityUnitAmount\\\":\\\"101.0000\\\",\\\"quantity\\\":1,\\\"productCode\\\":\\\"14037826\\\"}]}","lineNumber":null,"freseniusPriceId":285,"groupNumber":5,"demandSkuList":null,"demandSkuVOList":null,"surplusQuantity":5,"groupCode":"sspg00825034","groupCode1":"sspg00825034","groupPrice":101,"limitPurchase":5,"isLimit":1,"documentNo":"特价单品验证毋动","realPay":505,"subtotal":505,"timeStr":"2023-11-09至2031-12-31","quantity":5,"calSubFreName":"检查手套(1131C 丁腈无粉 M 蓝紫色)*1只","subList":[{"activityUnitAmount":"101.0000","quantity":1,"productCode":"14037826"}],"oldObjArr":[{"activityUnitAmount":"101.0000","quantity":1,"productCode":"14037826"}],"_rebateType":false},"subList":null,"dataJson":null,"skuMergeSign":null,"freseniusPriceId":285,"quantityAndGroupAll":1,"booleaTime":1,"spitSgin":0,"groupSpitSign":0,"sort":2,"circleArea":null,"purchaseEntryId":null,"mustInstallDate":false,"installedDate":null,"installedDateStr":null,"demandLines":null,"subLineNumber":null,"demandSubCode":null,"propertyName":null,"propertyVal":null,"propertyNote":null,"sendManualSign":0,"activityType":0,"giftSettlementMethod":null,"giftInitQuantity":null,"packageCode":null,"giftGroupQuantity":null,"siteCompanyCode":null,"hospitalOrderType":null,"isCollectionAllocation":null,"recDifferenceQty":null,"orderStatus":null,"distributionType":null,"groupCode":"sspg00825034","groupProductType":1,"pSign":0,"backSign":0,"description":"","stockNumber":null,"priceChange":false,"rebate":false,"giftList":[],"bol":true,"prePromotionPrice":null,"prepromotionTotalPrice":0,"preDiscountRate":null,"userBalance":0},{"maxProductNum":999999,"minProductNum":1,"addMinProductNum":1,"minProductNumSign":false,"isMultiple":false,"quantityTip":"","demandSkuId":null,"demandId":null,"distributionId":null,"companyCode":"00111","demandCode":null,"demandParentId":null,"sellerCompanyId":null,"sellerCompanyName":null,"sellerCompanyCode":null,"customerCode":null,"productLineCode":"2012","productLineName":"麦迪康","propertyStr":null,"storageType":"002","suppDist":null,"productId":7438,"productName":"检查手套","productCode":"14037826","productNature":null,"brandName":null,"optionStr":"1131C 丁腈无粉 M 蓝紫色","imageUrl":null,"lineNumber":null,"price":100,"rebateId":null,"rebateDetail":null,"useMaxLimit":null,"useLimitStart":null,"useBalance":null,"originalPrice":null,"biddingDiscountTax":null,"salesDiscountTax":null,"quantity":2,"sumQuantity":null,"sendQuantity":null,"lackQuantity":null,"cancelQuantity":null,"cancelAmount":null,"refundQuantity":null,"refundAmount":null,"discountQuantity":null,"discountAmount":null,"subtotal":200,"measuringUnit":"只","auxiliaryMeasuringUnit":null,"procurementMeasuringUnit":null,"pricingMeasuringUnit":null,"materialCode":"SFTCN1131C-0100100","manufacturer":"麦迪康(马来西亚)公司 A R Medicom (M) Sdn Bhd","produceRegisterNum":null,"riskRank":null,"productClassify":null,"createTime":null,"updateTime":null,"deleteSign":null,"calCancelFlag":null,"refundFlag":null,"discountRate":1,"realPay":200,"promotionPrice":null,"promotionTotalPrice":0,"demandParentCode":null,"regionId":null,"regionName":null,"spitSign":null,"activityAmount":0,"couponAmount":0,"activityUnitAmount":0,"couponUnitAmount":null,"activityBasicId":null,"couponSgin":null,"couponSgin2":null,"returnQuantity":null,"returnAmount":null,"customerId":null,"prescription":null,"specifications":"1131C 丁腈无粉 M 蓝紫色","lineCodeDelete":null,"sdOutStorage":null,"licenseNo":null,"demandCodes":null,"areaName":null,"agreementPriceId":null,"offerPrice":null,"orderMark":null,"totalPrice":null,"productLimitBuyList":null,"giftSign":0,"giftProductCode":null,"activityCarDataVoList":null,"orderSource":null,"receiverName":null,"receiverContact":null,"receiverAddress":null,"rebateTripId":null,"allSign":null,"salesReturn":null,"nowAmount":null,"taxSign":0,"plusMinuKey":null,"rebateRule":null,"areaPrice":100,"lockType":null,"estimatedDeliveryDate":null,"licenseInfoFeignDtos":null,"receivedQty":null,"rebateSign":null,"ippMiniPurchaseNum":null,"ippMultipleSign":null,"ippPurchaseMultiple":null,"ippStatus":null,"lineNumberOrg":null,"changeSgin":null,"addSgin":null,"ptbfa1":null,"ptbfa2":null,"ptbfa3":null,"ptbfa4":null,"ptbfa5":null,"yapeiPriceId":null,"ypLinePromotion":null,"yapeiPrice":null,"companyId":null,"buyerCartId":null,"userReceiveIdx":null,"userReceiveIdx2":null,"limitNum":null,"productLimitBuyId":null,"alreadyBuyNum":null,"limitBuySign":0,"proposeNum":null,"takeEffectRange":null,"takeEffectTime":null,"endTime1":null,"groupId":null,"fsGroupId":null,"proposalQuantity":null,"proposalSign":0,"manufacturerUserNo":null,"manufacturerUserDesc":null,"manufacturerProductNo":null,"manufacturerProductDesc":null,"manufacturerUserId":null,"manufacturerProductId":null,"busProductCode":null,"paidTime":null,"customerName":null,"paymentAmount":null,"specQuantity":null,"disQuantity":null,"fulfilledQuantity":null,"fulCancelQuantity":null,"couponId":null,"couponId2":null,"limitS":null,"starts":null,"ends":null,"userId":null,"productTax":"","taxRate":0.13,"demandSplitSign":"1","hospitalHopeDate":null,"uniqueKey":null,"productType":null,"activityRuleId":null,"allowanceBeginTime":null,"allowanceEndTime":null,"sign":null,"differenceActivityUserId":null,"groupNumber":null,"groupName":null,"skuGroup":null,"subList":null,"dataJson":null,"skuMergeSign":null,"freseniusPriceId":null,"quantityAndGroupAll":null,"booleaTime":null,"spitSgin":0,"groupSpitSign":0,"sort":0,"circleArea":null,"purchaseEntryId":null,"mustInstallDate":false,"installedDate":null,"installedDateStr":null,"demandLines":null,"subLineNumber":null,"demandSubCode":null,"propertyName":null,"propertyVal":null,"propertyNote":null,"sendManualSign":0,"activityType":0,"giftSettlementMethod":null,"giftInitQuantity":null,"packageCode":null,"giftGroupQuantity":null,"siteCompanyCode":null,"hospitalOrderType":null,"isCollectionAllocation":null,"recDifferenceQty":null,"orderStatus":null,"distributionType":null,"groupCode":null,"groupProductType":null,"pSign":0,"backSign":0,"description":"","stockNumber":null,"priceChange":false,"rebate":false,"giftList":[],"purchaseZeroProductList":[],"prePromotionPrice":null,"prepromotionTotalPrice":0,"preDiscountRate":null,"userBalance":0}],"expireDemandSkus":null,"demandSubItems":null,"rebateDetail":null,"rebateAmountList":null,"productLineCode":"2012","productLineName":"麦迪康","auditLoginName":null,"showPurchaseNo":false,"isRebate":null,"isShowReate":null,"taxRate":0.13,"rebateType":0,"paymentAmountWholeLine":705,"discountAmountWholeLine":0,"payableAmountWholeLine":705,"discountRate":null,"singleRebateAmount":null,"isRebateEdit":null,"payCertUrl":null,"rebateAmount":null,"demandCance":null,"soAdd":null,"soCance":null,"orderReturn":null,"needCustomerConfirm":false,"measuringUnit":null,"productId":null,"version":null,"mainVersion":null,"agencyConfigId":null,"confirmSign":null,"replySign":null,"agencySign":null,"editIng":null,"editIngStr":null,"jdeType":null,"isElectronicSeal":null,"contractAgreementNo":null,"alesDepartmentNo":null,"alesDepartmentName":null,"salesPersonNo":null,"salesPersonName":null,"customerNote":null,"otherNote":null,"contractAgreementCode":null,"projectName":null,"projectCode":null,"regionId":null,"regionName":null,"productLineBindSign":null,"shipVia":null,"orderSource":null,"userBalance":null,"liquidCode":null,"shipmentTypeStr":null,"specifications":null,"pageStart":1,"pageSize":5,"changeSgin":null,"yapei":2,"companyId":6,"preemptConfig":null,"productSpec":null,"secondAuditSign":null,"secondAuditById":null,"secondAuditByName":null,"secondAuditTime":null,"secondAuditRemark":null,"secondAuditStatus":null,"rebateRule":"0","rebateControlSign":0,"rebateId":null,"preferenceType":null,"preferenceName":null,"disPrice":null,"lineNum":0,"auditStaySign":0,"fileList":null,"imageUrls":null,"total":null,"submitTimeStr":null,"updateTimeStr":null,"auditTimeStr":null,"acceptTime":null,"acceptTimeStr":null,"paidTime":null,"paidTimeStr":null,"erpHandingTime":null,"erpHandingTimeStr":null,"partShippingTime":null,"partShippingTimeStr":null,"allShippingTime":null,"allShippingTimeStr":null,"pushJdeTimeStr":null,"successTimeStr":null,"onlinePaySuccessTime":null,"onlinePaySuccessTimeStr":null,"bankTransactionSerial":null,"newIsTax":null,"countFormula":null,"countNumber":null,"noTaxRebateAmount":0,"isCollectionAllocation":0,"siteCompanyCode":null,"hospitalOrderType":null,"proofTime":null,"proofURL":null,"proofRemark":null,"proofSign":0,"customerCancelSign":null,"cancelRecords":null,"cancelCount":0,"updateNewTime":null,"updateNewTimeStr":null,"fsDedUseSign":null,"notice":null,"shareType":null,"singleRebateSign":null,"cf":false,"isPre":null,"showDemandAuditLineLabel":false,"orderType":null,"newDiscountRate":null,"oldOrderType":null,"oldNewDiscountRate":null,"pendding":null,"modifySign":null,"refuseType":null,"groupChangeSign":null,"custModify":null,"pushJdeStatusDemandSub":null,"circleGiftSign":0,"delay":null,"limitS":null,"starts":null,"ends":null,"completedS":null,"confirmDays":null,"remindS":null,"skuGroupList":null,"groupProductType":0,"purchaseId":null,"purchaseCode":null,"sdCancelTime":null,"sdTipSign":0,"receiverNote":null,"receiverPhoneNote":null,"receiverAddressNote":null,"flag":null,"sourceStr":null,"addressNoNote":null,"detailIsSpit":false,"spitSgin":null,"distributionType":null,"rebateValidity":null,"orderChangeType":null,"logoIcon":null,"detail":null,"changeBigType":null,"promotionType":1,"activityTotalAmount":0,"couponTotalAmount":0,"userReceiveId":null,"editSgin":null,"snSgin":null,"jdeOutAmount":null,"totalAllPaAmount":null,"diffShowSgin":0,"lineCodeDelete":null,"startTime":null,"endTime":null,"changeSign":null,"distributionId":null,"limitBuySign":0,"companyType":null,"afterSale":null,"csId":null,"sdStatusNodeParamList":null,"ypPromotionTotal":null,"acrossMainCode":null,"forceApprovedSign":0,"circleGiftContinueSgin":0,"customerCharge":null,"onlinePaySign":0,"recodeDemandSkuList":null,"mergeDemandSkuList":null,"inventoryNode":null,"customCode":null,"terminalSource":null,"potentialClientsId":null,"settlementStatus":null,"firstOrderAuditStatus":null,"confirmReceiptSign":null,"confirmReceiptTime":null,"afterSaleDays":null,"deliveryCompletedTime":null,"taxSign":0,"orderSplitSign":0,"demandRebateSkuList":null,"confirmTime":null,"customerPurchaseNo":null,"mustInstallDate":false,"secondAddressList":null,"splitOrMerge":null,"spitOrderSign":null,"productAmountWholeLine":705,"edit":false,"auditCompanyName":null,"auditCompanyNameCode":null,"editProductListFlag":false,"ratio":null,"showMoreAttribute":false,"lastNoTaxDiscountAmount":0,"lastDiscountAmount":0,"isExpire":false,"settementQuantity":7,"userBalancePrice":0,"isEdit":true,"discountRateOne":100,"_rebateType":false,"showInfo":false,"addressConfig":2}],"addressConfig":2,"openPreTaxAmount":0,"remark":null,"receiverPhoneNote":"/","promotionOrRebate":1,"promotionType":1,"productLineCodes":["2012"],"addressIsCommon":true,"showChangePromotionOrRebate":false,"couponTotalAmount":0,"activityTotalAmount":0,"totalQuantity":7,"totalPrice":705,"discountAmount":0,"demandItems":[{"maxProductNum":999999,"minProductNum":1,"addMinProductNum":1,"minProductNumSign":false,"isMultiple":false,"quantityTip":"","demandSkuId":null,"demandId":null,"distributionId":null,"companyCode":"00111","demandCode":null,"demandParentId":null,"sellerCompanyId":null,"sellerCompanyName":null,"sellerCompanyCode":null,"customerCode":null,"productLineCode":"2012","productLineName":"麦迪康","propertyStr":null,"storageType":"002","suppDist":null,"productId":7438,"productName":"检查手套","productCode":"14037826","productNature":null,"brandName":null,"optionStr":"1131C 丁腈无粉 M 蓝紫色","imageUrl":"","lineNumber":null,"price":101,"rebateId":null,"rebateDetail":null,"useMaxLimit":null,"useLimitStart":null,"useBalance":null,"originalPrice":null,"biddingDiscountTax":0,"salesDiscountTax":0,"quantity":5,"sumQuantity":null,"sendQuantity":null,"lackQuantity":null,"cancelQuantity":null,"cancelAmount":null,"refundQuantity":null,"refundAmount":null,"discountQuantity":null,"discountAmount":null,"subtotal":505,"measuringUnit":"只","auxiliaryMeasuringUnit":null,"procurementMeasuringUnit":null,"pricingMeasuringUnit":null,"materialCode":"SFTCN1131C-0100100","manufacturer":"麦迪康(马来西亚)公司 A R Medicom (M) Sdn Bhd","produceRegisterNum":"国械备20181202号","riskRank":null,"productClassify":null,"createTime":null,"updateTime":null,"deleteSign":null,"calCancelFlag":null,"refundFlag":null,"discountRate":1,"realPay":505,"promotionPrice":null,"promotionTotalPrice":0,"demandParentCode":null,"regionId":null,"regionName":null,"spitSign":null,"activityAmount":0,"couponAmount":0,"activityUnitAmount":0,"couponUnitAmount":null,"activityBasicId":null,"couponSgin":null,"couponSgin2":null,"returnQuantity":null,"returnAmount":null,"customerId":null,"prescription":null,"specifications":null,"lineCodeDelete":null,"sdOutStorage":null,"licenseNo":null,"demandCodes":null,"areaName":null,"agreementPriceId":null,"offerPrice":0,"orderMark":null,"totalPrice":null,"productLimitBuyList":null,"giftSign":0,"giftProductCode":null,"activityCarDataVoList":null,"orderSource":null,"receiverName":null,"receiverContact":null,"receiverAddress":null,"rebateTripId":null,"allSign":null,"salesReturn":null,"nowAmount":null,"taxSign":0,"plusMinuKey":null,"rebateRule":null,"areaPrice":null,"lockType":null,"estimatedDeliveryDate":null,"licenseInfoFeignDtos":null,"receivedQty":null,"rebateSign":null,"ippMiniPurchaseNum":null,"ippMultipleSign":null,"ippPurchaseMultiple":null,"ippStatus":null,"lineNumberOrg":null,"changeSgin":null,"addSgin":null,"ptbfa1":0,"ptbfa2":0,"ptbfa3":0,"ptbfa4":0,"ptbfa5":0,"yapeiPriceId":0,"ypLinePromotion":null,"yapeiPrice":null,"companyId":6,"buyerCartId":null,"userReceiveIdx":null,"userReceiveIdx2":null,"limitNum":null,"productLimitBuyId":null,"alreadyBuyNum":null,"limitBuySign":0,"proposeNum":null,"takeEffectRange":null,"takeEffectTime":null,"endTime1":null,"groupId":501,"fsGroupId":501,"proposalQuantity":null,"proposalSign":0,"manufacturerUserNo":null,"manufacturerUserDesc":null,"manufacturerProductNo":null,"manufacturerProductDesc":null,"manufacturerUserId":null,"manufacturerProductId":null,"busProductCode":null,"paidTime":null,"customerName":null,"paymentAmount":null,"specQuantity":null,"disQuantity":null,"fulfilledQuantity":null,"fulCancelQuantity":null,"couponId":null,"couponId2":null,"limitS":null,"starts":null,"ends":null,"userId":null,"productTax":"","taxRate":0.13,"demandSplitSign":"1","hospitalHopeDate":null,"uniqueKey":null,"productType":null,"activityRuleId":null,"allowanceBeginTime":null,"allowanceEndTime":null,"sign":null,"differenceActivityUserId":null,"groupNumber":5,"groupName":null,"skuGroup":{"id":null,"groupId":501,"companyCode":"00111","groupProductType":1,"createTime":null,"updateTime":null,"demandSkuId":null,"demandId":null,"dataJson":"{\\\"surplusQuantity\\\":5,\\\"groupCode\\\":\\\"sspg00825034\\\",\\\"groupCode1\\\":\\\"sspg00825034\\\",\\\"groupPrice\\\":101,\\\"groupProductType\\\":1,\\\"limitPurchase\\\":5,\\\"isLimit\\\":1,\\\"documentNo\\\":\\\"特价单品验证毋动\\\",\\\"realPay\\\":505,\\\"subtotal\\\":505,\\\"timeStr\\\":\\\"2023-11-09至2031-12-31\\\",\\\"quantity\\\":5,\\\"calSubFreName\\\":\\\"检查手套(1131C 丁腈无粉 M 蓝紫色)*1只\\\",\\\"subList\\\":[{\\\"activityUnitAmount\\\":\\\"101.0000\\\",\\\"quantity\\\":1,\\\"productCode\\\":\\\"14037826\\\"}],\\\"oldObjArr\\\":[{\\\"activityUnitAmount\\\":\\\"101.0000\\\",\\\"quantity\\\":1,\\\"productCode\\\":\\\"14037826\\\"}]}","lineNumber":null,"freseniusPriceId":285,"groupNumber":5,"demandSkuList":null,"demandSkuVOList":null,"surplusQuantity":5,"groupCode":"sspg00825034","groupCode1":"sspg00825034","groupPrice":101,"limitPurchase":5,"isLimit":1,"documentNo":"特价单品验证毋动","realPay":505,"subtotal":505,"timeStr":"2023-11-09至2031-12-31","quantity":5,"calSubFreName":"检查手套(1131C 丁腈无粉 M 蓝紫色)*1只","subList":[{"activityUnitAmount":"101.0000","quantity":1,"productCode":"14037826"}],"oldObjArr":[{"activityUnitAmount":"101.0000","quantity":1,"productCode":"14037826"}],"_rebateType":false},"subList":null,"dataJson":null,"skuMergeSign":null,"freseniusPriceId":285,"quantityAndGroupAll":1,"booleaTime":1,"spitSgin":0,"groupSpitSign":0,"sort":2,"circleArea":null,"purchaseEntryId":null,"mustInstallDate":false,"installedDate":null,"installedDateStr":null,"demandLines":null,"subLineNumber":null,"demandSubCode":null,"propertyName":null,"propertyVal":null,"propertyNote":null,"sendManualSign":0,"activityType":0,"giftSettlementMethod":null,"giftInitQuantity":null,"packageCode":null,"giftGroupQuantity":null,"siteCompanyCode":null,"hospitalOrderType":null,"isCollectionAllocation":null,"recDifferenceQty":null,"orderStatus":null,"distributionType":null,"groupCode":"sspg00825034","groupProductType":1,"pSign":0,"backSign":0,"description":"","stockNumber":null,"priceChange":false,"rebate":false,"giftList":[],"bol":true,"prePromotionPrice":null,"prepromotionTotalPrice":0,"preDiscountRate":null,"userBalance":0},{"maxProductNum":999999,"minProductNum":1,"addMinProductNum":1,"minProductNumSign":false,"isMultiple":false,"quantityTip":"","demandSkuId":null,"demandId":null,"distributionId":null,"companyCode":"00111","demandCode":null,"demandParentId":null,"sellerCompanyId":null,"sellerCompanyName":null,"sellerCompanyCode":null,"customerCode":null,"productLineCode":"2012","productLineName":"麦迪康","propertyStr":null,"storageType":"002","suppDist":null,"productId":7438,"productName":"检查手套","productCode":"14037826","productNature":null,"brandName":null,"optionStr":"1131C 丁腈无粉 M 蓝紫色","imageUrl":null,"lineNumber":null,"price":100,"rebateId":null,"rebateDetail":null,"useMaxLimit":null,"useLimitStart":null,"useBalance":null,"originalPrice":null,"biddingDiscountTax":null,"salesDiscountTax":null,"quantity":2,"sumQuantity":null,"sendQuantity":null,"lackQuantity":null,"cancelQuantity":null,"cancelAmount":null,"refundQuantity":null,"refundAmount":null,"discountQuantity":null,"discountAmount":null,"subtotal":200,"measuringUnit":"只","auxiliaryMeasuringUnit":null,"procurementMeasuringUnit":null,"pricingMeasuringUnit":null,"materialCode":"SFTCN1131C-0100100","manufacturer":"麦迪康(马来西亚)公司 A R Medicom (M) Sdn Bhd","produceRegisterNum":null,"riskRank":null,"productClassify":null,"createTime":null,"updateTime":null,"deleteSign":null,"calCancelFlag":null,"refundFlag":null,"discountRate":1,"realPay":200,"promotionPrice":null,"promotionTotalPrice":0,"demandParentCode":null,"regionId":null,"regionName":null,"spitSign":null,"activityAmount":0,"couponAmount":0,"activityUnitAmount":0,"couponUnitAmount":null,"activityBasicId":null,"couponSgin":null,"couponSgin2":null,"returnQuantity":null,"returnAmount":null,"customerId":null,"prescription":null,"specifications":"1131C 丁腈无粉 M 蓝紫色","lineCodeDelete":null,"sdOutStorage":null,"licenseNo":null,"demandCodes":null,"areaName":null,"agreementPriceId":null,"offerPrice":null,"orderMark":null,"totalPrice":null,"productLimitBuyList":null,"giftSign":0,"giftProductCode":null,"activityCarDataVoList":null,"orderSource":null,"receiverName":null,"receiverContact":null,"receiverAddress":null,"rebateTripId":null,"allSign":null,"salesReturn":null,"nowAmount":null,"taxSign":0,"plusMinuKey":null,"rebateRule":null,"areaPrice":100,"lockType":null,"estimatedDeliveryDate":null,"licenseInfoFeignDtos":null,"receivedQty":null,"rebateSign":null,"ippMiniPurchaseNum":null,"ippMultipleSign":null,"ippPurchaseMultiple":null,"ippStatus":null,"lineNumberOrg":null,"changeSgin":null,"addSgin":null,"ptbfa1":null,"ptbfa2":null,"ptbfa3":null,"ptbfa4":null,"ptbfa5":null,"yapeiPriceId":null,"ypLinePromotion":null,"yapeiPrice":null,"companyId":null,"buyerCartId":null,"userReceiveIdx":null,"userReceiveIdx2":null,"limitNum":null,"productLimitBuyId":null,"alreadyBuyNum":null,"limitBuySign":0,"proposeNum":null,"takeEffectRange":null,"takeEffectTime":null,"endTime1":null,"groupId":null,"fsGroupId":null,"proposalQuantity":null,"proposalSign":0,"manufacturerUserNo":null,"manufacturerUserDesc":null,"manufacturerProductNo":null,"manufacturerProductDesc":null,"manufacturerUserId":null,"manufacturerProductId":null,"busProductCode":null,"paidTime":null,"customerName":null,"paymentAmount":null,"specQuantity":null,"disQuantity":null,"fulfilledQuantity":null,"fulCancelQuantity":null,"couponId":null,"couponId2":null,"limitS":null,"starts":null,"ends":null,"userId":null,"productTax":"","taxRate":0.13,"demandSplitSign":"1","hospitalHopeDate":null,"uniqueKey":null,"productType":null,"activityRuleId":null,"allowanceBeginTime":null,"allowanceEndTime":null,"sign":null,"differenceActivityUserId":null,"groupNumber":null,"groupName":null,"skuGroup":null,"subList":null,"dataJson":null,"skuMergeSign":null,"freseniusPriceId":null,"quantityAndGroupAll":null,"booleaTime":null,"spitSgin":0,"groupSpitSign":0,"sort":0,"circleArea":null,"purchaseEntryId":null,"mustInstallDate":false,"installedDate":null,"installedDateStr":null,"demandLines":null,"subLineNumber":null,"demandSubCode":null,"propertyName":null,"propertyVal":null,"propertyNote":null,"sendManualSign":0,"activityType":0,"giftSettlementMethod":null,"giftInitQuantity":null,"packageCode":null,"giftGroupQuantity":null,"siteCompanyCode":null,"hospitalOrderType":null,"isCollectionAllocation":null,"recDifferenceQty":null,"orderStatus":null,"distributionType":null,"groupCode":null,"groupProductType":null,"pSign":0,"backSign":0,"description":"","stockNumber":null,"priceChange":false,"rebate":false,"giftList":[],"purchaseZeroProductList":[],"prePromotionPrice":null,"prepromotionTotalPrice":0,"preDiscountRate":null,"userBalance":0}],"productPrice":"705.0000","fileList":[],"showInfo":false,"pageStart":1,"pageSize":5,"receiveInfo":[{"addressId":27568,"addressNo":82429,"addressName":"昆明高新技术产业开发区马金铺高登路1676号水科技园标准工业厂房1号办公楼4层405室,2号工业厂房一层101、102、103、104-2室","provinceCode":null,"userId":null,"companyId":null,"receiverName":"/","address":"","isDefault":1,"type":null,"postcode":null,"mobile":"/","updateDate":null,"updateTime":null,"flag":null,"deleteSign":null,"province":null,"city":null,"area":null,"dateTime":null,"provinceStr":null,"cityStr":null,"areaStr":null,"isJde":0}],"defaultBankInfo":{"accountId":3,"companyId":6,"companyName":"国药集团上海医疗器械有限公司","registeredAddress":"上海市宝山区江杨南路880号厂房7幢V008","bank":"中国光大银行上海彭浦支行","accountName":"国药集团上海医疗器械有限公司","accountNumber":"36830188000041806","disableSign":0,"deleteSign":0,"createTime":"2021-05-06 10:46:15","updateTime":"2021-05-06 10:46:15","createBy":2795,"realName":"国药集团上海医疗器械有限公司admin"},"addressList":[{"addressId":27568,"addressNo":82429,"addressName":null,"provinceCode":null,"userId":null,"companyId":6,"receiverName":"/","address":"昆明高新技术产业开发区马金铺高登路1676号水科技园标准工业厂房1号办公楼4层405室,2号工业厂房一层101、102、103、104-2室","isDefault":1,"type":3,"postcode":null,"mobile":"/","updateDate":120035,"updateTime":93623,"flag":null,"deleteSign":null,"province":0,"city":0,"area":0,"dateTime":null,"provinceStr":"","cityStr":"","areaStr":"","isJde":0,"cityList":[],"areaList":[]}],"selecteAddresId":27568,"receiverNote":"/","receiverAddressNote":"昆明高新技术产业开发区马金铺高登路1676号水科技园标准工业厂房1号办公楼4层405室,2号工业厂房一层101、102、103、104-2室","addressNoNote":82429,"province":0,"city":0,"cityList":[],"area":0,"areaList":[],"paymentAmount":"705.0000","taxRate":null,"draftDemandId":null,"demands":[{"demandId":null,"demandParentId":null,"demandParentCode":null,"demandCode":null,"customerId":null,"customerName":null,"customerCode":1126384,"loginName":null,"realName":null,"addressNumber":null,"mobile":null,"productName":null,"productCode":null,"sellerCompanyName":null,"sellerCompanyCode":null,"paymentType":null,"receiveBankName":null,"receiveBankAccount":null,"paymentAmount":"705.0000","productAmount":705,"payableAmount":705,"refundAmount":null,"cancelAmount":null,"discountAmount":0,"orderStatus":null,"refundStatus":null,"receiverName":null,"receiverContact":null,"receiverAddress":null,"remark":null,"revokedReason":null,"auditById":null,"auditByName":null,"auditTime":null,"auditRemark":null,"flhsStatus":null,"pushJdeStatus":null,"createTime":null,"updateTime":null,"submitTime":null,"pushJdeTime":null,"successTime":null,"auditStatus":null,"deleteSign":null,"firstOrderFlag":null,"demandItems":[{"maxProductNum":999999,"minProductNum":1,"addMinProductNum":1,"minProductNumSign":false,"isMultiple":false,"quantityTip":"","demandSkuId":null,"demandId":null,"distributionId":null,"companyCode":"00111","demandCode":null,"demandParentId":null,"sellerCompanyId":null,"sellerCompanyName":null,"sellerCompanyCode":null,"customerCode":null,"productLineCode":"2012","productLineName":"麦迪康","propertyStr":null,"storageType":"002","suppDist":null,"productId":7438,"productName":"检查手套","productCode":"14037826","productNature":null,"brandName":null,"optionStr":"1131C 丁腈无粉 M 蓝紫色","imageUrl":"","lineNumber":null,"price":101,"rebateId":null,"rebateDetail":null,"useMaxLimit":null,"useLimitStart":null,"useBalance":null,"originalPrice":null,"biddingDiscountTax":0,"salesDiscountTax":0,"quantity":5,"sumQuantity":null,"sendQuantity":null,"lackQuantity":null,"cancelQuantity":null,"cancelAmount":null,"refundQuantity":null,"refundAmount":null,"discountQuantity":null,"discountAmount":null,"subtotal":505,"measuringUnit":"只","auxiliaryMeasuringUnit":null,"procurementMeasuringUnit":null,"pricingMeasuringUnit":null,"materialCode":"SFTCN1131C-0100100","manufacturer":"麦迪康(马来西亚)公司 A R Medicom (M) Sdn Bhd","produceRegisterNum":"国械备20181202号","riskRank":null,"productClassify":null,"createTime":null,"updateTime":null,"deleteSign":null,"calCancelFlag":null,"refundFlag":null,"discountRate":1,"realPay":505,"promotionPrice":null,"promotionTotalPrice":0,"demandParentCode":null,"regionId":null,"regionName":null,"spitSign":null,"activityAmount":0,"couponAmount":0,"activityUnitAmount":0,"couponUnitAmount":null,"activityBasicId":null,"couponSgin":null,"couponSgin2":null,"returnQuantity":null,"returnAmount":null,"customerId":null,"prescription":null,"specifications":null,"lineCodeDelete":null,"sdOutStorage":null,"licenseNo":null,"demandCodes":null,"areaName":null,"agreementPriceId":null,"offerPrice":0,"orderMark":null,"totalPrice":null,"productLimitBuyList":null,"giftSign":0,"giftProductCode":null,"activityCarDataVoList":null,"orderSource":null,"receiverName":null,"receiverContact":null,"receiverAddress":null,"rebateTripId":null,"allSign":null,"salesReturn":null,"nowAmount":null,"taxSign":0,"plusMinuKey":null,"rebateRule":null,"areaPrice":null,"lockType":null,"estimatedDeliveryDate":null,"licenseInfoFeignDtos":null,"receivedQty":null,"rebateSign":null,"ippMiniPurchaseNum":null,"ippMultipleSign":null,"ippPurchaseMultiple":null,"ippStatus":null,"lineNumberOrg":null,"changeSgin":null,"addSgin":null,"ptbfa1":0,"ptbfa2":0,"ptbfa3":0,"ptbfa4":0,"ptbfa5":0,"yapeiPriceId":0,"ypLinePromotion":null,"yapeiPrice":null,"companyId":6,"buyerCartId":null,"userReceiveIdx":null,"userReceiveIdx2":null,"limitNum":null,"productLimitBuyId":null,"alreadyBuyNum":null,"limitBuySign":0,"proposeNum":null,"takeEffectRange":null,"takeEffectTime":null,"endTime1":null,"groupId":501,"fsGroupId":501,"proposalQuantity":null,"proposalSign":0,"manufacturerUserNo":null,"manufacturerUserDesc":null,"manufacturerProductNo":null,"manufacturerProductDesc":null,"manufacturerUserId":null,"manufacturerProductId":null,"busProductCode":null,"paidTime":null,"customerName":null,"paymentAmount":null,"specQuantity":null,"disQuantity":null,"fulfilledQuantity":null,"fulCancelQuantity":null,"couponId":null,"couponId2":null,"limitS":null,"starts":null,"ends":null,"userId":null,"productTax":"","taxRate":0.13,"demandSplitSign":"1","hospitalHopeDate":null,"uniqueKey":null,"productType":null,"activityRuleId":null,"allowanceBeginTime":null,"allowanceEndTime":null,"sign":null,"differenceActivityUserId":null,"groupNumber":5,"groupName":null,"skuGroup":{"id":null,"groupId":501,"companyCode":"00111","groupProductType":1,"createTime":null,"updateTime":null,"demandSkuId":null,"demandId":null,"dataJson":"{\\\"surplusQuantity\\\":5,\\\"groupCode\\\":\\\"sspg00825034\\\",\\\"groupCode1\\\":\\\"sspg00825034\\\",\\\"groupPrice\\\":101,\\\"groupProductType\\\":1,\\\"limitPurchase\\\":5,\\\"isLimit\\\":1,\\\"documentNo\\\":\\\"特价单品验证毋动\\\",\\\"realPay\\\":505,\\\"subtotal\\\":505,\\\"timeStr\\\":\\\"2023-11-09至2031-12-31\\\",\\\"quantity\\\":5,\\\"calSubFreName\\\":\\\"检查手套(1131C 丁腈无粉 M 蓝紫色)*1只\\\",\\\"subList\\\":[{\\\"activityUnitAmount\\\":\\\"101.0000\\\",\\\"quantity\\\":1,\\\"productCode\\\":\\\"14037826\\\"}],\\\"oldObjArr\\\":[{\\\"activityUnitAmount\\\":\\\"101.0000\\\",\\\"quantity\\\":1,\\\"productCode\\\":\\\"14037826\\\"}]}","lineNumber":null,"freseniusPriceId":285,"groupNumber":5,"demandSkuList":null,"demandSkuVOList":null,"surplusQuantity":5,"groupCode":"sspg00825034","groupCode1":"sspg00825034","groupPrice":101,"limitPurchase":5,"isLimit":1,"documentNo":"特价单品验证毋动","realPay":505,"subtotal":505,"timeStr":"2023-11-09至2031-12-31","quantity":5,"calSubFreName":"检查手套(1131C 丁腈无粉 M 蓝紫色)*1只","subList":[{"activityUnitAmount":"101.0000","quantity":1,"productCode":"14037826"}],"oldObjArr":[{"activityUnitAmount":"101.0000","quantity":1,"productCode":"14037826"}],"_rebateType":false},"subList":null,"dataJson":null,"skuMergeSign":null,"freseniusPriceId":285,"quantityAndGroupAll":1,"booleaTime":1,"spitSgin":0,"groupSpitSign":0,"sort":2,"circleArea":null,"purchaseEntryId":null,"mustInstallDate":false,"installedDate":null,"installedDateStr":null,"demandLines":null,"subLineNumber":null,"demandSubCode":null,"propertyName":null,"propertyVal":null,"propertyNote":null,"sendManualSign":0,"activityType":0,"giftSettlementMethod":null,"giftInitQuantity":null,"packageCode":null,"giftGroupQuantity":null,"siteCompanyCode":null,"hospitalOrderType":null,"isCollectionAllocation":null,"recDifferenceQty":null,"orderStatus":null,"distributionType":null,"groupCode":"sspg00825034","groupProductType":1,"pSign":0,"backSign":0,"description":"","stockNumber":null,"priceChange":false,"rebate":false,"giftList":[],"bol":true,"prePromotionPrice":null,"prepromotionTotalPrice":0,"preDiscountRate":null,"userBalance":0,"orderType":null},{"maxProductNum":999999,"minProductNum":1,"addMinProductNum":1,"minProductNumSign":false,"isMultiple":false,"quantityTip":"","demandSkuId":null,"demandId":null,"distributionId":null,"companyCode":"00111","demandCode":null,"demandParentId":null,"sellerCompanyId":null,"sellerCompanyName":null,"sellerCompanyCode":null,"customerCode":null,"productLineCode":"2012","productLineName":"麦迪康","propertyStr":null,"storageType":"002","suppDist":null,"productId":7438,"productName":"检查手套","productCode":"14037826","productNature":null,"brandName":null,"optionStr":"1131C 丁腈无粉 M 蓝紫色","imageUrl":null,"lineNumber":null,"price":100,"rebateId":null,"rebateDetail":null,"useMaxLimit":null,"useLimitStart":null,"useBalance":null,"originalPrice":null,"biddingDiscountTax":null,"salesDiscountTax":null,"quantity":2,"sumQuantity":null,"sendQuantity":null,"lackQuantity":null,"cancelQuantity":null,"cancelAmount":null,"refundQuantity":null,"refundAmount":null,"discountQuantity":null,"discountAmount":null,"subtotal":200,"measuringUnit":"只","auxiliaryMeasuringUnit":null,"procurementMeasuringUnit":null,"pricingMeasuringUnit":null,"materialCode":"SFTCN1131C-0100100","manufacturer":"麦迪康(马来西亚)公司 A R Medicom (M) Sdn Bhd","produceRegisterNum":null,"riskRank":null,"productClassify":null,"createTime":null,"updateTime":null,"deleteSign":null,"calCancelFlag":null,"refundFlag":null,"discountRate":1,"realPay":200,"promotionPrice":null,"promotionTotalPrice":0,"demandParentCode":null,"regionId":null,"regionName":null,"spitSign":null,"activityAmount":0,"couponAmount":0,"activityUnitAmount":0,"couponUnitAmount":null,"activityBasicId":null,"couponSgin":null,"couponSgin2":null,"returnQuantity":null,"returnAmount":null,"customerId":null,"prescription":null,"specifications":"1131C 丁腈无粉 M 蓝紫色","lineCodeDelete":null,"sdOutStorage":null,"licenseNo":null,"demandCodes":null,"areaName":null,"agreementPriceId":null,"offerPrice":null,"orderMark":null,"totalPrice":null,"productLimitBuyList":null,"giftSign":0,"giftProductCode":null,"activityCarDataVoList":null,"orderSource":null,"receiverName":null,"receiverContact":null,"receiverAddress":null,"rebateTripId":null,"allSign":null,"salesReturn":null,"nowAmount":null,"taxSign":0,"plusMinuKey":null,"rebateRule":null,"areaPrice":100,"lockType":null,"estimatedDeliveryDate":null,"licenseInfoFeignDtos":null,"receivedQty":null,"rebateSign":null,"ippMiniPurchaseNum":null,"ippMultipleSign":null,"ippPurchaseMultiple":null,"ippStatus":null,"lineNumberOrg":null,"changeSgin":null,"addSgin":null,"ptbfa1":null,"ptbfa2":null,"ptbfa3":null,"ptbfa4":null,"ptbfa5":null,"yapeiPriceId":null,"ypLinePromotion":null,"yapeiPrice":null,"companyId":null,"buyerCartId":null,"userReceiveIdx":null,"userReceiveIdx2":null,"limitNum":null,"productLimitBuyId":null,"alreadyBuyNum":null,"limitBuySign":0,"proposeNum":null,"takeEffectRange":null,"takeEffectTime":null,"endTime1":null,"groupId":null,"fsGroupId":null,"proposalQuantity":null,"proposalSign":0,"manufacturerUserNo":null,"manufacturerUserDesc":null,"manufacturerProductNo":null,"manufacturerProductDesc":null,"manufacturerUserId":null,"manufacturerProductId":null,"busProductCode":null,"paidTime":null,"customerName":null,"paymentAmount":null,"specQuantity":null,"disQuantity":null,"fulfilledQuantity":null,"fulCancelQuantity":null,"couponId":null,"couponId2":null,"limitS":null,"starts":null,"ends":null,"userId":null,"productTax":"","taxRate":0.13,"demandSplitSign":"1","hospitalHopeDate":null,"uniqueKey":null,"productType":null,"activityRuleId":null,"allowanceBeginTime":null,"allowanceEndTime":null,"sign":null,"differenceActivityUserId":null,"groupNumber":null,"groupName":null,"skuGroup":null,"subList":null,"dataJson":null,"skuMergeSign":null,"freseniusPriceId":null,"quantityAndGroupAll":null,"booleaTime":null,"spitSgin":0,"groupSpitSign":0,"sort":0,"circleArea":null,"purchaseEntryId":null,"mustInstallDate":false,"installedDate":null,"installedDateStr":null,"demandLines":null,"subLineNumber":null,"demandSubCode":null,"propertyName":null,"propertyVal":null,"propertyNote":null,"sendManualSign":0,"activityType":0,"giftSettlementMethod":null,"giftInitQuantity":null,"packageCode":null,"giftGroupQuantity":null,"siteCompanyCode":null,"hospitalOrderType":null,"isCollectionAllocation":null,"recDifferenceQty":null,"orderStatus":null,"distributionType":null,"groupCode":null,"groupProductType":null,"pSign":0,"backSign":0,"description":"","stockNumber":null,"priceChange":false,"rebate":false,"giftList":[],"purchaseZeroProductList":[],"prePromotionPrice":null,"prepromotionTotalPrice":0,"preDiscountRate":null,"userBalance":0,"orderType":null}],"expireDemandSkus":null,"demandSubItems":null,"rebateDetail":null,"rebateAmountList":null,"productLineCode":"2012","productLineName":"麦迪康","auditLoginName":null,"showPurchaseNo":false,"isRebate":null,"isShowReate":null,"taxRate":0.13,"rebateType":0,"paymentAmountWholeLine":705,"discountAmountWholeLine":0,"payableAmountWholeLine":705,"discountRate":null,"singleRebateAmount":null,"isRebateEdit":null,"payCertUrl":null,"rebateAmount":null,"demandCance":null,"soAdd":null,"soCance":null,"orderReturn":null,"needCustomerConfirm":false,"measuringUnit":null,"productId":null,"version":null,"mainVersion":null,"agencyConfigId":null,"confirmSign":null,"replySign":null,"agencySign":null,"editIng":null,"editIngStr":null,"jdeType":null,"isElectronicSeal":null,"contractAgreementNo":null,"alesDepartmentNo":null,"alesDepartmentName":null,"salesPersonNo":null,"salesPersonName":null,"customerNote":null,"otherNote":null,"contractAgreementCode":null,"projectName":null,"projectCode":null,"regionId":null,"regionName":null,"productLineBindSign":null,"shipVia":null,"orderSource":null,"userBalance":null,"liquidCode":null,"shipmentTypeStr":null,"specifications":null,"pageStart":1,"pageSize":5,"changeSgin":null,"yapei":2,"companyId":6,"preemptConfig":null,"productSpec":null,"secondAuditSign":null,"secondAuditById":null,"secondAuditByName":null,"secondAuditTime":null,"secondAuditRemark":null,"secondAuditStatus":null,"rebateRule":"0","rebateControlSign":0,"rebateId":null,"preferenceType":null,"preferenceName":null,"disPrice":null,"lineNum":0,"auditStaySign":0,"fileList":null,"imageUrls":null,"total":null,"submitTimeStr":null,"updateTimeStr":null,"auditTimeStr":null,"acceptTime":null,"acceptTimeStr":null,"paidTime":null,"paidTimeStr":null,"erpHandingTime":null,"erpHandingTimeStr":null,"partShippingTime":null,"partShippingTimeStr":null,"allShippingTime":null,"allShippingTimeStr":null,"pushJdeTimeStr":null,"successTimeStr":null,"onlinePaySuccessTime":null,"onlinePaySuccessTimeStr":null,"bankTransactionSerial":null,"newIsTax":null,"countFormula":null,"countNumber":null,"noTaxRebateAmount":0,"isCollectionAllocation":0,"siteCompanyCode":null,"hospitalOrderType":null,"proofTime":null,"proofURL":null,"proofRemark":null,"proofSign":0,"customerCancelSign":null,"cancelRecords":null,"cancelCount":0,"updateNewTime":null,"updateNewTimeStr":null,"fsDedUseSign":null,"notice":null,"shareType":null,"singleRebateSign":null,"cf":false,"isPre":null,"showDemandAuditLineLabel":false,"orderType":null,"newDiscountRate":null,"oldOrderType":null,"oldNewDiscountRate":null,"pendding":null,"modifySign":null,"refuseType":null,"groupChangeSign":null,"custModify":null,"pushJdeStatusDemandSub":null,"circleGiftSign":0,"delay":null,"limitS":null,"starts":null,"ends":null,"completedS":null,"confirmDays":null,"remindS":null,"skuGroupList":null,"groupProductType":0,"purchaseId":null,"purchaseCode":null,"sdCancelTime":null,"sdTipSign":0,"receiverNote":null,"receiverPhoneNote":null,"receiverAddressNote":null,"flag":null,"sourceStr":null,"addressNoNote":null,"detailIsSpit":false,"spitSgin":null,"distributionType":null,"rebateValidity":null,"orderChangeType":null,"logoIcon":null,"detail":null,"changeBigType":null,"promotionType":1,"activityTotalAmount":0,"couponTotalAmount":0,"userReceiveId":null,"editSgin":null,"snSgin":null,"jdeOutAmount":null,"totalAllPaAmount":null,"diffShowSgin":0,"lineCodeDelete":null,"startTime":null,"endTime":null,"changeSign":null,"distributionId":null,"limitBuySign":0,"companyType":null,"afterSale":null,"csId":null,"sdStatusNodeParamList":null,"ypPromotionTotal":null,"acrossMainCode":null,"forceApprovedSign":0,"circleGiftContinueSgin":0,"customerCharge":null,"onlinePaySign":0,"recodeDemandSkuList":null,"mergeDemandSkuList":null,"inventoryNode":null,"customCode":null,"terminalSource":null,"potentialClientsId":null,"settlementStatus":null,"firstOrderAuditStatus":null,"confirmReceiptSign":null,"confirmReceiptTime":null,"afterSaleDays":null,"deliveryCompletedTime":null,"taxSign":0,"orderSplitSign":0,"demandRebateSkuList":null,"confirmTime":null,"customerPurchaseNo":null,"mustInstallDate":false,"secondAddressList":null,"splitOrMerge":null,"spitOrderSign":null,"productAmountWholeLine":705,"edit":false,"auditCompanyName":null,"auditCompanyNameCode":null,"editProductListFlag":false,"ratio":null,"showMoreAttribute":false,"lastNoTaxDiscountAmount":0,"lastDiscountAmount":0,"isExpire":false,"settementQuantity":7,"userBalancePrice":0,"isEdit":true,"discountRateOne":100,"_rebateType":false,"showInfo":false,"addressConfig":2,"pSign":0}],"orderStatus":102,"userReceiveId":null,"userReceiveId2":null,"productAmount":705,"paymentType":0,"accountId":3,"version":null,"receiveBankName":"国药集团上海医疗器械有限公司","receiveBankAccount":"36830188000041806","addressNumber":82429,"receiverName":"/","receiverContact":"/","receiverAddress":"昆明高新技术产业开发区马金铺高登路1676号水科技园标准工业厂房1号办公楼4层405室,2号工业厂房一层101、102、103、104-2室","buyerCartIds":[null,null],"sellerCompanyCode":"00111","companyId":6}}
+checkDict46: {"demandParentCode": "%s"}
+
+
+#测试场景:验证商品详情页面套包正价的展示
+#查询指定套包正价信息
+"payload_10056821": {"groupCode":"","groupName":"正价套包验证","productCode":"","productInfo":"","materialCode":"","manufacturerList":[],"productLineName":"","description":"","manufacturerProductDesc":"","manufacturerProductNo":"","customerCode":"","customerName":"","manufacturerUserNo":"","manufacturerUserDesc":"","documentNo":"","companyCode":"","groupType":0,"status":null,"pageStart":1,"pageSize":8,"regularPriceSign":1,"groupPriceStatus":1,"isRegularPrice":1}
+#获取套包信息
+"url47": "/order/public/getFreseniusGroup"
+"payload47": {"productCode":"%s","companyCode":"%s","detail":true,"buyCart":true,"num":1}
+checkDict47: {"groupPrice":"%s","groupName":"%s"}
+
+#测试场景:验证商品详情页面套包协议价的展示
+checkDict48: {"groupPrice":"%s","documentNo":"%s"}
+#查询指定套包协议特价信息
+"payload49": {"groupCode":"","groupName":"","productCode":"","productInfo":"","materialCode":"","manufacturerList":[],"productLineName":"","description":"","manufacturerProductDesc":"","manufacturerProductNo":"","customerCode":"","customerName":"","manufacturerUserNo":"","manufacturerUserDesc":"","documentNo":"协议套包","companyCode":"","groupType":0,"status":null,"pageStart":1,"pageSize":8}
+
+
+#测试场景:代客下单_套包清单_查询条件验证
+#套包清单列表获取
+"url50": "/order/public/getFreseniusGroup"
+"payload50": {"userNo":1126384,"companyCode":"00111","back":true,"buyCart":true,"num":1,"p":true}
+#查询条件验证
+"payload51": {"groupName":"%s","groupProductCode":"%s","groupProductName":"%s","groupOptionStr":"%s","documentNo":"%s","productLineCode":"%s","userNo":1126384,"companyCode":"00111","materialCodeSplit":"%s","back":true,"p":true,"buyCart":true,"num":1}
+#预期结果
+checkDict51: {"documentNo":"%s"}
+
+
+
+
+
+
+
diff --git a/data/cmdc_userinfo_query/data b/data/cmdc_userinfo_query/data
new file mode 100644
index 0000000000000000000000000000000000000000..03ba80ba1f6623d8893214bd5dd06fa63baa8e10
--- /dev/null
+++ b/data/cmdc_userinfo_query/data
@@ -0,0 +1,16 @@
+# 多采商城登录信息
+"username": "BJ0621"
+"password": "Aa123456"
+
+json_headers: {
+ "Cmdc_access_token": "%s",
+ "Sourcetype": "mall"
+}
+
+#获取用户信息接口地址
+"url1": "/user/mall/queryUserInfo"
+"payload1": {}
+#预期结果
+checkDict1: {"success":true,"code":"200","message":"OK"}
+
+
diff --git a/data/cmdc_website/data b/data/cmdc_website/data
new file mode 100644
index 0000000000000000000000000000000000000000..abac1732690290ef25fda0a377ad331190faf49d
--- /dev/null
+++ b/data/cmdc_website/data
@@ -0,0 +1,31 @@
+#后台运营管理系统登录信息(子公司-上海公司)
+"username": "Admin00111"
+"password": "Aa123456"
+
+# 多采商城登录信息
+"username1": "BJ0621"
+"password1": "Aa123456"
+
+json_headers: {
+ "Cmdc_access_token": "%s",
+ "Sourcetype": "mall"
+}
+
+#获取站点信息接口地址
+"url1": "/cms/public/website/queryAll"
+"payload1": {}
+#预期结果
+checkDict1: {"success":true,"code":"200","message":"操作成功"}
+
+
+#站点切换接口地址
+"url2": "/user/mall/switchWebsite"
+"payload2": {"companyId":3,"companyCode":"00103"}
+#预期结果
+checkDict2: {"success":true,"code":"200","message":"OK","data":null}
+
+#获取站点商品接口地址
+"url3": "/product/mall/queryPcProductInfoByPage"
+"payload3": {"filterConditions":[],"ranking":"","searchName":"","pageNum":1,"pageSize":40,"orderBy":"","orderByType":""}
+#预期结果
+checkDict3: {"success":true,"code":"200","message":"OK"}
diff --git a/data/data b/data/data
new file mode 100644
index 0000000000000000000000000000000000000000..a035c748276198b56d1434cb2767b607276903f8
--- /dev/null
+++ b/data/data
@@ -0,0 +1,21 @@
+# 默认数据
+"enc_user_id": "u779700044448"
+"headers": {
+ 'clientInfo': '{"birthday":"2018-11-18","screenwidth":"375","clientVersion":"2.4.2","screenheight":"667","partner":"meitunmama","clientip":"10.180.81.127","traderName":"iPhone 6S","clientAppVersion":"2.4.2","clientYunyuVersion":"7.9.6","clientSystem":"ios","nettype":"wifi","deviceCode":"1f4b3860acfa303bca0407f5128bc5ea0f529fec"}',
+ 'platform': "1",
+ 'signature': "144c6b3c78fc20ad57da1ebdb879615b",
+ 'token': "%s",
+ 'timestamp': "%s",
+}
+payload: {}
+"post_headers": {
+ 'clientInfo': '{"birthday":"2018-11-18","screenwidth":"375","clientVersion":"2.4.2","screenheight":"667","partner":"meitunmama","clientip":"10.180.81.127","traderName":"iPhone 6S","clientAppVersion":"2.4.2","clientYunyuVersion":"7.9.6","clientSystem":"ios","nettype":"wifi","deviceCode":"1f4b3860acfa303bca0407f5128bc5ea0f529fec"}',
+ 'platform': "1",
+ 'signature': "144c6b3c78fc20ad57da1ebdb879615b",
+ 'token': "%s",
+ 'timestamp': "%s",
+ 'Content-Type': "%s",
+}
+default_contentType: "application/x-www-form-urlencoded"
+
+login_url: "http://backend-web-backend-web.1.java.babytree-test.com/sso-service/login?loginName=test001&pwd=test001@123"
\ No newline at end of file
diff --git a/data/demo-ui/data b/data/demo-ui/data
new file mode 100644
index 0000000000000000000000000000000000000000..bcf051652a30377a92609280f8a8ee054590c519
--- /dev/null
+++ b/data/demo-ui/data
@@ -0,0 +1,6 @@
+# 登录内网测试环境地址
+"spd3_login_url": "/hospitaltest2/spd/#/login?redirect=/paltform/info0/paltform/product/calatog/paltform/product/calatog"
+"username": "//input[@placeholder='请输入用户名']"
+"password": "//input[@placeholder='请输入密码']"
+"login_button": "//span[text()='登 录']"
+"name1": "xhs"
\ No newline at end of file
diff --git a/data/hosts b/data/hosts
new file mode 100644
index 0000000000000000000000000000000000000000..c85b2c4b3e1587afe5fbbcd550ccf22ac9ce7735
--- /dev/null
+++ b/data/hosts
@@ -0,0 +1,25 @@
+
+172.16.10.203 api.babytree-dev.com
+172.16.10.203 api-test11.babytree-test.com
+172.16.10.203 api.test11.babytree-fpm.com
+172.16.10.203 api.babytree.com
+# online
+
+10.54.11.80 idb.baobaoshu.com
+10.54.11.80 grafana.baobaoshu.com
+10.54.11.80 zabbix.baobaoshu.com
+10.54.11.80 cacti.baobaoshu.com
+10.54.11.80 ucm.baobaoshu.com
+10.54.11.80 rundeck.baobaoshu.com dubbo.baobaoshu.com
+10.54.11.80 cmdb.baobaoshu.com
+10.54.11.80 apollo.baobaoshu.com muse.baobaoshu.com
+10.54.11.80 splunk.baobaoshu.com
+
+172.16.10.203 test100.babytree-dev.com g.babytree-dev.com
+122.9.41.244 gerrit.babytree-inc.com
+10.54.17.153 localproxy.baobaoshu.com
+192.168.24.43 gerrit.mtmm.com
+10.17.65.22 case.cmic.com.cn
+10.54.50.90 sso.baobaoshu.com
+8.131.247.52 docp.plt.babytree-inc.com
+
diff --git a/data/idbSet b/data/idbSet
new file mode 100644
index 0000000000000000000000000000000000000000..8cf1f2dd2d7ba04ed03c8ee09eace12837f5f7b8
--- /dev/null
+++ b/data/idbSet
@@ -0,0 +1,97 @@
+user:
+ live: 6ea032c10ef24b10aa7fcfe5424446afin01
+ pre: 6ea032c10ef24b10aa7fcfe5424446afin01
+
+health:
+ live: 6013c13418a245b9866e9cdec92ff9b9in01
+ pre : 6013c13418a245b9866e9cdec92ff9b9in01
+ sit: health
+
+alimall:
+ live: f4d539e7b8204a8890929320f2052d68in01
+ pre : f4d539e7b8204a8890929320f2052d68in01
+ sit: alimall
+
+promotion:
+ live: 9e33dd3e26a54c8caeaf871e873edb38in01
+ pre: 9e33dd3e26a54c8caeaf871e873edb38in01
+ sit: promotion
+
+salesorder:
+ live: 7f9c968b57084c0782aeb620e2a064b1in01
+ pre : 7f9c968b57084c0782aeb620e2a064b1in01
+ sit: salesorder
+
+seller:
+ live: 2888c1775daf4c60897073068b6c219ain01
+ pre: 2888c1775daf4c60897073068b6c219ain01
+ sit: seller
+
+cms:
+ live: 790afd094355416895ca39891c09c0d3in01
+ pre: 790afd094355416895ca39891c09c0d3in01
+ sit: cms
+
+community:
+ live: 790afd094355416895ca39891c09c0d3in01
+ pre: 790afd094355416895ca39891c09c0d3in01
+ sit: community
+
+price:
+ live: 6ea032c10ef24b10aa7fcfe5424446afin01
+ pre: 6ea032c10ef24b10aa7fcfe5424446afin01
+ sit: price
+
+medical:
+ live: 89a813f93c454db0a23c25f95c0d2e2cin01
+ pre: 89a813f93c454db0a23c25f95c0d2e2cin01
+ sit: medical
+
+bcoin:
+ live: f4d539e7b8204a8890929320f2052d68in01
+ pre: f4d539e7b8204a8890929320f2052d68in01
+ sit: bcoin
+
+edu:
+ live: 8e7f2572f92e49f4b0061f75682470eain01
+ pre: 8e7f2572f92e49f4b0061f75682470eain01
+ sit: edu
+
+account:
+ live: 2888c1775daf4c60897073068b6c219ain01
+ pre: 2888c1775daf4c60897073068b6c219ain01
+ sit: account
+
+finance:
+ live: 6013c13418a245b9866e9cdec92ff9b9in01
+ pre: 6013c13418a245b9866e9cdec92ff9b9in01
+ sit: finance
+
+socialec:
+ live: 89a813f93c454db0a23c25f95c0d2e2cin01
+ pre: 89a813f93c454db0a23c25f95c0d2e2cin01
+ sit: socialec
+
+item:
+ live: 2888c1775daf4c60897073068b6c219ain01
+ pre: 2888c1775daf4c60897073068b6c219ain01
+ sit: item
+
+new_wms:
+ live: 89a813f93c454db0a23c25f95c0d2e2cin01
+ pre: 89a813f93c454db0a23c25f95c0d2e2cin01
+ sit: new_wms
+
+distribution:
+ live: 8e7f2572f92e49f4b0061f75682470eain01
+ pre: 8e7f2572f92e49f4b0061f75682470eain01
+ sit: distribution
+
+supplier:
+ live: 790afd094355416895ca39891c09c0d3in01
+ sit: supplier
+
+local:
+ live: pc-2zerh8cqy748e33i8
+ sit : b9e5fbff-08e9-11ed-866f-00163e324a72
+
diff --git a/data/msg b/data/msg
new file mode 100644
index 0000000000000000000000000000000000000000..e5a0b6ebc82d429bda9d6ce6fe209851aff43827
--- /dev/null
+++ b/data/msg
@@ -0,0 +1,4 @@
+"dingding_msg":
+- 59d455293168352cecfaa4fb67f2568f3fa54453a2fdb87ce9817c316dc41b57
+
+
diff --git a/data/sql b/data/sql
new file mode 100644
index 0000000000000000000000000000000000000000..55789897be35bddc2f676399c4b3425e72a7825d
--- /dev/null
+++ b/data/sql
@@ -0,0 +1,11 @@
+"select_user_token":
+- user
+- select token from user.uc_user_token where enc_user_id=%s;
+
+"exp_expert":
+- medical
+- SELECT id,expert_name,base_service_count,service_count from exp_expert where deleted=%s and status=%s;
+
+"select_memberPrivilegeId":
+- user
+- SELECT id ,enc_user_id,privilege_type FROM uc_member_privilege WHERE left_times>0 and status=1 AND privilege_type IN (5,12,9,2,10,11) AND start_time NOW() AND enc_user_id IN (SELECT enc_user_id FROM uc_user_member WHERE final_end_time >NOW() AND level_type_code=001) order by id desc limit 1
\ No newline at end of file
diff --git "a/data/\347\224\265\345\225\206/data" "b/data/\347\224\265\345\225\206/data"
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git "a/data/\347\224\265\345\225\206/message" "b/data/\347\224\265\345\225\206/message"
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git "a/data/\347\224\265\345\225\206/sql" "b/data/\347\224\265\345\225\206/sql"
new file mode 100644
index 0000000000000000000000000000000000000000..f162a54c41386efd5fbdfc1cb4784e3ca9db7be2
--- /dev/null
+++ "b/data/\347\224\265\345\225\206/sql"
@@ -0,0 +1,6 @@
+# 存储业务sql
+
+"select_patient":
+- medical
+- SELECT relation_id,name,gender,id FROM `patient` where enc_user_id=%s and deleted=0;
+
diff --git a/distribute.py b/distribute.py
new file mode 100644
index 0000000000000000000000000000000000000000..9955fac3f87ab76d3af50feb9dcc67e60eda9b01
--- /dev/null
+++ b/distribute.py
@@ -0,0 +1,438 @@
+# -*- encoding=utf-8 -*-
+import os
+import sys
+import requests
+import math
+import re
+import time
+from bs4 import BeautifulSoup
+from random import shuffle
+import datetime
+import pypinyin
+import hashlib
+
+
+def exchange(word):
+ """
+ 中文转拼音
+ :param word:
+ :return:
+ """
+ s = ''
+ for i in pypinyin.pinyin(word, style=pypinyin.NORMAL):
+ s += ''.join(i)
+ return s
+
+
+def get_message(case_path, case_name):
+ # 从注释中获取某个文件的 case tag 信息
+ tags = []
+ pyfile = open(case_path + os.sep + case_name + '.py', 'r', encoding='utf-8')
+ lines = pyfile.readlines()
+ for line in lines:
+ if 'case_tag' in line:
+ line = line.split('case_tag')[-1]
+ # 对不规范的写法做一些处理,如中文分号, 中文逗号,多空格等。。
+ line = re.sub(' ', '', line)
+ line = line.replace(',', ',').replace(':', '').replace(':', '')
+ line = line.strip().strip('\n')
+ tags = line.split(',')
+ pyfile.close()
+ return tags
+
+
+def get_all_dir(case_name, case_path):
+ """
+ :return: 获得需要执行的所有air的文件夹,同时创建单个log目录
+ """
+ case_list = []
+ for dirs in os.listdir(case_path):
+ isdir = os.path.join(case_path, dirs)
+ if os.path.isdir(isdir) and isdir.endswith(".air"):
+ air_name = dirs.replace('.air', '')
+ if 'all' in case_name or air_name in case_name:
+ # script = os.path.join(case_path, isdir)
+ case_list.append(air_name)
+ return case_list
+
+
+def get_case_tag_list(case_path, cases):
+ """
+ 遍历case目录下的文件,从文件中获取case tag,加入列表中
+ 如果想同时满足两个条件,用#分割
+ """
+ tagList = cases.split('#')
+ env = os.environ['ENV']
+ case_list = []
+ for f in os.listdir(case_path):
+ script = os.path.join(case_path, f)
+ air_name = f.replace('.air', '')
+ case_tags = get_message(script, air_name)
+ flag = False
+ for con in tagList:
+ conList = con.split(',')
+ if list(set(case_tags) & set(conList)):
+ flag = True
+ else:
+ flag = False
+ break
+ if flag and (env in case_tags or env in ('sit', 'sita')):
+ case_list.append(air_name)
+ return case_list
+
+
+def get_dir_exist(path, div_num):
+ """
+ 判断报告文件夹是否存在
+ """
+ for i in range(div_num):
+ test_path = path + os.sep + 'report_' + str(i+1)
+ if not os.path.isdir(test_path):
+ return False
+ return True
+
+def merge_report(div_num, report_path):
+ """
+ 合并报告
+ """
+ total_cases = 0
+ succ_cases = 0
+ max_time = 0.0
+ time_str = ''
+ summary_r = open(report_path + os.sep + 'summary.html', 'r', encoding='utf-8')
+ lines = summary_r.readlines()[:43]
+ summary_r.close()
+ summary_w = open(report_path + os.sep + 'summary.html', 'w', encoding='utf-8')
+ for i in range(div_num):
+ file = report_path + os.sep + 'report_' + str(i+1) + os.sep + 'summary.html'
+ print(file)
+ htmlfile = open(file, 'r', encoding='utf-8')
+ htmlhandle = htmlfile.read()
+ soup = BeautifulSoup(htmlhandle, 'html.parser')
+ tables = soup.find_all("table")
+ #print(tables)
+ #第一个table存的是概要,第二个table存的是具体case。先读第一个表
+ tab = tables[0]
+ tr = tab.findAll('tr')[1]
+ tds = tr.findAll('td')
+ total_cases += int(tds[0].getText())
+ succ_cases += int(tds[1].getText())
+ minite = int(tds[2].getText().split('分')[0])
+ second = int(tds[2].getText().split('分')[1].split('秒')[0])
+ number = minite + second/60
+ #print(number)
+ if number > max_time:
+ max_time = number
+ time_str = tds[2].getText()
+ #再读第二个表
+ tab = tables[1]
+ trs = tab.findAll('tr')
+ print(len(trs))
+ for i in range(len(trs)):
+ if i == 0:
+ continue
+ tds = trs[i].findAll('td')
+ case_name = tds[0].getText()
+ status = tds[1].getText()
+ run_time = tds[2].getText()
+ if status == '成功':
+ html = '''
+
+ %s |
+ %s |
+ %s |
+
''' % (case_name, case_name, status, run_time)
+ else:
+ html = '''
+
+ %s |
+ %s |
+ %s |
+
''' % (case_name, case_name, status, run_time)
+ lines.append(html)
+ #print(html)
+ pass_rate = round(succ_cases*100/total_cases, 2)
+ summary = '''
+
+
+
+
+
+ 用例总数 |
+ 成功数 |
+ 运行用时 |
+ 成功率 |
+
+
+
+ %s |
+ %s |
+ %s |
+ %s |
+
+
+
+
+
+
+
+
+ 用例名称 |
+ 执行结果 |
+ 执行时间(秒) |
+
+
+''' % (total_cases, succ_cases, time_str, str(pass_rate))
+ summary_w.write(summary)
+ for line in lines:
+ summary_w.write(line)
+ end_html = '''
+
+
+
+