| @@ -0,0 +1,300 @@ | |||||
| # -*- coding: utf-8 -* | |||||
| import logging | |||||
| from flask import Flask, jsonify, request, abort | |||||
| from time import strftime, strptime | |||||
| import requests | |||||
| from xml.etree import ElementTree | |||||
| def is_number(s): | |||||
| try: | |||||
| float(s) | |||||
| return True | |||||
| except ValueError: | |||||
| pass | |||||
| try: | |||||
| import unicodedata | |||||
| unicodedata.numeric(s) | |||||
| return True | |||||
| except (TypeError, ValueError): | |||||
| pass | |||||
| return False | |||||
| app = Flask(__name__) | |||||
| post_data = {"FunID":"", | |||||
| "Language":1, | |||||
| "Data":{} | |||||
| } | |||||
| form_data = {} | |||||
| hr_url = "http://10.1.0.50:18010/RESTService/SaveOrUpdate" | |||||
| return_data = { | |||||
| "Success":True, | |||||
| "Message":"" | |||||
| } | |||||
| @app.route('/api/hr/RS031001', methods=['POST']) | |||||
| # 人员异动申请 | |||||
| def RS031001(): | |||||
| if not request.form or not 'EmpNo' in request.form.to_dict(): | |||||
| abort(406) | |||||
| post_data['FunID'] = 'RS031001' | |||||
| post_data['Data'] = request.form.to_dict() | |||||
| try: | |||||
| YYMMDD = strptime(post_data['Data']['YYMMDD'],"%a %b %d %H:%M:%S CST %Y") | |||||
| post_data['Data']['YYMMDD'] = strftime("%Y-%m-%d",YYMMDD) | |||||
| except (ValueError,KeyError) as e: | |||||
| app.logger.error(e) | |||||
| try: | |||||
| AppForDate = strptime(post_data['Data']['AppForDate'],"%a %b %d %H:%M:%S CST %Y") | |||||
| post_data['Data']['AppForDate'] = strftime("%Y-%m-%d",AppForDate) | |||||
| except (ValueError,KeyError) as e: | |||||
| app.logger.error(e) | |||||
| try: | |||||
| TryuseDate = strptime(post_data['Data']['TryuseDate'],"%a %b %d %H:%M:%S CST %Y") | |||||
| post_data['Data']['TryuseDate'] = strftime("%Y-%m-%d",TryuseDate) | |||||
| except (ValueError,KeyError) as e: | |||||
| app.logger.error(e) | |||||
| try: | |||||
| r = requests.post(hr_url,data=post_data.__str__().encode('utf-8')) | |||||
| if r.json()['Success']: | |||||
| return_data['Success'] = True | |||||
| return_data['Message'] = r.json()['Data'] | |||||
| else: | |||||
| return_data['Success'] = False | |||||
| return_data['Message'] = r.json()['Message'] | |||||
| return jsonify(return_data), 200 | |||||
| except requests.exceptions.RequestException as e: | |||||
| app.logger.error(e) | |||||
| return_data['Success'] = False | |||||
| return_data['Message'] = '接口出错!' | |||||
| return jsonify(return_data), 200 | |||||
| @app.route('/api/hr/KQ061001', methods=['POST']) | |||||
| # 人员签卡申请 | |||||
| def KQ061001(): | |||||
| if not request.form or not 'EmpNo' in request.form.to_dict(): | |||||
| abort(406) | |||||
| post_data['FunID'] = 'KQ061001' | |||||
| post_data['Data'] = request.form.to_dict() | |||||
| try: | |||||
| r = requests.post(hr_url,data=post_data.__str__().encode('utf-8')) | |||||
| if r.json()['Success']: | |||||
| return_data['Success'] = True | |||||
| return_data['Message'] = r.json()['Data'] | |||||
| else: | |||||
| return_data['Success'] = False | |||||
| return_data['Message'] = r.json()['Message'] | |||||
| return jsonify(return_data), 200 | |||||
| except: | |||||
| abort(500) | |||||
| @app.route('/api/hr/KQ043001', methods=['POST']) | |||||
| # 个人加班申请 | |||||
| def KQ043001(): | |||||
| if not request.form or not 'EmpNo' in request.form.to_dict(): | |||||
| abort(406) | |||||
| post_data['FunID'] = 'KQ043001' | |||||
| post_data['Data'] = request.form.to_dict() | |||||
| try: | |||||
| r = requests.post(hr_url,data=post_data.__str__().encode('utf-8')) | |||||
| if r.json()['Success']: | |||||
| return_data['Success'] = True | |||||
| return_data['Message'] = r.json()['Data'] | |||||
| else: | |||||
| return_data['Success'] = False | |||||
| return_data['Message'] = r.json()['Message'] | |||||
| return jsonify(return_data), 200 | |||||
| except: | |||||
| abort(500) | |||||
| @app.route('/api/hr/KQ035001', methods=['POST']) | |||||
| # 人员出差申请 | |||||
| def KQ035001(): | |||||
| if not request.form or not 'EmpNo' in request.form.to_dict(): | |||||
| abort(406) | |||||
| post_data['FunID'] = 'KQ035001' | |||||
| post_data['Data'] = request.form.to_dict() | |||||
| post_data['Data']['Flag'] = post_data['Data']['Flag'][-1:] | |||||
| try: | |||||
| r = requests.post(hr_url,data=post_data.__str__().encode('utf-8')) | |||||
| if r.json()['Success']: | |||||
| return_data['Success'] = True | |||||
| return_data['Message'] = r.json()['Data'] | |||||
| else: | |||||
| return_data['Success'] = False | |||||
| return_data['Message'] = r.json()['Message'] | |||||
| return jsonify(return_data), 200 | |||||
| except: | |||||
| abort(500) | |||||
| @app.route('/api/hr/KQ033001', methods=['POST']) | |||||
| # 人员请假申请 | |||||
| def KQ033001(): | |||||
| if not request.form or not 'EmpNo' in request.form.to_dict(): | |||||
| abort(400) | |||||
| post_data['FunID'] = 'KQ033001' | |||||
| try: | |||||
| post_data['Data']['EmpNo'] = request.form.to_dict()['EmpNo'] | |||||
| post_data['Data']['LeaveType'] = request.form.to_dict()['LeaveType'][-3:] | |||||
| post_data['Data']['Flag'] = request.form.to_dict()['Flag'][-1:] | |||||
| post_data['Data']['TimeRange'] = request.form.to_dict()['TimeRange'] | |||||
| except (ValueError,KeyError) as e: | |||||
| app.logger.error(e) | |||||
| return_data['Success'] = False | |||||
| return_data['Message'] = '表单填写出错,请重新填写!' | |||||
| return jsonify(return_data), 200 | |||||
| if 'OAID' in request.form.to_dict(): | |||||
| try: | |||||
| post_data['Data']['OAID'] = request.form.to_dict()['OAID'] | |||||
| except (ValueError,KeyError) as e: | |||||
| app.logger.error(e) | |||||
| post_data['Data']['OAID'] = '' | |||||
| try: | |||||
| post_data['Data']['YYMMDD'] = strftime("%Y-%m-%d",strptime(request.form.to_dict()['YYMMDD'],"%a %b %d %H:%M:%S CST %Y")) | |||||
| post_data['Data']['EndYYMMDD'] = strftime("%Y-%m-%d",strptime(request.form.to_dict()['EndYYMMDD'],"%a %b %d %H:%M:%S CST %Y")) | |||||
| except (ValueError,KeyError) as e: | |||||
| app.logger.error(e) | |||||
| app.logger.error('YYMMDD和EndYYMMDD格式错误') | |||||
| if 'BeginTime' in request.form.to_dict(): | |||||
| try: | |||||
| post_data['Data']['BeginTime'] = strftime("%H:%M",strptime(request.form.to_dict()['BeginTime'],"%a %b %d %H:%M:%S CST %Y")) | |||||
| except (ValueError,KeyError) as e: | |||||
| app.logger.error(e) | |||||
| app.logger.error('BeginTime格式错误') | |||||
| if 'EndTime' in request.form.to_dict(): | |||||
| try: | |||||
| post_data['Data']['EndTime'] = strftime("%H:%M",strptime(request.form.to_dict()['EndTime'],"%a %b %d %H:%M:%S CST %Y")) | |||||
| except (ValueError,KeyError) as e: | |||||
| app.logger.error(e) | |||||
| app.logger.error('EndTime格式错误') | |||||
| if 'LeaveWhy' in request.form.to_dict(): | |||||
| try: | |||||
| post_data['Data']['LeaveWhy'] = request.form.to_dict()['LeaveWhy'] | |||||
| except (ValueError,KeyError) as e: | |||||
| app.logger.error(e) | |||||
| post_data['Data']['LeaveWhy'] = "" | |||||
| if 'NormalTime' in request.form.to_dict(): | |||||
| try: | |||||
| form_data['NormalTime'] = request.form.to_dict()['NormalTime'] | |||||
| except (ValueError,KeyError) as e: | |||||
| app.logger.error(e) | |||||
| form_data['EndTime'] = "0" | |||||
| try: | |||||
| r = requests.post(hr_url,data=post_data.__str__().encode('utf-8')) | |||||
| if r.json()['Success']: | |||||
| return_data['Success'] = True | |||||
| return_data['Message'] = r.json()['Data'] | |||||
| else: | |||||
| return_data['Success'] = False | |||||
| return_data['Message'] = r.json()['Message'] | |||||
| return jsonify(return_data), 200 | |||||
| except requests.exceptions.RequestException as e: | |||||
| app.logger.error(e) | |||||
| return_data['Success'] = False | |||||
| return_data['Message'] = '接口出错' | |||||
| return jsonify(return_data), 200 | |||||
| @app.route('/api/hr/CheckLeaveBillValidateForApp', methods=['POST']) | |||||
| def CheckLeaveBillValidateForApp(): | |||||
| if not request.form or not 'EmpNo' in request.form.to_dict(): | |||||
| abort(405) | |||||
| try: | |||||
| form_data['EmpNo'] = request.form.to_dict()['EmpNo'] | |||||
| form_data['LeaveType'] = request.form.to_dict()['LeaveType'] | |||||
| form_data['Flag'] = request.form.to_dict()['Flag'] | |||||
| form_data['TimeRange'] = request.form.to_dict()['TimeRange'] | |||||
| except (ValueError,KeyError) as e: | |||||
| app.logger.error(e) | |||||
| return_data['Success'] = False | |||||
| return_data['Message'] = '表单填写出错,请重新填写!' | |||||
| return jsonify(return_data), 200 | |||||
| try: | |||||
| form_data['OAID'] = request.form.to_dict()['OAID'] | |||||
| except (ValueError,KeyError) as e: | |||||
| app.logger.error(e) | |||||
| form_data['OAID'] = "" | |||||
| try: | |||||
| form_data['BeginDate'] = request.form.to_dict() | |||||
| except (ValueError,KeyError) as e: | |||||
| app.logger.error(e) | |||||
| form_data['BeginDate'] = "" | |||||
| try: | |||||
| form_data['EndDate'] = request.form.to_dict()['EndDate'] | |||||
| except (ValueError,KeyError) as e: | |||||
| app.logger.error(e) | |||||
| form_data['EndDate'] = "" | |||||
| if 'BeginTime' in request.form.to_dict(): | |||||
| try: | |||||
| form_data['BeginTime'] = request.form.to_dict()['BeginTime'] | |||||
| except (ValueError,KeyError) as e: | |||||
| app.logger.error(e) | |||||
| form_data['BeginTime'] = "" | |||||
| if 'EndTime' in request.form.to_dict(): | |||||
| try: | |||||
| form_data['EndTime'] = request.form.to_dict()['EndTime'] | |||||
| except (ValueError,KeyError) as e: | |||||
| app.logger.error(e) | |||||
| form_data['EndTime'] = "" | |||||
| if 'NormalTime' in request.form.to_dict(): | |||||
| try: | |||||
| form_data['NormalTime'] = request.form.to_dict()['NormalTime'] | |||||
| except (ValueError,KeyError) as e: | |||||
| app.logger.error(e) | |||||
| form_data['EndTime'] = "0" | |||||
| try: | |||||
| r = requests.get("http://10.1.0.50:18010/RESTService/CheckLeaveBillValidateForApp",params=form_data) | |||||
| app.logger.info(form_data) | |||||
| tree = ElementTree.fromstring(r.content) | |||||
| if is_number(tree.text): | |||||
| return_data['Success'] = True | |||||
| return_data['Message'] = tree.text | |||||
| else: | |||||
| return_data['Success'] = False | |||||
| return_data['Message'] = tree.text | |||||
| return jsonify(return_data), 200 | |||||
| except requests.exceptions.RequestException as e: | |||||
| app.logger.error(e) | |||||
| return_data['Success'] = False | |||||
| return_data['Message'] = '接口出错' | |||||
| return jsonify(return_data), 200 | |||||
| @app.route('/api/hr/RS061001', methods=['POST']) | |||||
| # 人员离职申请 | |||||
| def RS061001(): | |||||
| if not request.form or not 'EmpNo' in request.form.to_dict(): | |||||
| abort(406) | |||||
| post_data['FunID'] = 'RS061001' | |||||
| post_data['Data'] = request.form.to_dict() | |||||
| try: | |||||
| ReqRegDate = strptime(post_data['Data']['ReqRegDate'],"%a %b %d %H:%M:%S CST %Y") | |||||
| post_data['Data']['ReqRegDate'] = strftime("%Y-%m-%d",ReqRegDate) | |||||
| except: | |||||
| app.logger.error('Request form do not have ReqRegDate') | |||||
| try: | |||||
| ReqLeaveDate = strptime(post_data['Data']['ReqLeaveDate'],"%a %b %d %H:%M:%S CST %Y") | |||||
| post_data['Data']['ReqLeaveDate'] = strftime("%Y-%m-%d",ReqLeaveDate) | |||||
| except: | |||||
| app.logger.error('Request form do not have ReqLeaveDate') | |||||
| try: | |||||
| LeaveDate = strptime(post_data['Data']['LeaveDate'],"%a %b %d %H:%M:%S CST %Y") | |||||
| post_data['Data']['LeaveDate'] = strftime("%Y-%m-%d",LeaveDate) | |||||
| except: | |||||
| app.logger.error('Request form do not have LeaveDate') | |||||
| try: | |||||
| r = requests.post(hr_url,data=post_data.__str__().encode('utf-8')) | |||||
| if r.json()['Success']: | |||||
| return_data['Success'] = True | |||||
| return_data['Message'] = r.json()['Data'] | |||||
| else: | |||||
| return_data['Success'] = False | |||||
| return_data['Message'] = r.json()['Message'] | |||||
| return jsonify(return_data), 200 | |||||
| except requests.exceptions.RequestException as e: | |||||
| app.logger.error(e) | |||||
| if __name__ != '__main__': | |||||
| gunicorn_logger = logging.getLogger('gunicorn.err') | |||||
| app.logger.handlers = gunicorn_logger.handlers | |||||
| app.logger.setLevel(gunicorn_logger.level) | |||||