diff --git a/票据理赔自动化/case.py b/票据理赔自动化/case.py
index 4d229ea..4d5d9d1 100644
--- a/票据理赔自动化/case.py
+++ b/票据理赔自动化/case.py
@@ -90,12 +90,12 @@ def receipt_adjust(
# 初始化理算记录
adjustments = []
- # 初始化票据剩余理算金额
- remaining_adjustment_amount = masterdata.query_remaining_adjustment_amount(
- receipt_number=receipt["number"],
+ # 初始化票据剩余金额
+ remaining_amount = masterdata.query_remaining_amount(
+ number=receipt["number"],
)
- if remaining_adjustment_amount is None:
- remaining_adjustment_amount = (
+ if remaining_amount is None:
+ remaining_amount = (
receipt["personal_self_payment"] # 个人自费金额
+ receipt["non_medical_payment"] # 个人自付金额
+ receipt["reasonable_amount"] # 合理金额
@@ -152,7 +152,7 @@ def receipt_adjust(
adjustment_amount = max(
Decimal("0.00"),
min(
- remaining_adjustment_amount, # 剩余理算金额
+ remaining_amount, # 票据剩余金额
remaining_coverage_amount, # 个单剩余保额
adjustable_amount := (
(
@@ -198,12 +198,12 @@ def receipt_adjust(
"reasonable_amount": receipt["reasonable_amount"], # 合理金额
"reasonable_ratio": liability["reasonable_ratio"], # 合理理算比例
"reasonable_adjustable_amount": reasonable_adjustable_amount, # 合理可理算金额
- "remaining_adjustment_amount": remaining_adjustment_amount, # 剩余理算金额
+ "remaining_amount": remaining_amount, # 票据剩余金额
"remaining_coverage_amount": remaining_coverage_amount, # 个单剩余保额
"adjustable_amount": adjustable_amount, # 可理算金额
"adjustment_amount": adjustment_amount, # 理算金额
"adjustment_explanation": f"""
- 1、剩余理算金额:{remaining_adjustment_amount:.2f};
+ 1、票据剩余金额:{remaining_amount:.2f};
2、个单剩余保额:{remaining_coverage_amount:.2f};
3、可理算金额:{adjustable_amount:.2f},其中:
1)个人自费可理算金额:{personal_self_adjustable_amount:.2f}={receipt['personal_self_payment']:.2f}*{liability['personal_self_ratio']:.2f}%;
@@ -218,9 +218,9 @@ def receipt_adjust(
}
)
- remaining_adjustment_amount -= adjustment_amount
- # 若剩余理算金额小于等于0则跳出循环
- if remaining_adjustment_amount <= Decimal("0.00"):
+ remaining_amount -= adjustment_amount
+ # 若票据剩余金额小于等于0则跳出循环
+ if remaining_amount <= Decimal("0.00"):
break
if not adjustments:
@@ -241,7 +241,7 @@ def receipt_adjust(
"reasonable_amount": receipt["reasonable_amount"], # 合理金额
"reasonable_ratio": None, # 合理理算比例
"reasonable_adjustable_amount": None, # 合理可理算金额
- "remaining_adjustment_amount": remaining_adjustment_amount, # 剩余理算金额
+ "remaining_amount": remaining_amount, # 票据剩余金额
"remaining_coverage_amount": None, # 个单剩余保额
"adjustable_amount": None, # 可理算金额
"adjustment_amount": Decimal("0.00"), # 理算金额
@@ -250,9 +250,9 @@ def receipt_adjust(
)
# 新增理算记录
- masterdata.add_ajustment(
- receipt_number=receipt["number"],
- remaining_adjustment_amount=remaining_adjustment_amount,
+ masterdata.add_receipt_adjustment(
+ number=receipt["number"],
+ remaining_amount=remaining_amount,
)
return adjustments
diff --git a/票据理赔自动化/database.db b/票据理赔自动化/database.db
index 8167cfc..f41f3fa 100644
Binary files a/票据理赔自动化/database.db and b/票据理赔自动化/database.db differ
diff --git a/票据理赔自动化/directory/254728869001/application_1.jpg b/票据理赔自动化/directory/254728869001/image_01.jpg
similarity index 100%
rename from 票据理赔自动化/directory/254728869001/application_1.jpg
rename to 票据理赔自动化/directory/254728869001/image_01.jpg
diff --git a/票据理赔自动化/directory/254728869001/beneficiary_1.jpg b/票据理赔自动化/directory/254728869001/image_02.jpg
similarity index 100%
rename from 票据理赔自动化/directory/254728869001/beneficiary_1.jpg
rename to 票据理赔自动化/directory/254728869001/image_02.jpg
diff --git a/票据理赔自动化/directory/254728869001/insurant_1.jpg b/票据理赔自动化/directory/254728869001/image_03.jpg
similarity index 100%
rename from 票据理赔自动化/directory/254728869001/insurant_1.jpg
rename to 票据理赔自动化/directory/254728869001/image_03.jpg
diff --git a/票据理赔自动化/directory/254728869001/invoice_1.jpg b/票据理赔自动化/directory/254728869001/image_04.jpg
similarity index 100%
rename from 票据理赔自动化/directory/254728869001/invoice_1.jpg
rename to 票据理赔自动化/directory/254728869001/image_04.jpg
diff --git a/票据理赔自动化/directory/254728869001/invoice_2.jpg b/票据理赔自动化/directory/254728869001/image_05.jpg
similarity index 100%
rename from 票据理赔自动化/directory/254728869001/invoice_2.jpg
rename to 票据理赔自动化/directory/254728869001/image_05.jpg
diff --git a/票据理赔自动化/directory/254728869001/invoice_3.jpg b/票据理赔自动化/directory/254728869001/image_06.jpg
similarity index 100%
rename from 票据理赔自动化/directory/254728869001/invoice_3.jpg
rename to 票据理赔自动化/directory/254728869001/image_06.jpg
diff --git a/票据理赔自动化/directory/254728869001/invoice_4.jpg b/票据理赔自动化/directory/254728869001/image_07.jpg
similarity index 100%
rename from 票据理赔自动化/directory/254728869001/invoice_4.jpg
rename to 票据理赔自动化/directory/254728869001/image_07.jpg
diff --git a/票据理赔自动化/directory/254728869001/invoice_5.jpg b/票据理赔自动化/directory/254728869001/image_08.jpg
similarity index 100%
rename from 票据理赔自动化/directory/254728869001/invoice_5.jpg
rename to 票据理赔自动化/directory/254728869001/image_08.jpg
diff --git a/票据理赔自动化/directory/254728869001/invoice_6.jpg b/票据理赔自动化/directory/254728869001/image_09.jpg
similarity index 100%
rename from 票据理赔自动化/directory/254728869001/invoice_6.jpg
rename to 票据理赔自动化/directory/254728869001/image_09.jpg
diff --git a/票据理赔自动化/directory/254728869001/invoice_7.jpg b/票据理赔自动化/directory/254728869001/image_10.jpg
similarity index 100%
rename from 票据理赔自动化/directory/254728869001/invoice_7.jpg
rename to 票据理赔自动化/directory/254728869001/image_10.jpg
diff --git a/票据理赔自动化/directory/254728869001/invoice_8.jpg b/票据理赔自动化/directory/254728869001/image_11.jpg
similarity index 100%
rename from 票据理赔自动化/directory/254728869001/invoice_8.jpg
rename to 票据理赔自动化/directory/254728869001/image_11.jpg
diff --git a/票据理赔自动化/directory/254728869001/invoice_9.jpg b/票据理赔自动化/directory/254728869001/image_12.jpg
similarity index 100%
rename from 票据理赔自动化/directory/254728869001/invoice_9.jpg
rename to 票据理赔自动化/directory/254728869001/image_12.jpg
diff --git a/票据理赔自动化/directory/254728869001/invoice_10.jpg b/票据理赔自动化/directory/254728869001/image_13.jpg
similarity index 100%
rename from 票据理赔自动化/directory/254728869001/invoice_10.jpg
rename to 票据理赔自动化/directory/254728869001/image_13.jpg
diff --git a/票据理赔自动化/directory/254728869001/invoice_11.jpg b/票据理赔自动化/directory/254728869001/image_14.jpg
similarity index 100%
rename from 票据理赔自动化/directory/254728869001/invoice_11.jpg
rename to 票据理赔自动化/directory/254728869001/image_14.jpg
diff --git a/票据理赔自动化/directory/254728869001/invoice_12.jpg b/票据理赔自动化/directory/254728869001/image_15.jpg
similarity index 100%
rename from 票据理赔自动化/directory/254728869001/invoice_12.jpg
rename to 票据理赔自动化/directory/254728869001/image_15.jpg
diff --git a/票据理赔自动化/dossiers/254728869001.html b/票据理赔自动化/dossiers/254728869001.html
index ce73aeb..9d849cf 100644
--- a/票据理赔自动化/dossiers/254728869001.html
+++ b/票据理赔自动化/dossiers/254728869001.html
@@ -3,7 +3,7 @@
- 票据理赔自动化报告
+ 票据理赔自动化
-
-
-
在保个单
+
可理赔责任
@@ -672,7 +652,7 @@
@@ -694,9 +674,9 @@
关联影像件:
0615
@@ -793,7 +773,7 @@
- | 剩余理算金额 |
+ 票据剩余金额 |
团单号 |
个单号 |
个单剩余保额 |
@@ -834,9 +814,9 @@
关联影像件:
0706
@@ -942,7 +922,7 @@
- | 剩余理算金额 |
+ 票据剩余金额 |
团单号 |
个单号 |
个单剩余保额 |
@@ -983,9 +963,9 @@
关联影像件:
1413
@@ -1082,7 +1062,7 @@
- | 剩余理算金额 |
+ 票据剩余金额 |
团单号 |
个单号 |
个单剩余保额 |
@@ -1123,9 +1103,9 @@
关联影像件:
1312
@@ -1222,7 +1202,7 @@
- | 剩余理算金额 |
+ 票据剩余金额 |
团单号 |
个单号 |
个单剩余保额 |
@@ -1237,22 +1217,22 @@
- | 607.00 |
+ 0.00 |
3291120253201000000001 |
320602197401310029 |
- 5000.00 |
+ 3139.06 |
药店购药补充 |
0.00 |
0.00 |
607.00 |
607.00 |
- 607.00 |
+ 0.00 |
- 理算金额合计: 607.00元
+ 理算金额合计: 0.00元
@@ -1263,9 +1243,9 @@
关联影像件:
1211
@@ -1362,7 +1342,7 @@
- | 剩余理算金额 |
+ 票据剩余金额 |
团单号 |
个单号 |
个单剩余保额 |
@@ -1377,22 +1357,22 @@
- | 607.00 |
+ 0.00 |
3291120253201000000001 |
320602197401310029 |
- 4393.00 |
+ 3139.06 |
药店购药补充 |
0.00 |
0.00 |
607.00 |
607.00 |
- 607.00 |
+ 0.00 |
- 理算金额合计: 607.00元
+ 理算金额合计: 0.00元
@@ -1403,7 +1383,7 @@
关联影像件:
05
- | 剩余理算金额 |
+ 票据剩余金额 |
团单号 |
个单号 |
个单剩余保额 |
@@ -1517,22 +1497,22 @@
- | 119.56 |
+ 0.00 |
3291120253201000000001 |
320602197401310029 |
- 3786.00 |
+ 3139.06 |
药店购药补充 |
0.00 |
0.00 |
119.56 |
119.56 |
- 119.56 |
+ 0.00 |
- 理算金额合计: 119.56元
+ 理算金额合计: 0.00元
@@ -1543,9 +1523,9 @@
关联影像件:
1514
@@ -1642,7 +1622,7 @@
- | 剩余理算金额 |
+ 票据剩余金额 |
团单号 |
个单号 |
个单剩余保额 |
@@ -1657,22 +1637,22 @@
- | 123.48 |
+ 0.00 |
3291120253201000000001 |
320602197401310029 |
- 3666.44 |
+ 3139.06 |
药店购药补充 |
0.00 |
0.00 |
123.48 |
123.48 |
- 123.48 |
+ 0.00 |
- 理算金额合计: 123.48元
+ 理算金额合计: 0.00元
@@ -1683,7 +1663,7 @@
关联影像件:
04
- | 剩余理算金额 |
+ 票据剩余金额 |
团单号 |
个单号 |
个单剩余保额 |
@@ -1806,22 +1786,22 @@
- | 13.00 |
+ 0.00 |
3291120253201000000001 |
320602197401310029 |
- 3542.96 |
+ 3139.06 |
药店购药补充 |
0.00 |
0.00 |
13.00 |
13.00 |
- 13.00 |
+ 0.00 |
- 理算金额合计: 13.00元
+ 理算金额合计: 0.00元
@@ -1832,9 +1812,9 @@
关联影像件:
0807
@@ -1940,7 +1920,7 @@
- | 剩余理算金额 |
+ 票据剩余金额 |
团单号 |
个单号 |
个单剩余保额 |
@@ -1958,7 +1938,7 @@
0.00 |
3291120253201000000001 |
320602197401310029 |
- 3529.96 |
+ 3139.06 |
药店购药补充 |
0.00 |
0.00 |
@@ -1981,9 +1961,9 @@
关联影像件:
1009
@@ -2080,7 +2060,7 @@
- | 剩余理算金额 |
+ 票据剩余金额 |
团单号 |
个单号 |
个单剩余保额 |
@@ -2095,22 +2075,22 @@
- | 131.50 |
+ 0.00 |
3291120253201000000001 |
320602197401310029 |
- 3529.96 |
+ 3139.06 |
药店购药补充 |
0.00 |
0.00 |
131.50 |
131.50 |
- 131.50 |
+ 0.00 |
- 理算金额合计: 131.50元
+ 理算金额合计: 0.00元
@@ -2121,9 +2101,9 @@
关联影像件:
1110
@@ -2220,7 +2200,7 @@
- | 剩余理算金额 |
+ 票据剩余金额 |
团单号 |
个单号 |
个单剩余保额 |
@@ -2235,22 +2215,22 @@
- | 156.20 |
+ 0.00 |
3291120253201000000001 |
320602197401310029 |
- 3398.46 |
+ 3139.06 |
药店购药补充 |
0.00 |
0.00 |
156.20 |
156.20 |
- 156.20 |
+ 0.00 |
- 理算金额合计: 156.20元
+ 理算金额合计: 0.00元
@@ -2261,9 +2241,9 @@
关联影像件:
0908
@@ -2360,7 +2340,7 @@
- | 剩余理算金额 |
+ 票据剩余金额 |
团单号 |
个单号 |
个单剩余保额 |
@@ -2375,22 +2355,22 @@
- | 103.20 |
+ 0.00 |
3291120253201000000001 |
320602197401310029 |
- 3242.26 |
+ 3139.06 |
药店购药补充 |
0.00 |
0.00 |
103.20 |
103.20 |
- 103.20 |
+ 0.00 |
- 理算金额合计: 103.20元
+ 理算金额合计: 0.00元
diff --git a/票据理赔自动化/image.py b/票据理赔自动化/image.py
index 9b767c7..93b904c 100644
--- a/票据理赔自动化/image.py
+++ b/票据理赔自动化/image.py
@@ -118,7 +118,7 @@ def image_classify(image_index: int, image_path: Path, dossier: Dict[str, Any])
# 将已分类影像件添加至影像件层
dossier["images_layer"][f"{image_index:02d}"] = {
"image_path": image_path.as_posix(), # 影像件路径
- "image_relative_path": image_path.relative_to(image_path.parent.parent).as_posix(), # 影像件相对路径
+ "image_name": image_path.name, # 影像件名称
"image_format": image_format, # 影像件格式
"image_guid": image_guid, # 影像件唯一标识
"image_base64": image_base64, # 影像件BASE64编码
diff --git a/票据理赔自动化/masterdata.py b/票据理赔自动化/masterdata.py
index f28cd36..9ef05a5 100644
--- a/票据理赔自动化/masterdata.py
+++ b/票据理赔自动化/masterdata.py
@@ -161,14 +161,16 @@ class MasterData(SQLite):
# 初始化票据理算表
self.execute(
sql="""
- CREATE TABLE IF NOT EXISTS adjustments
+ CREATE TABLE IF NOT EXISTS receipt_adjustments
(
+ --理算记录唯一标识
+ guid TEXT PRIMARY KEY,
--票据号
- receipt_number TEXT PRIMARY KEY,
- --剩余理算金额
- remaining_adjustment_amount TEXT NOT NULL,
+ number TEXT NOT NULL,
+ --剩余金额
+ remaining_amount TEXT NOT NULL,
--理算时间
- adjust_time TEXT NOT NULL
+ adjust_time TEXT NOT NULL
)
"""
)
@@ -323,31 +325,31 @@ class MasterData(SQLite):
except Exception as exception:
raise RuntimeError(f"{str(exception)}") from exception
- def query_remaining_adjustment_amount(
+ def query_remaining_amount(
self,
- receipt_number: str,
+ number: str,
) -> Optional[Decimal]:
"""
- 根据票据号查询剩余理算金额
- :param receipt_number: 票据号
- :return: 剩余理算金额
+ 根据票据号查询剩余金额
+ :param number: 票据号
+ :return: 剩余金额
"""
try:
with self:
result = self.query_one(
sql="""
- SELECT remaining_adjustment_amount
- FROM adjustments
- WHERE receipt_number = ?
+ SELECT remaining_amount
+ FROM receipt_adjustments
+ WHERE number = ?
ORDER BY adjust_time DESC
LIMIT 1;
""",
- parameters=(receipt_number,),
+ parameters=(number,),
)
if not result:
return None
- return Decimal(result["remaining_adjustment_amount"]).quantize(
+ return Decimal(result["remaining_amount"]).quantize(
Decimal("0.00"),
rounding=ROUND_HALF_UP,
)
@@ -355,34 +357,47 @@ class MasterData(SQLite):
except Exception as exception:
raise RuntimeError(f"{str(exception)}") from exception
- def add_ajustment(
+ def add_receipt_adjustment(
self,
- receipt_number: str,
- remaining_adjustment_amount: Decimal,
+ number: str,
+ remaining_amount: Decimal,
) -> None:
"""
- 新增理算记录
- :param receipt_number: 票据号
- :param remaining_adjustment_amount: 剩余理算金额
+ 新增票据理算记录
+ :param number: 票据号
+ :param remaining_amount: 剩余金额
:return: 无
"""
- if remaining_adjustment_amount < Decimal("0.00"):
- raise ValueError("剩余理算金额小于0")
+ if remaining_amount < Decimal("0.00"):
+ raise ValueError("剩余金额小于0")
# 当前时间
current_time = datetime.now().strftime("%Y-%m-%d %H:%M:%S.%f")
+ # 构建票据理算记录唯一标识
+
+ guid = (
+ md5(
+ string=f"{number} {remaining_amount:.2f} {current_time}".encode(
+ "utf-8"
+ )
+ )
+ .hexdigest()
+ .upper()
+ )
+
with self:
if not self.execute(
sql="""
- INSERT INTO adjustments
- (receipt_number, remaining_adjustment_amount, adjust_time)
+ INSERT INTO receipt_adjustments
+ (guid, number, remaining_amount, adjust_time)
VALUES
- (?, ?, ?)
+ (?, ?, ?, ?)
""",
parameters=(
- receipt_number,
- f"{remaining_adjustment_amount:.2f}",
+ guid,
+ number,
+ f"{remaining_amount:.2f}",
current_time,
),
):
diff --git a/票据理赔自动化/template.html b/票据理赔自动化/template.html
index 5f16412..f234778 100644
--- a/票据理赔自动化/template.html
+++ b/票据理赔自动化/template.html
@@ -3,7 +3,7 @@
- 票据理赔自动化报告
+ 票据理赔自动化
-
-
-
在保个单
+
可理赔责任
@@ -702,7 +683,7 @@
- | 剩余理算金额 |
+ 票据剩余金额 |
团单号 |
个单号 |
个单剩余保额 |
@@ -717,7 +698,7 @@
{% for adjustment in receipt["adjustments"] %}
- | {{ adjustment["remaining_adjustment_amount"] }} |
+ {{ adjustment["remaining_amount"] }} |
{{ adjustment["group_policy"] }} |
{{ adjustment["person_policy"] }} |
{{ adjustment["remaining_coverage_amount"] }} |