update 监管风险接口

This commit is contained in:
P3ngSaM 2022-09-15 18:09:20 +08:00
parent 642bec821c
commit f783b86330
14 changed files with 700 additions and 135 deletions

View File

@ -1,6 +1,7 @@
from bson import ObjectId
from datetime import datetime
from Company.Basic.Business.BusinessImpl import BusinessImpl
from Company.CompanyUtils import CompanyUtils
from Company.Operational.LandMortgage.LandMortgageObj import LandMortgageObj
from Company.Supervision.Abnormal.AbnormalObj import AbnormalObj
from DBHelper.MongoHelperInstance import DB_TYC, DB_TEST
from Utils.CommonUtil import CommonUtils
@ -10,7 +11,34 @@ class AbnormalImpl(object):
"""动产抵押"""
@staticmethod
def auto_update(**kwargs):
def verify_time(**kwargs):
"""校验更新时间"""
def calculate_jet_lag(begin_time):
"""计算时差"""
end_time = CommonUtils.get_current_time()
time_1_struct = datetime.strptime(end_time, "%Y-%m-%d %H:%M:%S")
time_2_struct = datetime.strptime(begin_time, "%Y-%m-%d %H:%M:%S")
seconds = (time_1_struct - time_2_struct).seconds
if seconds > 60:
return True
else:
return False
condition = kwargs['condition']
start_time = DB_TEST.find_all_data(
'WR_DataBase_v2_test',
'C11.1_经营异常',
condition,
['更新时间']
)
if start_time:
res = calculate_jet_lag(start_time[-1]['更新时间'])
else:
res = True
return res
def auto_update(self, **kwargs):
"""新增/更新(自动)"""
condition = kwargs['condition']
@ -31,7 +59,6 @@ class AbnormalImpl(object):
for record_item in records_item:
dict_data = dict()
dict_data['企业ID'] = company_id
dict_data['异常ID'] = CompanyUtils.make_new_abnormal_id()
dict_data['日期'] = record_item['putDate']
dict_data['机关'] = record_item['putDepartment']
dict_data['列入经营异常名录原因'] = record_item['putReason']
@ -49,14 +76,16 @@ class AbnormalImpl(object):
{'企业ID': cid},
'企业名称'
)
# 判断更新时间
verify_res = self.verify_time(condition={"企业ID": cid})
if not verify_res:
return 'Please try again in a minute'
update = save_data(cname=cname, cid=cid)
if update:
for item in update:
DB_TEST.update_single_data(
DB_TEST.insert_many_data(
"WR_DataBase_v2_test",
"C11.1_经营异常",
{"企业ID": cid, "异常ID": item['异常ID']},
item
update
)
return 'success'
else:
@ -80,14 +109,16 @@ class AbnormalImpl(object):
)
else:
return 'new failed'
# 判断更新时间
verify_res = self.verify_time(condition={"企业ID": cid})
if not verify_res:
return 'Please try again in a minute'
insert = save_data(cname=cname, cid=cid)
if insert:
for item in insert:
DB_TEST.upsert_single_data(
DB_TEST.insert_many_data(
"WR_DataBase_v2_test",
"C11.1_经营异常",
{"企业ID": cid, "异常ID": item['异常ID']},
item
insert
)
return 'success'
else:
@ -95,17 +126,84 @@ class AbnormalImpl(object):
else:
return 'parameter exception'
def manu_update(self, **kwargs):
"""新增/更新(手动)"""
cid = kwargs['cid']
cname = kwargs['cname']
template = kwargs['template']
data = CompanyUtils.excel_sheet_parser(file=template)
if len(cid):
verify_res = self.verify_time(condition={"企业ID": cid})
if not verify_res:
return 'Please try again in a minute'
if data:
data_list = list()
for item in data:
abnormal = AbnormalObj()
abnormal.cid = cid
abnormal.date = CommonUtils.excel_time_stamp(item['日期'])
abnormal.department = item['机关']
abnormal.reason = item['列入经营异常名录原因']
abnormal.update_time = CommonUtils.get_current_time()
data_list.append(abnormal.fields_toggle())
DB_TEST.insert_many_data(
"WR_DataBase_v2_test",
"C11.1_经营异常",
data_list
)
return 'success'
else:
return 'update failed'
elif len(cname):
cid = DB_TEST.find_single_column(
'WR_DataBase_v2_test',
'C3.1_工商信息',
{'企业名称': cname},
'企业ID'
)
if not cid:
res = BusinessImpl.auto_update(condition={"cname": cname, "cid": ""})
if res == 'success':
cid = DB_TEST.find_single_column(
'WR_DataBase_v2_test',
'C3.1_工商信息',
{'企业名称': cname},
'企业ID'
)
else:
return 'new failed'
verify_res = self.verify_time(condition={"企业ID": cid})
if not verify_res:
return 'Please try again in a minute'
if data:
data_list = list()
for item in data:
abnormal = AbnormalObj()
abnormal.cid = cid
abnormal.date = CommonUtils.excel_time_stamp(item['日期'])
abnormal.department = item['机关']
abnormal.reason = item['列入经营异常名录原因']
abnormal.update_time = CommonUtils.get_current_time()
data_list.append(abnormal.fields_toggle())
DB_TEST.insert_many_data(
"WR_DataBase_v2_test",
"C11.1_经营异常",
data_list
)
return 'success'
else:
return 'parameter exception'
@staticmethod
def delete(**kwargs):
"""删除"""
param = kwargs['param']
cid = param['cid']
abnormal_id = param['abnormal_id']
_id = param['_id']
res = DB_TEST.delete_single_data(
"WR_DataBase_v2_test",
"C11.1_经营异常",
{"企业ID": cid, "异常ID": abnormal_id},
{"_id": ObjectId(_id)}
)
if res:
@ -122,8 +220,7 @@ class AbnormalImpl(object):
def edit(**kwargs):
"""编辑"""
param = kwargs['param']
cid = param['cid']
abnormal_id = param['abnormal_id']
_id = param['_id']
body = param['body']
try:
abnormal = AbnormalObj()
@ -135,7 +232,7 @@ class AbnormalImpl(object):
DB_TEST.update_single_data(
"WR_DataBase_v2_test",
"C11.1_经营异常",
{"企业ID": cid, "异常ID": abnormal_id},
{"_id": ObjectId(_id)},
update_data
)
return 'success'
@ -168,6 +265,8 @@ class AbnormalImpl(object):
)
if record:
for rec in record:
rec['_id'] = str(rec['_id'])
update_time = record[-1]['更新时间']
result = {
"info": "success",

View File

@ -5,7 +5,6 @@ from Utils.ValidateUtil import ValidateAttr, Validate
class AbnormalObj(SpecObject):
"""经营异常"""
cid = ValidateAttr(field='cid', type=str, length=8)
abnormal_id = ValidateAttr(field='abnormal_id', type=str, length=8)
date = ValidateAttr(field='date', func=Validate.date_format)
department = ValidateAttr(field='department', type=str, default=None)
reason = ValidateAttr(field='reason', type=str, default=None)
@ -13,7 +12,6 @@ class AbnormalObj(SpecObject):
fields_map = {
"cid": "企业ID",
"abnormal_id": "异常ID",
"date": "日期",
"department": "机关",
"reason": "列入经营异常名录原因",

View File

@ -19,11 +19,23 @@ def auto_update_route():
return {"info": e.__str__()}, e.status_code
@abnormal_operation_route.route('/manu_update', methods=['POST'])
def manu_update_route():
"""新增/更新(手动)"""
try:
RouteParamsCheck(req=request.form, params=["cid", "cname"]).required()
impl = AbnormalImpl()
result = impl.manu_update(cid=request.form['cid'], cname=request.form['cname'], template=request.files['template'])
return {"info": result}
except APIReturnError as e:
return {"info": e.__str__()}, e.status_code
@abnormal_operation_route.route('/delete', methods=['GET'])
def delete_route():
"""删除"""
try:
RouteParamsCheck(req=request.args, params=["cid", "abnormal_id"]).required()
RouteParamsCheck(req=request.args, params=["_id"]).required()
impl = AbnormalImpl()
result = impl.delete(param=request.args)
return result
@ -35,7 +47,7 @@ def delete_route():
def edit_route():
"""编辑"""
try:
RouteParamsCheck(req=request.json, params=["cid", "abnormal_id", "body"]).required()
RouteParamsCheck(req=request.json, params=["_id", "body"]).required()
impl = AbnormalImpl()
result = impl.edit(param=request.json)
return {"info": result}

View File

@ -1,6 +1,7 @@
from bson import ObjectId
from datetime import datetime
from Company.Basic.Business.BusinessImpl import BusinessImpl
from Company.CompanyUtils import CompanyUtils
from Company.Supervision.Abnormal.AbnormalObj import AbnormalObj
from Company.Supervision.Penalties.PenaltiesObj import PenaltiesObj
from DBHelper.MongoHelperInstance import DB_TYC, DB_TEST
from Utils.CommonUtil import CommonUtils
@ -10,7 +11,34 @@ class PenaltiesImpl(object):
"""行政处罚"""
@staticmethod
def auto_update(**kwargs):
def verify_time(**kwargs):
"""校验更新时间"""
def calculate_jet_lag(begin_time):
"""计算时差"""
end_time = CommonUtils.get_current_time()
time_1_struct = datetime.strptime(end_time, "%Y-%m-%d %H:%M:%S")
time_2_struct = datetime.strptime(begin_time, "%Y-%m-%d %H:%M:%S")
seconds = (time_1_struct - time_2_struct).seconds
if seconds > 60:
return True
else:
return False
condition = kwargs['condition']
start_time = DB_TEST.find_all_data(
'WR_DataBase_v2_test',
'C11.2_行政处罚',
condition,
['更新时间']
)
if start_time:
res = calculate_jet_lag(start_time[-1]['更新时间'])
else:
res = True
return res
def auto_update(self, **kwargs):
"""新增/更新(自动)"""
condition = kwargs['condition']
@ -31,7 +59,6 @@ class PenaltiesImpl(object):
for record_item in records_item:
dict_data = dict()
dict_data['企业ID'] = company_id
dict_data['处罚ID'] = CompanyUtils.make_new_penalties_id()
dict_data['处罚日期'] = record_item['decisionDate']
dict_data['处罚类型'] = record_item['type']
dict_data['决定书文号'] = record_item['punishNumber']
@ -54,14 +81,16 @@ class PenaltiesImpl(object):
{'企业ID': cid},
'企业名称'
)
# 判断更新时间
verify_res = self.verify_time(condition={"企业ID": cid})
if not verify_res:
return 'Please try again in a minute'
update = save_data(cname=cname, cid=cid)
if update:
for item in update:
DB_TEST.update_single_data(
DB_TEST.insert_many_data(
"WR_DataBase_v2_test",
"C11.2_行政处罚",
{"企业ID": cid, "处罚ID": item['处罚ID']},
item
update
)
return 'success'
else:
@ -85,14 +114,16 @@ class PenaltiesImpl(object):
)
else:
return 'new failed'
# 判断更新时间
verify_res = self.verify_time(condition={"企业ID": cid})
if not verify_res:
return 'Please try again in a minute'
insert = save_data(cname=cname, cid=cid)
if insert:
for item in insert:
DB_TEST.upsert_single_data(
DB_TEST.insert_many_data(
"WR_DataBase_v2_test",
"C11.2_行政处罚",
{"企业ID": cid, "处罚ID": item['处罚ID']},
item
insert
)
return 'success'
else:
@ -100,17 +131,94 @@ class PenaltiesImpl(object):
else:
return 'parameter exception'
def manu_update(self, **kwargs):
"""新增/更新(手动)"""
cid = kwargs['cid']
cname = kwargs['cname']
template = kwargs['template']
data = CompanyUtils.excel_sheet_parser(file=template)
if len(cid):
verify_res = self.verify_time(condition={"企业ID": cid})
if not verify_res:
return 'Please try again in a minute'
if data:
data_list = list()
for item in data:
penalties = PenaltiesObj()
penalties.cid = cid
penalties.date = CommonUtils.excel_time_stamp(item['处罚日期'])
penalties.types = item['处罚类型']
penalties.number = item['决定书文号']
penalties.reason = item['处罚事由']
penalties.result = item['处罚结果']
penalties.amount = item['处罚金额(元)']
penalties.department = item['处罚单位']
penalties.source = item['数据来源']
penalties.update_time = CommonUtils.get_current_time()
data_list.append(penalties.fields_toggle())
DB_TEST.insert_many_data(
"WR_DataBase_v2_test",
"C11.2_行政处罚",
data_list
)
return 'success'
else:
return 'update failed'
elif len(cname):
cid = DB_TEST.find_single_column(
'WR_DataBase_v2_test',
'C3.1_工商信息',
{'企业名称': cname},
'企业ID'
)
if not cid:
res = BusinessImpl.auto_update(condition={"cname": cname, "cid": ""})
if res == 'success':
cid = DB_TEST.find_single_column(
'WR_DataBase_v2_test',
'C3.1_工商信息',
{'企业名称': cname},
'企业ID'
)
else:
return 'new failed'
verify_res = self.verify_time(condition={"企业ID": cid})
if not verify_res:
return 'Please try again in a minute'
if data:
data_list = list()
for item in data:
penalties = PenaltiesObj()
penalties.cid = cid
penalties.date = CommonUtils.excel_time_stamp(item['处罚日期'])
penalties.types = item['处罚类型']
penalties.number = item['决定书文号']
penalties.reason = item['处罚事由']
penalties.result = item['处罚结果']
penalties.amount = item['处罚金额(元)']
penalties.department = item['处罚单位']
penalties.source = item['数据来源']
penalties.update_time = CommonUtils.get_current_time()
data_list.append(penalties.fields_toggle())
DB_TEST.insert_many_data(
"WR_DataBase_v2_test",
"C11.2_行政处罚",
data_list
)
return 'success'
else:
return 'parameter exception'
@staticmethod
def delete(**kwargs):
"""删除"""
param = kwargs['param']
cid = param['cid']
penalties_id = param['penalties_id']
_id = param['_id']
res = DB_TEST.delete_single_data(
"WR_DataBase_v2_test",
"C11.2_行政处罚",
{"企业ID": cid, "处罚ID": penalties_id},
{"_id": ObjectId(_id)}
)
if res:
@ -127,8 +235,7 @@ class PenaltiesImpl(object):
def edit(**kwargs):
"""编辑"""
param = kwargs['param']
cid = param['cid']
penalties_id = param['penalties_id']
_id = param['_id']
body = param['body']
try:
penalties = PenaltiesObj()
@ -145,7 +252,7 @@ class PenaltiesImpl(object):
DB_TEST.update_single_data(
"WR_DataBase_v2_test",
"C11.2_行政处罚",
{"企业ID": cid, "处罚ID": penalties_id},
{"_id": ObjectId(_id)},
update_data
)
return 'success'
@ -178,6 +285,8 @@ class PenaltiesImpl(object):
)
if record:
for rec in record:
rec['_id'] = str(rec['_id'])
update_time = record[-1]['更新时间']
result = {
"info": "success",

View File

@ -18,7 +18,6 @@ class PenaltiesObj(SpecObject):
fields_map = {
"cid": "企业ID",
"penalties_id": "处罚ID",
"date": "处罚日期",
"types": "处罚类型",
"number": "决定书文号",

View File

@ -19,11 +19,23 @@ def auto_update_route():
return {"info": e.__str__()}, e.status_code
@administrative_penalties_route.route('/manu_update', methods=['POST'])
def manu_update_route():
"""新增/更新(手动)"""
try:
RouteParamsCheck(req=request.form, params=["cid", "cname"]).required()
impl = PenaltiesImpl()
result = impl.manu_update(cid=request.form['cid'], cname=request.form['cname'], template=request.files['template'])
return {"info": result}
except APIReturnError as e:
return {"info": e.__str__()}, e.status_code
@administrative_penalties_route.route('/delete', methods=['GET'])
def delete_route():
"""删除"""
try:
RouteParamsCheck(req=request.args, params=["cid", "penalties_id"]).required()
RouteParamsCheck(req=request.args, params=["_id"]).required()
impl = PenaltiesImpl()
result = impl.delete(param=request.args)
return result
@ -35,7 +47,7 @@ def delete_route():
def edit_route():
"""编辑"""
try:
RouteParamsCheck(req=request.json, params=["cid", "penalties_id", "body"]).required()
RouteParamsCheck(req=request.json, params=["_id", "body"]).required()
impl = PenaltiesImpl()
result = impl.edit(param=request.json)
return {"info": result}

View File

@ -1,3 +1,5 @@
from bson import ObjectId
from datetime import datetime
from Company.Basic.Business.BusinessImpl import BusinessImpl
from Company.CompanyUtils import CompanyUtils
from Company.Supervision.TaxArrears.TaxArrearsObj import TaxArrearsObj
@ -9,7 +11,34 @@ class TaxArrearsImpl(object):
"""欠税公告"""
@staticmethod
def auto_update(**kwargs):
def verify_time(**kwargs):
"""校验更新时间"""
def calculate_jet_lag(begin_time):
"""计算时差"""
end_time = CommonUtils.get_current_time()
time_1_struct = datetime.strptime(end_time, "%Y-%m-%d %H:%M:%S")
time_2_struct = datetime.strptime(begin_time, "%Y-%m-%d %H:%M:%S")
seconds = (time_1_struct - time_2_struct).seconds
if seconds > 60:
return True
else:
return False
condition = kwargs['condition']
start_time = DB_TEST.find_all_data(
'WR_DataBase_v2_test',
'C11.6_欠税公告',
condition,
['更新时间']
)
if start_time:
res = calculate_jet_lag(start_time[-1]['更新时间'])
else:
res = True
return res
def auto_update(self, **kwargs):
"""新增/更新(自动)"""
condition = kwargs['condition']
@ -30,7 +59,6 @@ class TaxArrearsImpl(object):
for record_item in records_item:
dict_data = dict()
dict_data['企业ID'] = company_id
dict_data['欠税ID'] = CompanyUtils.make_new_arrears_id()
dict_data['欠税税种'] = record_item['taxCategory']
dict_data['欠税余额'] = record_item['ownTaxBalance']
dict_data['发布单位'] = record_item['department']
@ -49,14 +77,16 @@ class TaxArrearsImpl(object):
{'企业ID': cid},
'企业名称'
)
# 判断更新时间
verify_res = self.verify_time(condition={"企业ID": cid})
if not verify_res:
return 'Please try again in a minute'
update = save_data(cname=cname, cid=cid)
if update:
for item in update:
DB_TEST.update_single_data(
DB_TEST.insert_many_data(
"WR_DataBase_v2_test",
"C11.6_欠税公告",
{"企业ID": cid, "欠税ID": item['欠税ID']},
item
update
)
return 'success'
else:
@ -80,14 +110,16 @@ class TaxArrearsImpl(object):
)
else:
return 'new failed'
# 判断更新时间
verify_res = self.verify_time(condition={"企业ID": cid})
if not verify_res:
return 'Please try again in a minute'
insert = save_data(cname=cname, cid=cid)
if insert:
for item in insert:
DB_TEST.upsert_single_data(
DB_TEST.insert_many_data(
"WR_DataBase_v2_test",
"C11.6_欠税公告",
{"企业ID": cid, "欠税ID": item['欠税ID']},
item
insert
)
return 'success'
else:
@ -95,17 +127,86 @@ class TaxArrearsImpl(object):
else:
return 'parameter exception'
def manu_update(self, **kwargs):
"""新增/更新(手动)"""
cid = kwargs['cid']
cname = kwargs['cname']
template = kwargs['template']
data = CompanyUtils.excel_sheet_parser(file=template)
if len(cid):
verify_res = self.verify_time(condition={"企业ID": cid})
if not verify_res:
return 'Please try again in a minute'
if data:
data_list = list()
for item in data:
arrears = TaxArrearsObj()
arrears.cid = cid
arrears.types = item['欠税税种']
arrears.tax_arrears = item['欠税余额']
arrears.publish_unit = item['发布单位']
arrears.date = CommonUtils.excel_time_stamp(item['发布日期'])
arrears.update_time = CommonUtils.get_current_time()
data_list.append(arrears.fields_toggle())
DB_TEST.insert_many_data(
"WR_DataBase_v2_test",
"C11.6_欠税公告",
data_list
)
return 'success'
else:
return 'update failed'
elif len(cname):
cid = DB_TEST.find_single_column(
'WR_DataBase_v2_test',
'C3.1_工商信息',
{'企业名称': cname},
'企业ID'
)
if not cid:
res = BusinessImpl.auto_update(condition={"cname": cname, "cid": ""})
if res == 'success':
cid = DB_TEST.find_single_column(
'WR_DataBase_v2_test',
'C3.1_工商信息',
{'企业名称': cname},
'企业ID'
)
else:
return 'new failed'
verify_res = self.verify_time(condition={"企业ID": cid})
if not verify_res:
return 'Please try again in a minute'
if data:
data_list = list()
for item in data:
arrears = TaxArrearsObj()
arrears.cid = cid
arrears.types = item['欠税税种']
arrears.tax_arrears = item['欠税余额']
arrears.publish_unit = item['发布单位']
arrears.date = CommonUtils.excel_time_stamp(item['发布日期'])
arrears.update_time = CommonUtils.get_current_time()
data_list.append(arrears.fields_toggle())
DB_TEST.insert_many_data(
"WR_DataBase_v2_test",
"C11.6_欠税公告",
data_list
)
return 'success'
else:
return 'parameter exception'
@staticmethod
def delete(**kwargs):
"""删除"""
param = kwargs['param']
cid = param['cid']
arrears_id = param['arrears_id']
_id = param['_id']
res = DB_TEST.delete_single_data(
"WR_DataBase_v2_test",
"C11.6_欠税公告",
{"企业ID": cid, "欠税ID": arrears_id}
{"_id": ObjectId(_id)}
)
if res:
@ -122,8 +223,7 @@ class TaxArrearsImpl(object):
def edit(**kwargs):
"""编辑"""
param = kwargs['param']
cid = param['cid']
arrears_id = param['arrears_id']
_id = param['_id']
body = param['body']
try:
arrears = TaxArrearsObj()
@ -136,7 +236,7 @@ class TaxArrearsImpl(object):
DB_TEST.update_single_data(
"WR_DataBase_v2_test",
"C11.6_欠税公告",
{"企业ID": cid, "欠税ID": arrears_id},
{"_id": ObjectId(_id)},
update_data
)
return 'success'
@ -169,6 +269,8 @@ class TaxArrearsImpl(object):
)
if record:
for rec in record:
rec['_id'] = str(rec['_id'])
update_time = record[-1]['更新时间']
result = {
"info": "success",

View File

@ -19,11 +19,23 @@ def auto_update_route():
return {"info": e.__str__()}, e.status_code
@tax_arrears_announcement_route.route('/manu_update', methods=['POST'])
def manu_update_route():
"""新增/更新(手动)"""
try:
RouteParamsCheck(req=request.form, params=["cid", "cname"]).required()
impl = TaxArrearsImpl()
result = impl.manu_update(cid=request.form['cid'], cname=request.form['cname'], template=request.files['template'])
return {"info": result}
except APIReturnError as e:
return {"info": e.__str__()}, e.status_code
@tax_arrears_announcement_route.route('/delete', methods=['GET'])
def delete_route():
"""删除"""
try:
RouteParamsCheck(req=request.args, params=["cid", "arrears_id"]).required()
RouteParamsCheck(req=request.args, params=["_id"]).required()
impl = TaxArrearsImpl()
result = impl.delete(param=request.args)
return result
@ -35,7 +47,7 @@ def delete_route():
def edit_route():
"""编辑"""
try:
RouteParamsCheck(req=request.json, params=["cid", "arrears_id", "body"]).required()
RouteParamsCheck(req=request.json, params=["_id", "body"]).required()
impl = TaxArrearsImpl()
result = impl.edit(param=request.json)
return {"info": result}

View File

@ -1,16 +1,44 @@
from bson import ObjectId
from datetime import datetime
from Company.Basic.Business.BusinessImpl import BusinessImpl
from Company.CompanyUtils import CompanyUtils
from Company.Supervision.TaxViolation.TaxViolationObj import TaxViolationObj
from Company.Supervision.Violation.ViolationObj import ViolationObj
from DBHelper.MongoHelperInstance import DB_TYC, DB_TEST
from Utils.CommonUtil import CommonUtils
class TaxViolationImpl(object):
"""行政处罚"""
"""税收违法"""
@staticmethod
def auto_update(**kwargs):
def verify_time(**kwargs):
"""校验更新时间"""
def calculate_jet_lag(begin_time):
"""计算时差"""
end_time = CommonUtils.get_current_time()
time_1_struct = datetime.strptime(end_time, "%Y-%m-%d %H:%M:%S")
time_2_struct = datetime.strptime(begin_time, "%Y-%m-%d %H:%M:%S")
seconds = (time_1_struct - time_2_struct).seconds
if seconds > 60:
return True
else:
return False
condition = kwargs['condition']
start_time = DB_TEST.find_all_data(
'WR_DataBase_v2_test',
'C11.4_税收违法',
condition,
['更新时间']
)
if start_time:
res = calculate_jet_lag(start_time[-1]['更新时间'])
else:
res = True
return res
def auto_update(self, **kwargs):
"""新增/更新(自动)"""
condition = kwargs['condition']
@ -31,7 +59,6 @@ class TaxViolationImpl(object):
for record_item in records_item:
dict_data = dict()
dict_data['企业ID'] = company_id
dict_data['违法ID'] = CompanyUtils.make_new_tax_id()
dict_data['发布日期'] = record_item['publish_time']
dict_data['税务机关'] = record_item['department']
dict_data['案件性质'] = record_item['case_type']
@ -51,14 +78,16 @@ class TaxViolationImpl(object):
{'企业ID': cid},
'企业名称'
)
# 判断更新时间
verify_res = self.verify_time(condition={"企业ID": cid})
if not verify_res:
return 'Please try again in a minute'
update = save_data(cname=cname, cid=cid)
if update:
for item in update:
DB_TEST.update_single_data(
DB_TEST.insert_many_data(
"WR_DataBase_v2_test",
"C11.4_税收违法",
{"企业ID": cid, "违法ID": item['违法ID']},
item
update
)
return 'success'
else:
@ -82,14 +111,16 @@ class TaxViolationImpl(object):
)
else:
return 'new failed'
# 判断更新时间
verify_res = self.verify_time(condition={"企业ID": cid})
if not verify_res:
return 'Please try again in a minute'
insert = save_data(cname=cname, cid=cid)
if insert:
for item in insert:
DB_TEST.upsert_single_data(
DB_TEST.insert_many_data(
"WR_DataBase_v2_test",
"C11.4_税收违法",
{"企业ID": cid, "违法ID": item['违法ID']},
item
insert
)
return 'success'
else:
@ -97,17 +128,88 @@ class TaxViolationImpl(object):
else:
return 'parameter exception'
def manu_update(self, **kwargs):
"""新增/更新(手动)"""
cid = kwargs['cid']
cname = kwargs['cname']
template = kwargs['template']
data = CompanyUtils.excel_sheet_parser(file=template)
if len(cid):
verify_res = self.verify_time(condition={"企业ID": cid})
if not verify_res:
return 'Please try again in a minute'
if data:
data_list = list()
for item in data:
violation = TaxViolationObj()
violation.cid = cid
violation.date = CommonUtils.excel_time_stamp(item['发布日期'])
violation.department = item['税务机关']
violation.quality = item['案件性质']
violation.illegal_facts = item['违法事实']
violation.penalties = item['处罚情况']
violation.update_time = CommonUtils.get_current_time()
data_list.append(violation.fields_toggle())
DB_TEST.insert_many_data(
"WR_DataBase_v2_test",
"C11.4_税收违法",
data_list
)
return 'success'
else:
return 'update failed'
elif len(cname):
cid = DB_TEST.find_single_column(
'WR_DataBase_v2_test',
'C3.1_工商信息',
{'企业名称': cname},
'企业ID'
)
if not cid:
res = BusinessImpl.auto_update(condition={"cname": cname, "cid": ""})
if res == 'success':
cid = DB_TEST.find_single_column(
'WR_DataBase_v2_test',
'C3.1_工商信息',
{'企业名称': cname},
'企业ID'
)
else:
return 'new failed'
verify_res = self.verify_time(condition={"企业ID": cid})
if not verify_res:
return 'Please try again in a minute'
if data:
data_list = list()
for item in data:
violation = TaxViolationObj()
violation.cid = cid
violation.date = CommonUtils.excel_time_stamp(item['发布日期'])
violation.department = item['税务机关']
violation.quality = item['案件性质']
violation.illegal_facts = item['违法事实']
violation.penalties = item['处罚情况']
violation.update_time = CommonUtils.get_current_time()
data_list.append(violation.fields_toggle())
DB_TEST.insert_many_data(
"WR_DataBase_v2_test",
"C11.4_税收违法",
data_list
)
return 'success'
else:
return 'parameter exception'
@staticmethod
def delete(**kwargs):
"""删除"""
param = kwargs['param']
cid = param['cid']
violation_id = param['violation_id']
_id = param['_id']
res = DB_TEST.delete_single_data(
"WR_DataBase_v2_test",
"C11.4_税收违法",
{"企业ID": cid, "违法ID": violation_id}
{"_id": ObjectId(_id)}
)
if res:
@ -124,22 +226,21 @@ class TaxViolationImpl(object):
def edit(**kwargs):
"""编辑"""
param = kwargs['param']
cid = param['cid']
violation_id = param['violation_id']
_id = param['_id']
body = param['body']
try:
violation = TaxViolationObj()
violation.date = body['发布日期']
violation.department = body['税务机关']
violation.quality = body['案件性质']
violation.illegal_facts = None
violation.penalties = None
violation.illegal_facts = body['违法事实']
violation.penalties = body['处罚情况']
violation.update_time = CommonUtils.get_current_time()
update_data = violation.fields_toggle()
DB_TEST.update_single_data(
"WR_DataBase_v2_test",
"C11.4_税收违法",
{"企业ID": cid, "违法ID": violation_id},
{"_id": ObjectId(_id)},
update_data
)
return 'success'
@ -172,6 +273,8 @@ class TaxViolationImpl(object):
)
if record:
for rec in record:
rec['_id'] = str(rec['_id'])
update_time = record[-1]['更新时间']
result = {
"info": "success",

View File

@ -5,7 +5,6 @@ from Utils.ValidateUtil import ValidateAttr, Validate
class TaxViolationObj(SpecObject):
"""行政处罚"""
cid = ValidateAttr(field='cid', type=str, length=8)
violation_id = ValidateAttr(field='violation_id', type=str, length=8)
date = ValidateAttr(field='date', func=Validate.date_format)
department = ValidateAttr(field='department', type=str, default=None)
quality = ValidateAttr(field='quality', type=str, default=None)
@ -15,7 +14,6 @@ class TaxViolationObj(SpecObject):
fields_map = {
"cid": "企业ID",
"violation_id": "违法ID",
"date": "发布日期",
"department": "税务机关",
"quality": "案件性质",

View File

@ -19,11 +19,23 @@ def auto_update_route():
return {"info": e.__str__()}, e.status_code
@tax_violation_route.route('/manu_update', methods=['POST'])
def manu_update_route():
"""新增/更新(手动)"""
try:
RouteParamsCheck(req=request.form, params=["cid", "cname"]).required()
impl = TaxViolationImpl()
result = impl.manu_update(cid=request.form['cid'], cname=request.form['cname'], template=request.files['template'])
return {"info": result}
except APIReturnError as e:
return {"info": e.__str__()}, e.status_code
@tax_violation_route.route('/delete', methods=['GET'])
def delete_route():
"""删除"""
try:
RouteParamsCheck(req=request.args, params=["cid", "violation_id"]).required()
RouteParamsCheck(req=request.args, params=["_id"]).required()
impl = TaxViolationImpl()
result = impl.delete(param=request.args)
return result
@ -35,7 +47,7 @@ def delete_route():
def edit_route():
"""编辑"""
try:
RouteParamsCheck(req=request.json, params=["cid", "violation_id", "body"]).required()
RouteParamsCheck(req=request.json, params=["_id", "body"]).required()
impl = TaxViolationImpl()
result = impl.edit(param=request.json)
return {"info": result}

View File

@ -1,16 +1,44 @@
from bson import ObjectId
from datetime import datetime
from Company.Basic.Business.BusinessImpl import BusinessImpl
from Company.CompanyUtils import CompanyUtils
from Company.Supervision.Penalties.PenaltiesObj import PenaltiesObj
from Company.Supervision.Violation.ViolationObj import ViolationObj
from DBHelper.MongoHelperInstance import DB_TYC, DB_TEST
from Utils.CommonUtil import CommonUtils
class ViolationImpl(object):
"""行政处罚"""
"""严重违法"""
@staticmethod
def auto_update(**kwargs):
def verify_time(**kwargs):
"""校验更新时间"""
def calculate_jet_lag(begin_time):
"""计算时差"""
end_time = CommonUtils.get_current_time()
time_1_struct = datetime.strptime(end_time, "%Y-%m-%d %H:%M:%S")
time_2_struct = datetime.strptime(begin_time, "%Y-%m-%d %H:%M:%S")
seconds = (time_1_struct - time_2_struct).seconds
if seconds > 60:
return True
else:
return False
condition = kwargs['condition']
start_time = DB_TEST.find_all_data(
'WR_DataBase_v2_test',
'C11.3_严重违法',
condition,
['更新时间']
)
if start_time:
res = calculate_jet_lag(start_time[-1]['更新时间'])
else:
res = True
return res
def auto_update(self, **kwargs):
"""新增/更新(自动)"""
condition = kwargs['condition']
@ -31,7 +59,6 @@ class ViolationImpl(object):
for record_item in records_item:
dict_data = dict()
dict_data['企业ID'] = company_id
dict_data['违法ID'] = CompanyUtils.make_new_violation_id()
dict_data['列入日期'] = CommonUtils.time_stamp(record_item['putDate'])
dict_data['列入决定机关'] = record_item['putDepartment']
dict_data['列入原因'] = record_item['putReason']
@ -49,14 +76,16 @@ class ViolationImpl(object):
{'企业ID': cid},
'企业名称'
)
# 判断更新时间
verify_res = self.verify_time(condition={"企业ID": cid})
if not verify_res:
return 'Please try again in a minute'
update = save_data(cname=cname, cid=cid)
if update:
for item in update:
DB_TEST.update_single_data(
DB_TEST.insert_many_data(
"WR_DataBase_v2_test",
"C11.3_严重违法",
{"企业ID": cid, "违法ID": item['违法ID']},
item
update
)
return 'success'
else:
@ -80,14 +109,16 @@ class ViolationImpl(object):
)
else:
return 'new failed'
# 判断更新时间
verify_res = self.verify_time(condition={"企业ID": cid})
if not verify_res:
return 'Please try again in a minute'
insert = save_data(cname=cname, cid=cid)
if insert:
for item in insert:
DB_TEST.upsert_single_data(
DB_TEST.insert_many_data(
"WR_DataBase_v2_test",
"C11.3_严重违法",
{"企业ID": cid, "违法ID": item['违法ID']},
item
insert
)
return 'success'
else:
@ -95,17 +126,84 @@ class ViolationImpl(object):
else:
return 'parameter exception'
def manu_update(self, **kwargs):
"""新增/更新(手动)"""
cid = kwargs['cid']
cname = kwargs['cname']
template = kwargs['template']
data = CompanyUtils.excel_sheet_parser(file=template)
if len(cid):
verify_res = self.verify_time(condition={"企业ID": cid})
if not verify_res:
return 'Please try again in a minute'
if data:
data_list = list()
for item in data:
violation = ViolationObj()
violation.cid = cid
violation.date = CommonUtils.excel_time_stamp(item['列入日期'])
violation.department = item['列入决定机关']
violation.reason = item['列入原因']
violation.update_time = CommonUtils.get_current_time()
data_list.append(violation.fields_toggle())
DB_TEST.insert_many_data(
"WR_DataBase_v2_test",
"C11.3_严重违法",
data_list
)
return 'success'
else:
return 'update failed'
elif len(cname):
cid = DB_TEST.find_single_column(
'WR_DataBase_v2_test',
'C3.1_工商信息',
{'企业名称': cname},
'企业ID'
)
if not cid:
res = BusinessImpl.auto_update(condition={"cname": cname, "cid": ""})
if res == 'success':
cid = DB_TEST.find_single_column(
'WR_DataBase_v2_test',
'C3.1_工商信息',
{'企业名称': cname},
'企业ID'
)
else:
return 'new failed'
verify_res = self.verify_time(condition={"企业ID": cid})
if not verify_res:
return 'Please try again in a minute'
if data:
data_list = list()
for item in data:
violation = ViolationObj()
violation.cid = cid
violation.date = CommonUtils.excel_time_stamp(item['列入日期'])
violation.department = item['列入决定机关']
violation.reason = item['列入原因']
violation.update_time = CommonUtils.get_current_time()
data_list.append(violation.fields_toggle())
DB_TEST.insert_many_data(
"WR_DataBase_v2_test",
"C11.3_严重违法",
data_list
)
return 'success'
else:
return 'parameter exception'
@staticmethod
def delete(**kwargs):
"""删除"""
param = kwargs['param']
cid = param['cid']
violation_id = param['violation_id']
_id = param['_id']
res = DB_TEST.delete_single_data(
"WR_DataBase_v2_test",
"C11.3_严重违法",
{"企业ID": cid, "违法ID": violation_id}
{"_id": ObjectId(_id)}
)
if res:
@ -122,8 +220,7 @@ class ViolationImpl(object):
def edit(**kwargs):
"""编辑"""
param = kwargs['param']
cid = param['cid']
violation_id = param['violation_id']
_id = param['_id']
body = param['body']
try:
violation = ViolationObj()
@ -135,7 +232,7 @@ class ViolationImpl(object):
DB_TEST.update_single_data(
"WR_DataBase_v2_test",
"C11.3_严重违法",
{"企业ID": cid, "违法ID": violation_id},
{"_id": ObjectId(_id)},
update_data
)
return 'success'
@ -168,6 +265,8 @@ class ViolationImpl(object):
)
if record:
for rec in record:
rec['_id'] = str(rec['_id'])
update_time = record[-1]['更新时间']
result = {
"info": "success",

View File

@ -5,7 +5,6 @@ from Utils.ValidateUtil import ValidateAttr, Validate
class ViolationObj(SpecObject):
"""行政处罚"""
cid = ValidateAttr(field='cid', type=str, length=8)
violation_id = ValidateAttr(field='violation_id', type=str, length=8)
date = ValidateAttr(field='date', func=Validate.date_format)
department = ValidateAttr(field='department', type=str, default=None)
reason = ValidateAttr(field='reason', type=str, default=None)
@ -13,7 +12,6 @@ class ViolationObj(SpecObject):
fields_map = {
"cid": "企业ID",
"violation_id": "违法ID",
"date": "列入日期",
"department": "列入决定机关",
"reason": "列入原因",

View File

@ -19,11 +19,23 @@ def auto_update_route():
return {"info": e.__str__()}, e.status_code
@serious_violation_route.route('/manu_update', methods=['POST'])
def manu_update_route():
"""新增/更新(手动)"""
try:
RouteParamsCheck(req=request.form, params=["cid", "cname"]).required()
impl = ViolationImpl()
result = impl.manu_update(cid=request.form['cid'], cname=request.form['cname'], template=request.files['template'])
return {"info": result}
except APIReturnError as e:
return {"info": e.__str__()}, e.status_code
@serious_violation_route.route('/delete', methods=['GET'])
def delete_route():
"""删除"""
try:
RouteParamsCheck(req=request.args, params=["cid", "violation_id"]).required()
RouteParamsCheck(req=request.args, params=["_id"]).required()
impl = ViolationImpl()
result = impl.delete(param=request.args)
return result
@ -35,7 +47,7 @@ def delete_route():
def edit_route():
"""编辑"""
try:
RouteParamsCheck(req=request.json, params=["cid", "violation_id", "body"]).required()
RouteParamsCheck(req=request.json, params=["_id", "body"]).required()
impl = ViolationImpl()
result = impl.edit(param=request.json)
return {"info": result}