| @@ -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) | |||