|
- # -*- 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)
|