diff --git a/Company/Basic/BasicImpl.py b/Company/Basic/BasicImpl.py deleted file mode 100644 index 159d4a6..0000000 --- a/Company/Basic/BasicImpl.py +++ /dev/null @@ -1,429 +0,0 @@ -from Company.Basic.Business.BusinessObj import BusinessInfo -from Company.CompanyUtils import CompanyUtils -from DBHelper.MongoHelperInstance import DB_TYC, DB_TEST -from Utils.CommonUtil import CommonUtils - - -class BasicImpl(object): - """基本信息""" - - @staticmethod - def auto_update(**kwargs): - """新增/更新(自动)""" - condition = kwargs['condition'] - - def save_data(**args): - """查询保存数据""" - company_name = args['cname'] - company_id = args['cid'] - record = DB_TYC.find_single_data( - '公司背景', - '基本信息', - {'企业名称': company_name}, - ['基本信息'] - ) - if record: - record = record['基本信息'] - data = dict() - data['企业ID'] = company_id - data['企业名称'] = cname - data['企业类型'] = record['companyOrgType'] - data['经营状态'] = record['regStatus'] - data['法定代表人'] = record['legalPersonName'] - data['注册资本'] = record['regCapital'] - data['实缴资本'] = record['actualCapital'] - data['经营范围'] = record['businessScope'] - data['社会统一信用代码'] = record['creditCode'] - data['成立日期'] = CommonUtils.time_stamp(record['estiblishTime']) - data['注册地址'] = record['regLocation'] - data['登记机关'] = record['regInstitute'] - data['核准日期'] = CommonUtils.time_stamp(record['approvedTime']) - data['更新时间'] = CommonUtils.get_current_time() - return data - else: - return False - - if len(condition['cid']): - cid = condition['cid'] - cname = DB_TEST.find_single_column( - 'WR_DataBase_v2_test', - 'C3.1_工商信息', - {'企业ID': cid}, - '企业名称' - ) - update = save_data(cname=cname, cid=cid) - if update: - DB_TEST.update_single_data( - "WR_DataBase_v2_test", - "C3.1_工商信息", - {"企业ID": cid}, - update - ) - return 'success' - else: - return 'update failed' - elif len(condition['cname']): - cname = condition['cname'] - cid = CompanyUtils.make_new_cid() - insert = save_data(cname=cname, cid=cid) - if insert: - DB_TEST.upsert_single_data( - "WR_DataBase_v2_test", - "C3.1_工商信息", - {"企业名称": cname}, - insert - ) - return 'success' - else: - return '"new failed"' - else: - return 'parameter exception' - - @staticmethod - def edit(**kwargs): - """编辑""" - param = kwargs['param'] - cid = param['cid'] - body = param['body'] - - try: - business = BusinessInfo() - business.cname = body['企业名称'] - business.ctype = body['企业类型'] - business.status = body['经营状态'] - business.representative = body['法定代表人'] - business.registered_capital = body['注册资本'] - business.paid_capital = body['实缴资本'] - business.code = body['社会统一信用代码'] - business.establishment_date = body['成立日期'] - business.address = body['注册地址'] - business.agencies = body['登记机关'] - business.approved_date = body['核准日期'] - business.business_scope = body['经营范围'] - business.update_time = CommonUtils.get_current_time() - - DB_TEST.update_single_data( - "WR_DataBase_v2_test", - "C3.1_工商信息", - {"企业ID": cid}, - business.fields_toggle() - ) - return 'success' - except Exception: - return 'edit failed' - - @staticmethod - def view(**kwargs): - """查看""" - cid = kwargs['cid'] - - record = DB_TEST.find_single_data( - "WR_DataBase_v2_test", - "C3.1_工商信息", - {"企业ID": cid}, - [] - ) - - if record: - result = { - "info": "success", - "result": record - } - else: - result = { - "info": "no result" - } - return result - - def get_cid(self, **kwargs): - """查询工商信息中的企业ID""" - name = kwargs['name'] - cid = DB_TEST.find_single_column( - "WR_DataBase_v2_test", - "C3.1_工商信息", - {"企业名称": name}, - '企业ID' - ) - if not cid: - self.auto_update(name=name) - cid = DB_TEST.find_single_column( - "WR_DataBase_v2_test", - "C3.1_工商信息", - {"企业名称": name}, - '企业ID' - ) - return cid - - def shareholders_information(self, **kwargs): - """股东信息""" - name = kwargs['name'] - cid = self.get_cid(name=name) - - records = DB_TYC.find_single_column( - '公司背景', - '企业股东', - {'企业名称': name}, - '企业股东' - ) - - records = records['result'] - data = dict() - list_data = list() - if records: - for record in records: - dict_data = dict() - dict_data['股东ID'] = record['id'] - dict_data['股东名称'] = record['name'] - dict_data['股东类型'] = '公司' if record['type'] == 1 else '人' if record['type'] == 2 else '其他' - dict_data['股东性质'] = None - dict_data['持股比例'] = record['capital'][0]['percent'] - dict_data['认缴出资额'] = record['capital'][0]['amomon'] - dict_data['认缴出资日期'] = record['capital'][0]['time'] - list_data.append(dict_data) - data['企业ID'] = cid - data['股东列表'] = list_data - data['更新时间'] = CommonUtils.get_current_time() - - DB_TEST.upsert_single_data( - "WR_DataBase_v2_test", - "C3.2_股东信息", - {"企业名称": name, '企业ID': cid}, - data - ) - - return '导入成功' - - @staticmethod - def view_shareholders(**kwargs): - """查看工股东信息""" - cid = kwargs['cid'] - - record = DB_TEST.find_single_data( - "WR_DataBase_v2_test", - "C3.2_股东信息", - {"企业ID": cid}, - [] - ) - - return record - - def executive_information(self, **kwargs): - """高管信息""" - name = kwargs['name'] - cid = self.get_cid(name=name) - - records = DB_TYC.find_single_column( - '公司背景', - '主要人员', - {'企业名称': name}, - '主要人员' - ) - - records = records['result'] - data = dict() - list_data = list() - if records: - for record in records: - dict_data = dict() - dict_data['人物ID'] = record['id'] - dict_data['姓名'] = record['name'] - dict_data['职务'] = record['typeJoin'] - list_data.append(dict_data) - data['企业ID'] = cid - data['高管列表'] = list_data - data['更新时间'] = CommonUtils.get_current_time() - - DB_TEST.upsert_single_data( - "WR_DataBase_v2_test", - "C3.3_高管信息", - {"企业名称": name, '企业ID': cid}, - data - ) - - return '导入成功' - - @staticmethod - def view_executive(**kwargs): - """查看高管信息""" - cid = kwargs['cid'] - - record = DB_TEST.find_single_data( - "WR_DataBase_v2_test", - "C3.3_高管信息", - {"企业ID": cid}, - [] - ) - - return record - - def outbound_investment(self, **kwargs): - """对外投资""" - name = kwargs['name'] - cid = self.get_cid(name=name) - - records = DB_TYC.find_single_column( - '公司背景', - '对外投资', - {'企业名称': name}, - '对外投资' - ) - - records = records['result'] - data = dict() - list_data = list() - if records: - for record in records: - dict_data = dict() - dict_data['企业ID'] = record['id'] - dict_data['企业名称'] = record['name'] - dict_data['法定代表人'] = record['legalPersonName'] - dict_data['成立日期'] = CommonUtils.time_stamp(record['estiblishTime']) - dict_data['企业状态'] = record['regStatus'] - dict_data['投资金额'] = record['amount'] - dict_data['投资比例'] = record['percent'] - dict_data['控股情况'] = None - dict_data['所属行业'] = record['category'] - dict_data['所属省份'] = CommonUtils.province_conversion(record['base']) - dict_data['所属地市'] = None - list_data.append(dict_data) - data['企业ID'] = cid - data['投资列表'] = list_data - data['更新时间'] = CommonUtils.get_current_time() - - DB_TEST.upsert_single_data( - "WR_DataBase_v2_test", - "C3.4_对外投资", - {"企业名称": name, '企业ID': cid}, - data - ) - - return '导入成功' - - @staticmethod - def view_outbound_investment(**kwargs): - """查看对外投资""" - cid = kwargs['cid'] - - record = DB_TEST.find_single_data( - "WR_DataBase_v2_test", - "C3.4_对外投资", - {"企业ID": cid}, - [] - ) - - return record - - def branch_offices(self, **kwargs): - """分支机构""" - name = kwargs['name'] - cid = self.get_cid(name=name) - - records = DB_TYC.find_single_column( - '公司背景', - '分支机构', - {'企业名称': name}, - '分支机构' - ) - - records = records['result'] - data = dict() - list_data = list() - if records: - for record in records: - dict_data = dict() - dict_data['企业ID'] = record['id'] - dict_data['企业名称'] = record['name'] - dict_data['负责人'] = record['legalPersonName'] - dict_data['成立日期'] = CommonUtils.time_stamp(record['estiblishTime']) - dict_data['企业状态'] = record['regStatus'] - dict_data['所属省份'] = CommonUtils.province_conversion(record['base']) - dict_data['所属地市'] = None - list_data.append(dict_data) - data['企业ID'] = cid - data['分支列表'] = list_data - data['更新时间'] = CommonUtils.get_current_time() - - DB_TEST.upsert_single_data( - "WR_DataBase_v2_test", - "C3.5_分支机构", - {"企业名称": name, '企业ID': cid}, - data - ) - - return '导入成功' - - @staticmethod - def view_branch_offices(**kwargs): - """查看分支机构""" - cid = kwargs['cid'] - - record = DB_TEST.find_single_data( - "WR_DataBase_v2_test", - "C3.5_分支机构", - {"企业ID": cid}, - [] - ) - - return record - - def change_record(self, **kwargs): - """工商变更""" - name = kwargs['name'] - cid = self.get_cid(name=name) - - records = DB_TYC.find_single_column( - '公司背景', - '变更记录', - {'企业名称': name}, - '变更记录' - ) - - records = records['result'] - if records: - for record in records: - dict_data = dict() - dict_data['企业ID'] = cid - dict_data['变更时间'] = record['changeTime'] - dict_data['变更项目'] = record['changeItem'] - dict_data['变更前'] = record['contentBefore'] - dict_data['变更后'] = record['contentAfter'] - dict_data['更新时间'] = CommonUtils.get_current_time() - - DB_TEST.insert_single_data( - "WR_DataBase_v2_test", - "C3.6_工商变更", - dict_data - ) - - return '导入成功' - - @staticmethod - def view_change_record(**kwargs): - """查看工商变更""" - cid = kwargs['cid'] - page_no = int(kwargs['page_no']) - page_size = int(kwargs['page_size']) - page_size = 10 if page_size > 10 else page_size - - total = DB_TEST.find_all_data_with_count( - 'WR_DataBase_v2_test', - 'C3.6_工商变更', - {"企业ID": cid} - ) - - record = DB_TEST.find_data_by_page_with_sort( - "WR_DataBase_v2_test", - "C3.6_工商变更", - {"企业ID": cid}, - [], - {'_id': 1}, - page_size, - page_no - ) - - result = { - "total": total, - "records": record - } - - return result \ No newline at end of file diff --git a/Company/Basic/BasicRoutes.py b/Company/Basic/BasicRoutes.py deleted file mode 100644 index 16948bf..0000000 --- a/Company/Basic/BasicRoutes.py +++ /dev/null @@ -1,79 +0,0 @@ -from flask import Blueprint, request - -from Company.Basic.BasicImpl import BasicImpl -from Utils.ErrorUtil import APIReturnError -from Utils.RouteUtil import RouteParamsCheck - -basic_route = Blueprint('basic', __name__) - - -@basic_route.route('/investment/auto_update', methods=['GET']) -def outbound_investment_route(): - """对外投资""" - try: - RouteParamsCheck(req=request.args, params=["cname"]).required() - impl = BasicImpl() - result = impl.outbound_investment(name=request.args['cname']) - return {"info": "对外投资", "result": result} - except APIReturnError as e: - return {"info": e.__str__()}, e.status_code - - -@basic_route.route('/investment/view', methods=['GET']) -def view_outbound_investment_route(): - """对外投资-查看""" - try: - RouteParamsCheck(req=request.args, params=["cid"]).required() - impl = BasicImpl() - result = impl.view_outbound_investment(cid=request.args['cid']) - return {"info": "对外投资", "result": result} - except APIReturnError as e: - return {"info": e.__str__()}, e.status_code - - -@basic_route.route('/branch/auto_update', methods=['GET']) -def branch_offices_route(): - """分支机构""" - try: - RouteParamsCheck(req=request.args, params=["cname"]).required() - impl = BasicImpl() - result = impl.branch_offices(name=request.args['cname']) - return {"info": "分支机构", "result": result} - except APIReturnError as e: - return {"info": e.__str__()}, e.status_code - - -@basic_route.route('/branch/view', methods=['GET']) -def view_branch_offices_route(): - """分支机构-查看""" - try: - RouteParamsCheck(req=request.args, params=["cid"]).required() - impl = BasicImpl() - result = impl.view_branch_offices(cid=request.args['cid']) - return {"info": "分支机构", "result": result} - except APIReturnError as e: - return {"info": e.__str__()}, e.status_code - - -@basic_route.route('/change/auto_update', methods=['GET']) -def change_record_route(): - """工商变更""" - try: - RouteParamsCheck(req=request.args, params=["cname"]).required() - impl = BasicImpl() - result = impl.change_record(name=request.args['cname']) - return {"info": "工商变更", "result": result} - except APIReturnError as e: - return {"info": e.__str__()}, e.status_code - - -@basic_route.route('/change/view', methods=['GET']) -def view_change_record_route(): - """工商变更-查看""" - try: - RouteParamsCheck(req=request.args, params=["cid", "page_no", "page_size"]).required() - impl = BasicImpl() - result = impl.view_change_record(cid=request.args['cid'], page_no=request.args['page_no'], page_size=request.args['page_size']) - return {"info": "工商变更", "result": result} - except APIReturnError as e: - return {"info": e.__str__()}, e.status_code \ No newline at end of file diff --git a/Company/Ip/Patent/TrademarkImpl.py b/Company/Ip/Patent/TrademarkImpl.py new file mode 100644 index 0000000..8df4076 --- /dev/null +++ b/Company/Ip/Patent/TrademarkImpl.py @@ -0,0 +1,176 @@ +from Company.Basic.Business.BusinessImpl import BusinessImpl +from Company.Ip.Trademark.TrademarkObj import TrademarkObj +from DBHelper.MongoHelperInstance import DB_TYC, DB_TEST +from Modules.TycApi.TycUtils import tm_class +from Utils.CommonUtil import CommonUtils + + +class TrademarkImpl(object): + """商标信息""" + + @staticmethod + def auto_update(**kwargs): + """新增/更新(自动)""" + condition = kwargs['condition'] + + def save_data(**args): + """查询保存数据""" + company_name = args['cname'] + company_id = args['cid'] + records = DB_TYC.find_all_data( + '知识产权', + '商标信息', + {'企业名称': company_name}, + ['商标信息'] + ) + if records: + list_data = list() + for record in records: + records_item = record['商标信息']['result'] + for record_item in records_item: + dict_data = dict() + dict_data['企业ID'] = company_id + dict_data['商标名称'] = record_item['tmName'] + dict_data['商标'] = record_item['tmPic'] + dict_data['申请日期'] = CommonUtils.time_stamp(record_item['appDate']) + dict_data['注册号'] = record_item['regNo'] + dict_data['国际分类'] = tm_class[int(record_item['tmClass']) - 1] + dict_data['商标状态'] = record_item['status'] + dict_data['注册公告日期'] = CommonUtils.time_stamp(record_item['eventTime']) + dict_data['更新时间'] = CommonUtils.get_current_time() + list_data.append(dict_data) + return list_data + else: + return False + + if len(condition['cid']): + cid = condition['cid'] + cname = DB_TEST.find_single_column( + 'WR_DataBase_v2_test', + 'C3.1_工商信息', + {'企业ID': cid}, + '企业名称' + ) + update = save_data(cname=cname, cid=cid) + if update: + for item in update: + DB_TEST.update_single_data( + "WR_DataBase_v2_test", + "C5.1_商标信息", + {"企业ID": cid, "注册号": item['注册号']}, + item + ) + return 'success' + else: + return 'update failed' + elif len(condition['cname']): + cname = condition['cname'] + cid = DB_TEST.find_single_column( + 'WR_DataBase_v2_test', + 'C3.1_工商信息', + {'企业名称': cname}, + '企业ID' + ) + if not cid: + cid = BusinessImpl.auto_update(condition={"cname": cname, "cid": ""}) + insert = save_data(cname=cname, cid=cid) + if insert: + for item in insert: + DB_TEST.upsert_single_data( + "WR_DataBase_v2_test", + "C5.1_商标信息", + {"企业ID": cid, "注册号": item['注册号']}, + item + ) + return 'success' + else: + return 'new failed' + else: + return 'parameter exception' + + @staticmethod + def delete(**kwargs): + """删除""" + param = kwargs['param'] + cid = param['cid'] + registration_id = param['registration_id'] + + res = DB_TEST.delete_single_data( + "WR_DataBase_v2_test", + "C5.1_商标信息", + {"企业ID": cid, "注册号": registration_id} + ) + + if res: + result = { + "info": "success", + } + else: + result = { + "info": "no result" + } + return result + + @staticmethod + def edit(**kwargs): + """编辑""" + param = kwargs['param'] + cid = param['cid'] + registration_id = param['registration_id'] + body = param['body'] + try: + trade = TrademarkObj() + trade.trade_name = body['商标名称'] + trade.trademark = body['商标'] + trade.application_date = body['申请日期'] + trade.classification = body['国际分类'] + trade.status = body['商标状态'] + trade.registration_date = body['注册公告日期'] + trade.update_time = CommonUtils.get_current_time() + update_data = trade.fields_toggle() + DB_TEST.update_single_data( + "WR_DataBase_v2_test", + "C5.1_商标信息", + {"企业ID": cid, "注册号": registration_id}, + update_data + ) + return 'success' + except Exception: + return 'edit failed' + + @staticmethod + def view(**kwargs): + """查看""" + query = kwargs['query'] + cid = query['cid'] + page_num = int(query['page_num']) + page_size = int(query['page_size']) + page_size = 10 if page_size > 10 else page_size + + total = DB_TEST.find_all_data_with_count( + 'WR_DataBase_v2_test', + 'C5.1_商标信息', + {"企业ID": cid} + ) + + record = DB_TEST.find_data_by_page_with_sort( + "WR_DataBase_v2_test", + "C5.1_商标信息", + {"企业ID": cid}, + [], + {'_id': 1}, + page_size, + page_num + ) + + if record: + result = { + "info": "success", + "total": total, + "result": record + } + else: + result = { + "info": "no result" + } + return result diff --git a/Company/Ip/Patent/TrademarkObj.py b/Company/Ip/Patent/TrademarkObj.py new file mode 100644 index 0000000..9358332 --- /dev/null +++ b/Company/Ip/Patent/TrademarkObj.py @@ -0,0 +1,27 @@ +from Utils.ObjUtil import SpecObject +from Utils.ValidateUtil import ValidateAttr, Validate + + +class TrademarkObj(SpecObject): + """商标信息""" + cid = ValidateAttr(field='cid', type=str, length=8) + trade_name = ValidateAttr(field='trade_name', type=str) + trademark = ValidateAttr(field='trademark', type=str) + application_date = ValidateAttr(field='application_date', func=Validate.date_format) + registration_id = ValidateAttr(field='registration_id', type=str) + classification = ValidateAttr(field='classification', type=str) + status = ValidateAttr(field='status', type=str) + registration_date = ValidateAttr(field='registration_date', func=Validate.date_format) + update_time = ValidateAttr(field='update_time', func=Validate.time_format) + + fields_map = { + "cid": "企业ID", + "trade_name": "商标名称", + "trademark": "商标", + "application_date": "申请日期", + "registration_id": "注册号", + "classification": "国际分类", + "status": "商标状态", + "registration_date": "注册公告日期", + "update_time": "更新时间" + } \ No newline at end of file diff --git a/Company/Ip/Patent/TrademarkRoute.py b/Company/Ip/Patent/TrademarkRoute.py new file mode 100644 index 0000000..9da2337 --- /dev/null +++ b/Company/Ip/Patent/TrademarkRoute.py @@ -0,0 +1,55 @@ +from flask import Blueprint, request + +from Company.Ip.Trademark.TrademarkImpl import TrademarkImpl +from Utils.ErrorUtil import APIReturnError +from Utils.RouteUtil import RouteParamsCheck + +trademark_route = Blueprint('trademark', __name__) + + +@trademark_route.route('/auto_update', methods=['GET']) +def auto_update_route(): + """新增/更新(自动)""" + try: + RouteParamsCheck(req=request.args, params=["cname", "cid"]).required() + impl = TrademarkImpl() + result = impl.auto_update(condition=request.args) + return {"info": result} + except APIReturnError as e: + return {"info": e.__str__()}, e.status_code + + +@trademark_route.route('/delete', methods=['GET']) +def delete_route(): + """删除""" + try: + RouteParamsCheck(req=request.args, params=["cid", "registration_id"]).required() + impl = TrademarkImpl() + result = impl.delete(param=request.args) + return result + except APIReturnError as e: + return {"info": e.__str__()}, e.status_code + + +@trademark_route.route('/edit', methods=['POST']) +def edit_route(): + """编辑""" + try: + RouteParamsCheck(req=request.json, params=["cid", "registration_id", "body"]).required() + impl = TrademarkImpl() + result = impl.edit(param=request.json) + return {"info": result} + except APIReturnError as e: + return {"info": e.__str__()}, e.status_code + + +@trademark_route.route('/view', methods=['GET']) +def view_route(): + """查看""" + try: + RouteParamsCheck(req=request.args, params=["cid", "page_num", "page_size"]).required() + impl = TrademarkImpl() + result = impl.view(query=request.args) + return result + except APIReturnError as e: + return {"info": e.__str__()}, e.status_code diff --git a/Company/Ip/Patent/__init__.py b/Company/Ip/Patent/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/Company/Ip/Software/TrademarkImpl.py b/Company/Ip/Software/TrademarkImpl.py new file mode 100644 index 0000000..8df4076 --- /dev/null +++ b/Company/Ip/Software/TrademarkImpl.py @@ -0,0 +1,176 @@ +from Company.Basic.Business.BusinessImpl import BusinessImpl +from Company.Ip.Trademark.TrademarkObj import TrademarkObj +from DBHelper.MongoHelperInstance import DB_TYC, DB_TEST +from Modules.TycApi.TycUtils import tm_class +from Utils.CommonUtil import CommonUtils + + +class TrademarkImpl(object): + """商标信息""" + + @staticmethod + def auto_update(**kwargs): + """新增/更新(自动)""" + condition = kwargs['condition'] + + def save_data(**args): + """查询保存数据""" + company_name = args['cname'] + company_id = args['cid'] + records = DB_TYC.find_all_data( + '知识产权', + '商标信息', + {'企业名称': company_name}, + ['商标信息'] + ) + if records: + list_data = list() + for record in records: + records_item = record['商标信息']['result'] + for record_item in records_item: + dict_data = dict() + dict_data['企业ID'] = company_id + dict_data['商标名称'] = record_item['tmName'] + dict_data['商标'] = record_item['tmPic'] + dict_data['申请日期'] = CommonUtils.time_stamp(record_item['appDate']) + dict_data['注册号'] = record_item['regNo'] + dict_data['国际分类'] = tm_class[int(record_item['tmClass']) - 1] + dict_data['商标状态'] = record_item['status'] + dict_data['注册公告日期'] = CommonUtils.time_stamp(record_item['eventTime']) + dict_data['更新时间'] = CommonUtils.get_current_time() + list_data.append(dict_data) + return list_data + else: + return False + + if len(condition['cid']): + cid = condition['cid'] + cname = DB_TEST.find_single_column( + 'WR_DataBase_v2_test', + 'C3.1_工商信息', + {'企业ID': cid}, + '企业名称' + ) + update = save_data(cname=cname, cid=cid) + if update: + for item in update: + DB_TEST.update_single_data( + "WR_DataBase_v2_test", + "C5.1_商标信息", + {"企业ID": cid, "注册号": item['注册号']}, + item + ) + return 'success' + else: + return 'update failed' + elif len(condition['cname']): + cname = condition['cname'] + cid = DB_TEST.find_single_column( + 'WR_DataBase_v2_test', + 'C3.1_工商信息', + {'企业名称': cname}, + '企业ID' + ) + if not cid: + cid = BusinessImpl.auto_update(condition={"cname": cname, "cid": ""}) + insert = save_data(cname=cname, cid=cid) + if insert: + for item in insert: + DB_TEST.upsert_single_data( + "WR_DataBase_v2_test", + "C5.1_商标信息", + {"企业ID": cid, "注册号": item['注册号']}, + item + ) + return 'success' + else: + return 'new failed' + else: + return 'parameter exception' + + @staticmethod + def delete(**kwargs): + """删除""" + param = kwargs['param'] + cid = param['cid'] + registration_id = param['registration_id'] + + res = DB_TEST.delete_single_data( + "WR_DataBase_v2_test", + "C5.1_商标信息", + {"企业ID": cid, "注册号": registration_id} + ) + + if res: + result = { + "info": "success", + } + else: + result = { + "info": "no result" + } + return result + + @staticmethod + def edit(**kwargs): + """编辑""" + param = kwargs['param'] + cid = param['cid'] + registration_id = param['registration_id'] + body = param['body'] + try: + trade = TrademarkObj() + trade.trade_name = body['商标名称'] + trade.trademark = body['商标'] + trade.application_date = body['申请日期'] + trade.classification = body['国际分类'] + trade.status = body['商标状态'] + trade.registration_date = body['注册公告日期'] + trade.update_time = CommonUtils.get_current_time() + update_data = trade.fields_toggle() + DB_TEST.update_single_data( + "WR_DataBase_v2_test", + "C5.1_商标信息", + {"企业ID": cid, "注册号": registration_id}, + update_data + ) + return 'success' + except Exception: + return 'edit failed' + + @staticmethod + def view(**kwargs): + """查看""" + query = kwargs['query'] + cid = query['cid'] + page_num = int(query['page_num']) + page_size = int(query['page_size']) + page_size = 10 if page_size > 10 else page_size + + total = DB_TEST.find_all_data_with_count( + 'WR_DataBase_v2_test', + 'C5.1_商标信息', + {"企业ID": cid} + ) + + record = DB_TEST.find_data_by_page_with_sort( + "WR_DataBase_v2_test", + "C5.1_商标信息", + {"企业ID": cid}, + [], + {'_id': 1}, + page_size, + page_num + ) + + if record: + result = { + "info": "success", + "total": total, + "result": record + } + else: + result = { + "info": "no result" + } + return result diff --git a/Company/Ip/Software/TrademarkObj.py b/Company/Ip/Software/TrademarkObj.py new file mode 100644 index 0000000..9358332 --- /dev/null +++ b/Company/Ip/Software/TrademarkObj.py @@ -0,0 +1,27 @@ +from Utils.ObjUtil import SpecObject +from Utils.ValidateUtil import ValidateAttr, Validate + + +class TrademarkObj(SpecObject): + """商标信息""" + cid = ValidateAttr(field='cid', type=str, length=8) + trade_name = ValidateAttr(field='trade_name', type=str) + trademark = ValidateAttr(field='trademark', type=str) + application_date = ValidateAttr(field='application_date', func=Validate.date_format) + registration_id = ValidateAttr(field='registration_id', type=str) + classification = ValidateAttr(field='classification', type=str) + status = ValidateAttr(field='status', type=str) + registration_date = ValidateAttr(field='registration_date', func=Validate.date_format) + update_time = ValidateAttr(field='update_time', func=Validate.time_format) + + fields_map = { + "cid": "企业ID", + "trade_name": "商标名称", + "trademark": "商标", + "application_date": "申请日期", + "registration_id": "注册号", + "classification": "国际分类", + "status": "商标状态", + "registration_date": "注册公告日期", + "update_time": "更新时间" + } \ No newline at end of file diff --git a/Company/Ip/Software/TrademarkRoute.py b/Company/Ip/Software/TrademarkRoute.py new file mode 100644 index 0000000..9da2337 --- /dev/null +++ b/Company/Ip/Software/TrademarkRoute.py @@ -0,0 +1,55 @@ +from flask import Blueprint, request + +from Company.Ip.Trademark.TrademarkImpl import TrademarkImpl +from Utils.ErrorUtil import APIReturnError +from Utils.RouteUtil import RouteParamsCheck + +trademark_route = Blueprint('trademark', __name__) + + +@trademark_route.route('/auto_update', methods=['GET']) +def auto_update_route(): + """新增/更新(自动)""" + try: + RouteParamsCheck(req=request.args, params=["cname", "cid"]).required() + impl = TrademarkImpl() + result = impl.auto_update(condition=request.args) + return {"info": result} + except APIReturnError as e: + return {"info": e.__str__()}, e.status_code + + +@trademark_route.route('/delete', methods=['GET']) +def delete_route(): + """删除""" + try: + RouteParamsCheck(req=request.args, params=["cid", "registration_id"]).required() + impl = TrademarkImpl() + result = impl.delete(param=request.args) + return result + except APIReturnError as e: + return {"info": e.__str__()}, e.status_code + + +@trademark_route.route('/edit', methods=['POST']) +def edit_route(): + """编辑""" + try: + RouteParamsCheck(req=request.json, params=["cid", "registration_id", "body"]).required() + impl = TrademarkImpl() + result = impl.edit(param=request.json) + return {"info": result} + except APIReturnError as e: + return {"info": e.__str__()}, e.status_code + + +@trademark_route.route('/view', methods=['GET']) +def view_route(): + """查看""" + try: + RouteParamsCheck(req=request.args, params=["cid", "page_num", "page_size"]).required() + impl = TrademarkImpl() + result = impl.view(query=request.args) + return result + except APIReturnError as e: + return {"info": e.__str__()}, e.status_code diff --git a/Company/Ip/Software/__init__.py b/Company/Ip/Software/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/Company/Ip/Trademark/TrademarkImpl.py b/Company/Ip/Trademark/TrademarkImpl.py new file mode 100644 index 0000000..8df4076 --- /dev/null +++ b/Company/Ip/Trademark/TrademarkImpl.py @@ -0,0 +1,176 @@ +from Company.Basic.Business.BusinessImpl import BusinessImpl +from Company.Ip.Trademark.TrademarkObj import TrademarkObj +from DBHelper.MongoHelperInstance import DB_TYC, DB_TEST +from Modules.TycApi.TycUtils import tm_class +from Utils.CommonUtil import CommonUtils + + +class TrademarkImpl(object): + """商标信息""" + + @staticmethod + def auto_update(**kwargs): + """新增/更新(自动)""" + condition = kwargs['condition'] + + def save_data(**args): + """查询保存数据""" + company_name = args['cname'] + company_id = args['cid'] + records = DB_TYC.find_all_data( + '知识产权', + '商标信息', + {'企业名称': company_name}, + ['商标信息'] + ) + if records: + list_data = list() + for record in records: + records_item = record['商标信息']['result'] + for record_item in records_item: + dict_data = dict() + dict_data['企业ID'] = company_id + dict_data['商标名称'] = record_item['tmName'] + dict_data['商标'] = record_item['tmPic'] + dict_data['申请日期'] = CommonUtils.time_stamp(record_item['appDate']) + dict_data['注册号'] = record_item['regNo'] + dict_data['国际分类'] = tm_class[int(record_item['tmClass']) - 1] + dict_data['商标状态'] = record_item['status'] + dict_data['注册公告日期'] = CommonUtils.time_stamp(record_item['eventTime']) + dict_data['更新时间'] = CommonUtils.get_current_time() + list_data.append(dict_data) + return list_data + else: + return False + + if len(condition['cid']): + cid = condition['cid'] + cname = DB_TEST.find_single_column( + 'WR_DataBase_v2_test', + 'C3.1_工商信息', + {'企业ID': cid}, + '企业名称' + ) + update = save_data(cname=cname, cid=cid) + if update: + for item in update: + DB_TEST.update_single_data( + "WR_DataBase_v2_test", + "C5.1_商标信息", + {"企业ID": cid, "注册号": item['注册号']}, + item + ) + return 'success' + else: + return 'update failed' + elif len(condition['cname']): + cname = condition['cname'] + cid = DB_TEST.find_single_column( + 'WR_DataBase_v2_test', + 'C3.1_工商信息', + {'企业名称': cname}, + '企业ID' + ) + if not cid: + cid = BusinessImpl.auto_update(condition={"cname": cname, "cid": ""}) + insert = save_data(cname=cname, cid=cid) + if insert: + for item in insert: + DB_TEST.upsert_single_data( + "WR_DataBase_v2_test", + "C5.1_商标信息", + {"企业ID": cid, "注册号": item['注册号']}, + item + ) + return 'success' + else: + return 'new failed' + else: + return 'parameter exception' + + @staticmethod + def delete(**kwargs): + """删除""" + param = kwargs['param'] + cid = param['cid'] + registration_id = param['registration_id'] + + res = DB_TEST.delete_single_data( + "WR_DataBase_v2_test", + "C5.1_商标信息", + {"企业ID": cid, "注册号": registration_id} + ) + + if res: + result = { + "info": "success", + } + else: + result = { + "info": "no result" + } + return result + + @staticmethod + def edit(**kwargs): + """编辑""" + param = kwargs['param'] + cid = param['cid'] + registration_id = param['registration_id'] + body = param['body'] + try: + trade = TrademarkObj() + trade.trade_name = body['商标名称'] + trade.trademark = body['商标'] + trade.application_date = body['申请日期'] + trade.classification = body['国际分类'] + trade.status = body['商标状态'] + trade.registration_date = body['注册公告日期'] + trade.update_time = CommonUtils.get_current_time() + update_data = trade.fields_toggle() + DB_TEST.update_single_data( + "WR_DataBase_v2_test", + "C5.1_商标信息", + {"企业ID": cid, "注册号": registration_id}, + update_data + ) + return 'success' + except Exception: + return 'edit failed' + + @staticmethod + def view(**kwargs): + """查看""" + query = kwargs['query'] + cid = query['cid'] + page_num = int(query['page_num']) + page_size = int(query['page_size']) + page_size = 10 if page_size > 10 else page_size + + total = DB_TEST.find_all_data_with_count( + 'WR_DataBase_v2_test', + 'C5.1_商标信息', + {"企业ID": cid} + ) + + record = DB_TEST.find_data_by_page_with_sort( + "WR_DataBase_v2_test", + "C5.1_商标信息", + {"企业ID": cid}, + [], + {'_id': 1}, + page_size, + page_num + ) + + if record: + result = { + "info": "success", + "total": total, + "result": record + } + else: + result = { + "info": "no result" + } + return result diff --git a/Company/Ip/Trademark/TrademarkObj.py b/Company/Ip/Trademark/TrademarkObj.py new file mode 100644 index 0000000..9358332 --- /dev/null +++ b/Company/Ip/Trademark/TrademarkObj.py @@ -0,0 +1,27 @@ +from Utils.ObjUtil import SpecObject +from Utils.ValidateUtil import ValidateAttr, Validate + + +class TrademarkObj(SpecObject): + """商标信息""" + cid = ValidateAttr(field='cid', type=str, length=8) + trade_name = ValidateAttr(field='trade_name', type=str) + trademark = ValidateAttr(field='trademark', type=str) + application_date = ValidateAttr(field='application_date', func=Validate.date_format) + registration_id = ValidateAttr(field='registration_id', type=str) + classification = ValidateAttr(field='classification', type=str) + status = ValidateAttr(field='status', type=str) + registration_date = ValidateAttr(field='registration_date', func=Validate.date_format) + update_time = ValidateAttr(field='update_time', func=Validate.time_format) + + fields_map = { + "cid": "企业ID", + "trade_name": "商标名称", + "trademark": "商标", + "application_date": "申请日期", + "registration_id": "注册号", + "classification": "国际分类", + "status": "商标状态", + "registration_date": "注册公告日期", + "update_time": "更新时间" + } \ No newline at end of file diff --git a/Company/Ip/Trademark/TrademarkRoute.py b/Company/Ip/Trademark/TrademarkRoute.py new file mode 100644 index 0000000..9da2337 --- /dev/null +++ b/Company/Ip/Trademark/TrademarkRoute.py @@ -0,0 +1,55 @@ +from flask import Blueprint, request + +from Company.Ip.Trademark.TrademarkImpl import TrademarkImpl +from Utils.ErrorUtil import APIReturnError +from Utils.RouteUtil import RouteParamsCheck + +trademark_route = Blueprint('trademark', __name__) + + +@trademark_route.route('/auto_update', methods=['GET']) +def auto_update_route(): + """新增/更新(自动)""" + try: + RouteParamsCheck(req=request.args, params=["cname", "cid"]).required() + impl = TrademarkImpl() + result = impl.auto_update(condition=request.args) + return {"info": result} + except APIReturnError as e: + return {"info": e.__str__()}, e.status_code + + +@trademark_route.route('/delete', methods=['GET']) +def delete_route(): + """删除""" + try: + RouteParamsCheck(req=request.args, params=["cid", "registration_id"]).required() + impl = TrademarkImpl() + result = impl.delete(param=request.args) + return result + except APIReturnError as e: + return {"info": e.__str__()}, e.status_code + + +@trademark_route.route('/edit', methods=['POST']) +def edit_route(): + """编辑""" + try: + RouteParamsCheck(req=request.json, params=["cid", "registration_id", "body"]).required() + impl = TrademarkImpl() + result = impl.edit(param=request.json) + return {"info": result} + except APIReturnError as e: + return {"info": e.__str__()}, e.status_code + + +@trademark_route.route('/view', methods=['GET']) +def view_route(): + """查看""" + try: + RouteParamsCheck(req=request.args, params=["cid", "page_num", "page_size"]).required() + impl = TrademarkImpl() + result = impl.view(query=request.args) + return result + except APIReturnError as e: + return {"info": e.__str__()}, e.status_code diff --git a/Company/Ip/Trademark/__init__.py b/Company/Ip/Trademark/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/Company/Ip/Website/TrademarkImpl.py b/Company/Ip/Website/TrademarkImpl.py new file mode 100644 index 0000000..8df4076 --- /dev/null +++ b/Company/Ip/Website/TrademarkImpl.py @@ -0,0 +1,176 @@ +from Company.Basic.Business.BusinessImpl import BusinessImpl +from Company.Ip.Trademark.TrademarkObj import TrademarkObj +from DBHelper.MongoHelperInstance import DB_TYC, DB_TEST +from Modules.TycApi.TycUtils import tm_class +from Utils.CommonUtil import CommonUtils + + +class TrademarkImpl(object): + """商标信息""" + + @staticmethod + def auto_update(**kwargs): + """新增/更新(自动)""" + condition = kwargs['condition'] + + def save_data(**args): + """查询保存数据""" + company_name = args['cname'] + company_id = args['cid'] + records = DB_TYC.find_all_data( + '知识产权', + '商标信息', + {'企业名称': company_name}, + ['商标信息'] + ) + if records: + list_data = list() + for record in records: + records_item = record['商标信息']['result'] + for record_item in records_item: + dict_data = dict() + dict_data['企业ID'] = company_id + dict_data['商标名称'] = record_item['tmName'] + dict_data['商标'] = record_item['tmPic'] + dict_data['申请日期'] = CommonUtils.time_stamp(record_item['appDate']) + dict_data['注册号'] = record_item['regNo'] + dict_data['国际分类'] = tm_class[int(record_item['tmClass']) - 1] + dict_data['商标状态'] = record_item['status'] + dict_data['注册公告日期'] = CommonUtils.time_stamp(record_item['eventTime']) + dict_data['更新时间'] = CommonUtils.get_current_time() + list_data.append(dict_data) + return list_data + else: + return False + + if len(condition['cid']): + cid = condition['cid'] + cname = DB_TEST.find_single_column( + 'WR_DataBase_v2_test', + 'C3.1_工商信息', + {'企业ID': cid}, + '企业名称' + ) + update = save_data(cname=cname, cid=cid) + if update: + for item in update: + DB_TEST.update_single_data( + "WR_DataBase_v2_test", + "C5.1_商标信息", + {"企业ID": cid, "注册号": item['注册号']}, + item + ) + return 'success' + else: + return 'update failed' + elif len(condition['cname']): + cname = condition['cname'] + cid = DB_TEST.find_single_column( + 'WR_DataBase_v2_test', + 'C3.1_工商信息', + {'企业名称': cname}, + '企业ID' + ) + if not cid: + cid = BusinessImpl.auto_update(condition={"cname": cname, "cid": ""}) + insert = save_data(cname=cname, cid=cid) + if insert: + for item in insert: + DB_TEST.upsert_single_data( + "WR_DataBase_v2_test", + "C5.1_商标信息", + {"企业ID": cid, "注册号": item['注册号']}, + item + ) + return 'success' + else: + return 'new failed' + else: + return 'parameter exception' + + @staticmethod + def delete(**kwargs): + """删除""" + param = kwargs['param'] + cid = param['cid'] + registration_id = param['registration_id'] + + res = DB_TEST.delete_single_data( + "WR_DataBase_v2_test", + "C5.1_商标信息", + {"企业ID": cid, "注册号": registration_id} + ) + + if res: + result = { + "info": "success", + } + else: + result = { + "info": "no result" + } + return result + + @staticmethod + def edit(**kwargs): + """编辑""" + param = kwargs['param'] + cid = param['cid'] + registration_id = param['registration_id'] + body = param['body'] + try: + trade = TrademarkObj() + trade.trade_name = body['商标名称'] + trade.trademark = body['商标'] + trade.application_date = body['申请日期'] + trade.classification = body['国际分类'] + trade.status = body['商标状态'] + trade.registration_date = body['注册公告日期'] + trade.update_time = CommonUtils.get_current_time() + update_data = trade.fields_toggle() + DB_TEST.update_single_data( + "WR_DataBase_v2_test", + "C5.1_商标信息", + {"企业ID": cid, "注册号": registration_id}, + update_data + ) + return 'success' + except Exception: + return 'edit failed' + + @staticmethod + def view(**kwargs): + """查看""" + query = kwargs['query'] + cid = query['cid'] + page_num = int(query['page_num']) + page_size = int(query['page_size']) + page_size = 10 if page_size > 10 else page_size + + total = DB_TEST.find_all_data_with_count( + 'WR_DataBase_v2_test', + 'C5.1_商标信息', + {"企业ID": cid} + ) + + record = DB_TEST.find_data_by_page_with_sort( + "WR_DataBase_v2_test", + "C5.1_商标信息", + {"企业ID": cid}, + [], + {'_id': 1}, + page_size, + page_num + ) + + if record: + result = { + "info": "success", + "total": total, + "result": record + } + else: + result = { + "info": "no result" + } + return result diff --git a/Company/Ip/Website/TrademarkObj.py b/Company/Ip/Website/TrademarkObj.py new file mode 100644 index 0000000..9358332 --- /dev/null +++ b/Company/Ip/Website/TrademarkObj.py @@ -0,0 +1,27 @@ +from Utils.ObjUtil import SpecObject +from Utils.ValidateUtil import ValidateAttr, Validate + + +class TrademarkObj(SpecObject): + """商标信息""" + cid = ValidateAttr(field='cid', type=str, length=8) + trade_name = ValidateAttr(field='trade_name', type=str) + trademark = ValidateAttr(field='trademark', type=str) + application_date = ValidateAttr(field='application_date', func=Validate.date_format) + registration_id = ValidateAttr(field='registration_id', type=str) + classification = ValidateAttr(field='classification', type=str) + status = ValidateAttr(field='status', type=str) + registration_date = ValidateAttr(field='registration_date', func=Validate.date_format) + update_time = ValidateAttr(field='update_time', func=Validate.time_format) + + fields_map = { + "cid": "企业ID", + "trade_name": "商标名称", + "trademark": "商标", + "application_date": "申请日期", + "registration_id": "注册号", + "classification": "国际分类", + "status": "商标状态", + "registration_date": "注册公告日期", + "update_time": "更新时间" + } \ No newline at end of file diff --git a/Company/Ip/Website/TrademarkRoute.py b/Company/Ip/Website/TrademarkRoute.py new file mode 100644 index 0000000..9da2337 --- /dev/null +++ b/Company/Ip/Website/TrademarkRoute.py @@ -0,0 +1,55 @@ +from flask import Blueprint, request + +from Company.Ip.Trademark.TrademarkImpl import TrademarkImpl +from Utils.ErrorUtil import APIReturnError +from Utils.RouteUtil import RouteParamsCheck + +trademark_route = Blueprint('trademark', __name__) + + +@trademark_route.route('/auto_update', methods=['GET']) +def auto_update_route(): + """新增/更新(自动)""" + try: + RouteParamsCheck(req=request.args, params=["cname", "cid"]).required() + impl = TrademarkImpl() + result = impl.auto_update(condition=request.args) + return {"info": result} + except APIReturnError as e: + return {"info": e.__str__()}, e.status_code + + +@trademark_route.route('/delete', methods=['GET']) +def delete_route(): + """删除""" + try: + RouteParamsCheck(req=request.args, params=["cid", "registration_id"]).required() + impl = TrademarkImpl() + result = impl.delete(param=request.args) + return result + except APIReturnError as e: + return {"info": e.__str__()}, e.status_code + + +@trademark_route.route('/edit', methods=['POST']) +def edit_route(): + """编辑""" + try: + RouteParamsCheck(req=request.json, params=["cid", "registration_id", "body"]).required() + impl = TrademarkImpl() + result = impl.edit(param=request.json) + return {"info": result} + except APIReturnError as e: + return {"info": e.__str__()}, e.status_code + + +@trademark_route.route('/view', methods=['GET']) +def view_route(): + """查看""" + try: + RouteParamsCheck(req=request.args, params=["cid", "page_num", "page_size"]).required() + impl = TrademarkImpl() + result = impl.view(query=request.args) + return result + except APIReturnError as e: + return {"info": e.__str__()}, e.status_code diff --git a/Company/Ip/Website/__init__.py b/Company/Ip/Website/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/app.py b/app.py index 3e176b5..433c9e7 100644 --- a/app.py +++ b/app.py @@ -1,7 +1,7 @@ from flask import Flask from flask_cors import * -from Company.Basic.BasicRoutes import basic_route +# 基本信息 from Company.Basic.Branch.BranchRoute import branch_route from Company.Basic.Business.BusinessRoute import business_route from Company.Basic.Change.ChangeRoute import change_route @@ -9,7 +9,8 @@ from Company.Basic.Executives.ExecutivesRoute import executives_route from Company.Basic.Investment.InvestmentRoute import investment_route from Company.Basic.Shareholder.ShareholderRoute import shareholder_route from Company.Common.CommonRoutes import common_route -from Company.Ip.IpRoutes import ip_route +# 知识产权 +from Company.Ip.Trademark.TrademarkRoute import trademark_route from Company.Judicial.JudicialRiskRoutes import judicial_risk_route from Company.Operational.OperationalRoutes import operational_route from Company.Supervision.SupervisionRoutes import supervision_route @@ -39,14 +40,16 @@ app.register_blueprint(questionnaire_route, url_prefix='/rating/questionnaire') app.register_blueprint(filters_route, url_prefix='/rating/data_filters') app.register_blueprint(file_route, url_prefix='/rating/obj_file') app.register_blueprint(tyc_route, url_prefix='/rating/tyc_api') -# app.register_blueprint(basic_route, url_prefix='/data/manage/company/basic') +# 基本信息 app.register_blueprint(business_route, url_prefix='/data/manage/company/basic/business_info') app.register_blueprint(shareholder_route, url_prefix='/data/manage/company/basic/shareholder') app.register_blueprint(executives_route, url_prefix='/data/manage/company/basic/executive') app.register_blueprint(investment_route, url_prefix='/data/manage/company/basic/investment') app.register_blueprint(branch_route, url_prefix='/data/manage/company/basic/branch') app.register_blueprint(change_route, url_prefix='/data/manage/company/basic/change') -app.register_blueprint(ip_route, url_prefix='/data/manage/company/ip') +# 知识产权 +app.register_blueprint(trademark_route, url_prefix='/data/manage/company/ip/trademark') + app.register_blueprint(judicial_risk_route, url_prefix='/data/manage/company/judicial_risk') app.register_blueprint(operational_route, url_prefix='/data/manage/company/operational_risk') app.register_blueprint(supervision_route, url_prefix='/data/manage/company/regulatory_risk')