Bläddra i källkod

first commit

master
刘頔宇 4 år sedan
incheckning
e06824f40b
1 ändrade filer med 300 tillägg och 0 borttagningar
  1. +300
    -0
      hrapi.py

+ 300
- 0
hrapi.py Visa fil

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

Laddar…
Avbryt
Spara