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