Commit cfffb64a by 宋毅

fanhui_third

parent eefcb9ed
......@@ -32,12 +32,12 @@ def CreatBdictFromJson(new_status):
"status": ""
}
dict_all[linesplit[4].replace('"', "")] = tax_index
print(dict_all)
# print(dict_all)
# 获取传入的参数
new_status = new_status
for factors_name, value in dict_all.items():
dict_all[factors_name]["status"] = new_status[factors_name]
print(dict_all)
# print(dict_all)
# 计算总体风险异常比例、以及被监控风险比例和被稽查风险比例
qualified = [] # 合格
......@@ -66,16 +66,16 @@ def CreatBdictFromJson(new_status):
for k1, v1 in rules.items():
if k1:
ALLRisk = v1
print(ALLRisk)
print(ALLRisk,"+++++++++++++")
return dict_all, ALLRisk
# 输入计算出的风险异常比例,返回提示结果
def RiskAbnormal(t_r1):
RiskA = {}
t_r1 = t_r1
rules_1 = {"t_r1<='30%'": "企业风险异常同比其他企业比例较低",
"t_r1>'30%'": "企业风险异常同比其他企业比例明显偏高"
t_r1_s = str(int(t_r1.replace("%", "")) / 100)
rules_1 = {"t_r1_s<='0.3'": "企业风险异常同比其他企业比例较低",
"t_r1_s>'0.3'": "企业风险异常同比其他企业比例明显偏高"
}
for k1, v1 in rules_1.items():
if eval(str(k1)):
......@@ -85,23 +85,23 @@ def RiskAbnormal(t_r1):
# 输入计算出的被检测风险值,判断被监测风险结果
def MonitoredRisk(t_r2):
MRisk = {}
t_r2 = t_r2
rules_2 = {"t_r2<='10%'": "企业被监控的风险同比其他企业比例较低",
"t_r2>'10%' and t_r2<='50%'": "经检测,企业有一定可能性被选为税务监控对象",
"t_r2>'50%'": "经检测,企业有很大可能性被选为税务监控对象"
t_r2_s = str(int(t_r2.replace("%", "")) / 100)
rules_2 = {"t_r2_s<='0.1'": "企业被监控的风险同比其他企业比例较低",
"t_r2_s>'0.1' and t_r2_s<='0.5'": "经检测,企业有一定可能性被选为税务监控对象",
"t_r2_s>'0.5'": "经检测,企业有很大可能性被选为税务监控对象"
}
for k2, v2 in rules_2.items():
if eval(str(k2)):
MRisk = {"score":t_r2,"describe":v2}
MRisk = {"score": t_r2, "describe": v2}
return MRisk
# 输入计算出的被稽查风险值,判断被稽查风险结果
def AuditedRisk(t_r3):
ARisk = {}
t_r3 = t_r3
rules_3 = {"t_r3<='10%'": "企业被税务稽查的可能性较低",
"t_r3>'10%' and t_r3<='30%'": "企业有一定可能性被税务稽查",
"t_r3>'30%'": "企业有很大可能性被税务稽查"
t_r3_s = str(int(t_r3.replace("%", "")) / 100)
rules_3 = {"t_r3_s<='0.1'": "企业被税务稽查的可能性较低",
"t_r3_s>'0.1' and t_r3_s<='0.3'": "企业有一定可能性被税务稽查",
"t_r3_s>'0.3'": "企业有很大可能性被税务稽查"
}
for k3, v3 in rules_3.items():
if eval(str(k3)):
......@@ -111,15 +111,15 @@ def AuditedRisk(t_r3):
# 输入总体计算的风险异常比例,得到提示语(也可与RiskAbnormal函数合并)
def information(t_r1):
info = {}
t_r1 = t_r1
rules_0 = {"t_r1<='30%'": "贵企业的风险异常情况同比其他企业较少,如需更多更详细的诊断服务,请联系我们>>",
"t_r1>'30%' and t_r1<='60%'": "企业的风险异常情况同比其他企业明显偏多,有较大可能性成为税务系统监控的对象,请企业的财税人员参考以下详细检测情况进行自查,如需进行更详细的诊断服务请联系我们>>",
"t_r1>'60%' and t_r1<='80%'": "如果税务局选择企业所在行业进行行业稽查,该企业有一定可能性成为被选案例,请财税人员尽快参照以下比例进行自查,如需进行更详细的诊断服务请联系我们>>",
"t_r1>'80%'": "如果税务局选择企业所在行业进行行业稽查,该企业有很大可能性成为被选案例,请财税人员尽快参照以下比例进行自查,如需进行更详细的诊断服务请联系我们>>"
t_r1_s = str(int(t_r1.replace("%", "")) / 100)
rules_0 = {"t_r1_s<='0.3'": "贵企业的风险异常情况同比其他企业较少,如需更多更详细的诊断服务,请联系我们>>",
"t_r1_s>'0.3' and t_r1_s<='0.6'": "企业的风险异常情况同比其他企业明显偏多,有较大可能性成为税务系统监控的对象,请企业的财税人员参考以下详细检测情况进行自查,如需进行更详细的诊断服务请联系我们>>",
"t_r1_s>'0.6' and t_r1_s<='0.8'": "如果税务局选择企业所在行业进行行业稽查,该企业有一定可能性成为被选案例,请财税人员尽快参照以下比例进行自查,如需进行更详细的诊断服务请联系我们>>",
"t_r1_s>'0.8'": "如果税务局选择企业所在行业进行行业稽查,该企业有很大可能性成为被选案例,请财税人员尽快参照以下比例进行自查,如需进行更详细的诊断服务请联系我们>>"
}
for k0, v0 in rules_0.items():
if eval(str(k0)):
info = {{"score":t_r1,"describe":v0}}
info = {"score":t_r1,"describe":v0}
return info
......@@ -263,6 +263,15 @@ def RiskCompareRule(wx_part):
else:
risk_describe = "数据缺失"
return risk_describe
#风险描述去重
def getUniqueItems(iterable):
seen = set()
result = []
for item in iterable:
if item not in seen:
seen.add(item)
result.append(item)
return result
# 计算所得税隐藏收入风险异常(对所属指标不合格降序排列,展示前三的风险描述信息,计算不合格总和及风险比例)
......@@ -290,20 +299,18 @@ def IT_YCSR_Risk(dict_all):
if s_status1 == 2:
part_s1_str_dict[s_s1] = s_str
dissatisfied.append(s_s1)
print(part_s1_str_dict,type(part_s1_str_dict))
A_count = sum(satisfied) + sum(dissatisfied) # 计算合格与不合格对应指标权重之和(分母)
B_count = sum(dissatisfied) # 计算不合格对应指标权重之和(分子)
risk_IT_YCSR = float("%.2f" % (B_count / A_count)) # 计算风险异常比例
Risk_IT_YCSR_score = str(int(risk_IT_YCSR * 100)) + "%" # 格式转化
part_s1_str_dict = sorted(part_s1_str_dict.items(), key=lambda x: x[0], reverse=True) # 按照权重排序
# print(part_s1_str_dict)
p1_describe = [] # 获取风险权重前三提示
for pt in part_s1_str_dict:
p1_describe.append(pt[1])
p1_describe = getUniqueItems(p1_describe) #风险描述去重
if len(p1_describe) > 3:
p1_describe = p1_describe[:3]
# 风险类别获取
print(B_count,"--------------------------")
risk_describe = RiskCompareRule(B_count)
else:
Risk_IT_YCSR_score="0%"
......@@ -340,7 +347,7 @@ def IT_XZFY_Risk(dict_all):
if s_status2 == 1:
satisfied.append(s_s2)
if s_status2 == 2:
part_s2_str_dict[s_s2] = [s_str2]
part_s2_str_dict[s_s2] = s_str2
dissatisfied.append(s_s2)
A_count = sum(satisfied) + sum(dissatisfied) # 计算合格与不合格对应指标权重之和(分母)
B_count = sum(dissatisfied) # 计算不合格对应指标权重之和(分子)
......@@ -350,6 +357,7 @@ def IT_XZFY_Risk(dict_all):
p2_describe = [] # 获取风险权重前三提示
for pt in part_s2_str_dict:
p2_describe.append(pt[1])
p2_describe = getUniqueItems(p2_describe)
if len(p2_describe) > 3:
p2_describe = p2_describe[:3]
# 风险类别获取
......@@ -388,7 +396,7 @@ def IT_XZCB_Risk(dict_all):
if s_status1 == 1:
satisfied.append(s_s1)
if s_status1 == 2:
part_s1_str_dict[s_s1] = [s_str]
part_s1_str_dict[s_s1] = s_str
dissatisfied.append(s_s1)
A_count = sum(satisfied) + sum(dissatisfied) # 计算合格与不合格对应指标权重之和(分母)
B_count = sum(dissatisfied) # 计算不合格对应指标权重之和(分子)
......@@ -398,6 +406,7 @@ def IT_XZCB_Risk(dict_all):
p1_describe = [] # 获取风险权重前三提示
for pt in part_s1_str_dict:
p1_describe.append(pt[1])
p1_describe = getUniqueItems(p1_describe)
if len(p1_describe) > 3:
p1_describe = p1_describe[:3]
# 风险类别获取
......@@ -437,7 +446,7 @@ def VAT_XKFP_Risk(dict_all):
if s_status1 == 1:
satisfied.append(s_s1)
if s_status1 == 2:
part_s1_str_dict[s_s1] = [s_str]
part_s1_str_dict[s_s1] = s_str
dissatisfied.append(s_s1)
A_count = sum(satisfied) + sum(dissatisfied) # 计算合格与不合格对应指标权重之和(分母)
B_count = sum(dissatisfied) # 计算不合格对应指标权重之和(分子)
......@@ -447,6 +456,7 @@ def VAT_XKFP_Risk(dict_all):
p1_describe = [] # 获取风险权重前三提示
for pt in part_s1_str_dict:
p1_describe.append(pt[1])
p1_describe = getUniqueItems(p1_describe)
if len(p1_describe) > 3:
p1_describe = p1_describe[:3]
# 风险类别获取
......@@ -486,7 +496,7 @@ def VAT_XZJX_Risk(dict_all):
if s_status1 == 1:
satisfied.append(s_s1)
if s_status1 == 2:
part_s1_str_dict[s_s1] = [s_str]
part_s1_str_dict[s_s1] = s_str
dissatisfied.append(s_s1)
A_count = sum(satisfied) + sum(dissatisfied) # 计算合格与不合格对应指标权重之和(分母)
B_count = sum(dissatisfied) # 计算不合格对应指标权重之和(分子)
......@@ -496,6 +506,7 @@ def VAT_XZJX_Risk(dict_all):
p1_describe = [] # 获取风险权重前三提示
for pt in part_s1_str_dict:
p1_describe.append(pt[1])
p1_describe = getUniqueItems(p1_describe)
if len(p1_describe) > 3:
p1_describe = p1_describe[:3]
# 风险类别获取
......@@ -535,7 +546,7 @@ def VAT_YCXX_Risk(dict_all):
if s_status1 == 1:
satisfied.append(s_s1)
if s_status1 == 2:
part_s1_str_dict[s_s1] = [s_str]
part_s1_str_dict[s_s1] = s_str
dissatisfied.append(s_s1)
A_count = sum(satisfied) + sum(dissatisfied) # 计算合格与不合格对应指标权重之和(分母)
B_count = sum(dissatisfied) # 计算不合格对应指标权重之和(分子)
......@@ -545,6 +556,7 @@ def VAT_YCXX_Risk(dict_all):
p1_describe = [] # 获取风险权重前三提示
for pt in part_s1_str_dict:
p1_describe.append(pt[1])
p1_describe = getUniqueItems(p1_describe)
if len(p1_describe) > 3:
p1_describe = p1_describe[:3]
# 风险类别获取
......@@ -583,7 +595,7 @@ def CT_FX_Risk(dict_all):
if s_status1 == 1:
satisfied.append(s_s1)
if s_status1 == 2:
part_s1_str_dict[s_s1] = [s_str]
part_s1_str_dict[s_s1] = s_str
dissatisfied.append(s_s1)
A_count = sum(satisfied) + sum(dissatisfied) # 计算合格与不合格对应指标权重之和(分母)
B_count = sum(dissatisfied) # 计算不合格对应指标权重之和(分子)
......@@ -593,6 +605,7 @@ def CT_FX_Risk(dict_all):
p1_describe = [] # 获取风险权重前三提示
for pt in part_s1_str_dict:
p1_describe.append(pt[1])
p1_describe = getUniqueItems(p1_describe)
if len(p1_describe) > 3:
p1_describe = p1_describe[:3]
# 风险类别获取
......@@ -631,16 +644,18 @@ def ALLT_FX_Risk(dict_all):
if s_status1 == 1:
satisfied.append(s_s1)
if s_status1 == 2:
part_s1_str_dict[s_s1] = [s_str]
part_s1_str_dict[s_s1] = s_str
dissatisfied.append(s_s1)
A_count = sum(satisfied) + sum(dissatisfied) # 计算合格与不合格对应指标权重之和(分母)
B_count = sum(dissatisfied) # 计算不合格对应指标权重之和(分子)
risk_ALLT_FX = float("%.2f" % (B_count / A_count)) # 计算风险异常比例
Risk_ALLT_FX_score = str(int(risk_ALLT_FX * 100)) + "%" # 格式转化
part_s1_str_dict = sorted(part_s1_str_dict.items(), key=lambda x: x[0], reverse=True) # 按照权重排序
p1_describe = [] # 获取风险权重前三提示
for pt in part_s1_str_dict:
p1_describe.append(pt[1])
p1_describe = getUniqueItems(p1_describe)
if len(p1_describe) > 3:
p1_describe = p1_describe[:3]
# 风险类别获取
......@@ -696,6 +711,6 @@ def report():
print(result,"------------------------------")
return jsonify(result)
server.run(host='121.0.0.1', port=80, debug=True)
server.run(host='121.0.0.1', port=80, debug=True)
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment