No puede seleccionar más de 25 temas Los temas deben comenzar con una letra o número, pueden incluir guiones ('-') y pueden tener hasta 35 caracteres de largo.
 
 

380 líneas
15 KiB

  1. # -*- coding: utf-8 -*
  2. import logging
  3. from flask import Flask, jsonify, request, abort
  4. from time import strftime, strptime
  5. import requests
  6. from xml.etree import ElementTree
  7. def is_number(s):
  8. try:
  9. float(s)
  10. return True
  11. except ValueError:
  12. pass
  13. try:
  14. import unicodedata
  15. unicodedata.numeric(s)
  16. return True
  17. except (TypeError, ValueError):
  18. pass
  19. return False
  20. app = Flask(__name__)
  21. post_data = {"FunID":"",
  22. "Language":1,
  23. "Data":{}
  24. }
  25. form_data = {}
  26. hr_url = "http://10.1.0.50:18010/RESTService/SaveOrUpdate"
  27. return_data = {
  28. "Success":True,
  29. "Message":""
  30. }
  31. @app.route('/api/hr/RS031001', methods=['POST'])
  32. # 人员异动申请
  33. def RS031001():
  34. if not request.form or not 'EmpNo' in request.form.to_dict():
  35. abort(406)
  36. post_data['FunID'] = 'RS031001'
  37. post_data['Data'] = request.form.to_dict()
  38. try:
  39. YYMMDD = strptime(post_data['Data']['YYMMDD'],"%a %b %d %H:%M:%S CST %Y")
  40. post_data['Data']['YYMMDD'] = strftime("%Y-%m-%d",YYMMDD)
  41. except (ValueError,KeyError) as e:
  42. app.logger.error("人员异动申请")
  43. app.logger.error(e)
  44. try:
  45. AppForDate = strptime(post_data['Data']['AppForDate'],"%a %b %d %H:%M:%S CST %Y")
  46. post_data['Data']['AppForDate'] = strftime("%Y-%m-%d",AppForDate)
  47. except (ValueError,KeyError) as e:
  48. app.logger.error("人员异动申请")
  49. app.logger.error(e)
  50. try:
  51. TryuseDate = strptime(post_data['Data']['TryuseDate'],"%a %b %d %H:%M:%S CST %Y")
  52. post_data['Data']['TryuseDate'] = strftime("%Y-%m-%d",TryuseDate)
  53. except (ValueError,KeyError) as e:
  54. app.logger.error("人员异动申请")
  55. app.logger.error(e)
  56. try:
  57. r = requests.post(hr_url,data=post_data.__str__().encode('utf-8'))
  58. if r.json()['Success']:
  59. return_data['Success'] = True
  60. return_data['Message'] = r.json()['Data']
  61. else:
  62. return_data['Success'] = False
  63. return_data['Message'] = r.json()['Message']
  64. return jsonify(return_data), 200
  65. except requests.exceptions.RequestException as e:
  66. app.logger.error("人员异动申请")
  67. app.logger.error(e)
  68. return_data['Success'] = False
  69. return_data['Message'] = '接口出错!'
  70. return jsonify(return_data), 200
  71. @app.route('/api/hr/KQ061001', methods=['POST'])
  72. # 人员签卡申请
  73. def KQ061001():
  74. if not request.form or not 'EmpNo' in request.form.to_dict():
  75. abort(406)
  76. post_data['FunID'] = 'KQ061001'
  77. post_data['Data'] = request.form.to_dict()
  78. try:
  79. r = requests.post(hr_url,data=post_data.__str__().encode('utf-8'))
  80. if r.json()['Success']:
  81. return_data['Success'] = True
  82. return_data['Message'] = r.json()['Data']
  83. else:
  84. return_data['Success'] = False
  85. return_data['Message'] = r.json()['Message']
  86. return jsonify(return_data), 200
  87. except:
  88. abort(500)
  89. @app.route('/api/hr/KQ061001v2', methods=['POST'])
  90. # 人员签卡申请
  91. def KQ061001v2():
  92. post_data['FunID'] = 'KQ061001'
  93. post_data['Data'] = request.form.to_dict()
  94. try:
  95. post_data['Data']['EmpNo'] = request.form.to_dict()['EmpNo']
  96. post_data['Data']['YYMMDD'] = strftime("%Y-%m-%d",strptime(request.form.to_dict()['UncheckedDate'],"%a %b %d %H:%M:%S CST %Y"))
  97. post_data['Data']['SignTime'] = strftime("%H:%M",strptime(request.form.to_dict()['UncheckedTime'],"%a %b %d %H:%M:%S CST %Y"))
  98. post_data['Data']['SignTypeNo'] = request.form.to_dict()['SignTypeNo']
  99. post_data['Data']['OAID'] = request.form.to_dict()['OAID']
  100. post_data['Data']['SignWhy'] = request.form.to_dict()['SignWhy']
  101. post_data['Data']['Remark'] = request.form.to_dict()['Remark']
  102. post_data['Data']['HasConfirmed'] = request.form.to_dict()['HasConfirmed']
  103. except (ValueError,KeyError) as e:
  104. app.logger.error("人员签卡申请")
  105. app.logger.error(e)
  106. return_data['Success'] = False
  107. return_data['Message'] = '表单填写出错,请重新填写!'
  108. return jsonify(return_data), 200
  109. try:
  110. r = requests.post(hr_url,data=post_data.__str__().encode('utf-8'))
  111. if r.json()['Success']:
  112. return_data['Success'] = True
  113. return_data['Message'] = r.json()['Data']
  114. else:
  115. return_data['Success'] = False
  116. return_data['Message'] = r.json()['Message']
  117. return jsonify(return_data), 200
  118. except requests.exceptions.RequestException as e:
  119. app.logger.error("人员签卡申请")
  120. app.logger.error(e)
  121. return_data['Success'] = False
  122. return_data['Message'] = '接口出错!'
  123. return jsonify(return_data), 200
  124. @app.route('/api/hr/KQ043001', methods=['POST'])
  125. # 个人加班申请
  126. def KQ043001():
  127. if not request.form or not 'EmpNo' in request.form.to_dict():
  128. abort(406)
  129. post_data['FunID'] = 'KQ043001'
  130. post_data['Data'] = request.form.to_dict()
  131. try:
  132. r = requests.post(hr_url,data=post_data.__str__().encode('utf-8'))
  133. if r.json()['Success']:
  134. return_data['Success'] = True
  135. return_data['Message'] = r.json()['Data']
  136. else:
  137. return_data['Success'] = False
  138. return_data['Message'] = r.json()['Message']
  139. return jsonify(return_data), 200
  140. except:
  141. abort(500)
  142. @app.route('/api/hr/KQ043001v2', methods=['POST'])
  143. # 个人加班申请
  144. def KQ043001v2():
  145. post_data['FunID'] = 'KQ043001'
  146. post_data['Data'] = request.form.to_dict()
  147. try:
  148. post_data['Data']['EmpNo'] = request.form.to_dict()['EmpNo']
  149. post_data['Data']['YYMMDD'] = strftime("%Y-%m-%d",strptime(request.form.to_dict()['overTimeStart'],"%a %b %d %H:%M:%S CST %Y"))
  150. post_data['Data']['BeginTime'] = strftime("%H:%M",strptime(request.form.to_dict()['overTimeStart'],"%a %b %d %H:%M:%S CST %Y"))
  151. post_data['Data']['EndTime'] = strftime("%H:%M",strptime(request.form.to_dict()['overTimeEnd'],"%a %b %d %H:%M:%S CST %Y"))
  152. post_data['Data']['ReqOverTime'] = request.form.to_dict()['ReqOverTime']
  153. post_data['Data']['ReqWhyNo'] = request.form.to_dict()['ReqWhyNo']
  154. post_data['Data']['IsReplace'] = request.form.to_dict()['IsReplace']
  155. post_data['Data']['HasConfirmed'] = request.form.to_dict()['HasConfirmed']
  156. post_data['Data']['CalcType'] = request.form.to_dict()['CalcType']
  157. post_data['Data']['IsReCalcHours'] = request.form.to_dict()['IsReCalcHours']
  158. post_data['Data']['OAID'] = request.form.to_dict()['OAID']
  159. except (ValueError,KeyError) as e:
  160. app.logger.error("个人加班申请")
  161. app.logger.error(e)
  162. return_data['Success'] = False
  163. return_data['Message'] = '表单填写出错,请重新填写!'
  164. return jsonify(return_data), 200
  165. try:
  166. r = requests.post(hr_url,data=post_data.__str__().encode('utf-8'))
  167. if r.json()['Success']:
  168. return_data['Success'] = True
  169. return_data['Message'] = r.json()['Data']
  170. else:
  171. return_data['Success'] = False
  172. return_data['Message'] = r.json()['Message']
  173. return jsonify(return_data), 200
  174. except requests.exceptions.RequestException as e:
  175. app.logger.error("个人加班申请")
  176. app.logger.error(e)
  177. return_data['Success'] = False
  178. return_data['Message'] = '接口出错!'
  179. return jsonify(return_data), 200
  180. @app.route('/api/hr/KQ035001', methods=['POST'])
  181. # 人员出差申请
  182. def KQ035001():
  183. if not request.form or not 'EmpNo' in request.form.to_dict():
  184. abort(406)
  185. post_data['FunID'] = 'KQ035001'
  186. post_data['Data'] = request.form.to_dict()
  187. post_data['Data']['Flag'] = post_data['Data']['Flag'][-1:]
  188. try:
  189. r = requests.post(hr_url,data=post_data.__str__().encode('utf-8'))
  190. if r.json()['Success']:
  191. return_data['Success'] = True
  192. return_data['Message'] = r.json()['Data']
  193. else:
  194. return_data['Success'] = False
  195. return_data['Message'] = r.json()['Message']
  196. return jsonify(return_data), 200
  197. except:
  198. abort(500)
  199. @app.route('/api/hr/KQ033001', methods=['POST'])
  200. # 人员请假申请
  201. def KQ033001():
  202. if not request.form or not 'EmpNo' in request.form.to_dict():
  203. abort(400)
  204. post_data['FunID'] = 'KQ033001'
  205. try:
  206. post_data['Data']['EmpNo'] = request.form.to_dict()['EmpNo']
  207. post_data['Data']['LeaveType'] = request.form.to_dict()['LeaveType'][-3:]
  208. post_data['Data']['Flag'] = request.form.to_dict()['Flag'][-1:]
  209. post_data['Data']['TimeRange'] = request.form.to_dict()['TimeRange']
  210. except (ValueError,KeyError) as e:
  211. app.logger.error(e)
  212. return_data['Success'] = False
  213. return_data['Message'] = '表单填写出错,请重新填写!'
  214. return jsonify(return_data), 200
  215. if 'OAID' in request.form.to_dict():
  216. try:
  217. post_data['Data']['OAID'] = request.form.to_dict()['OAID']
  218. except (ValueError,KeyError) as e:
  219. app.logger.error(e)
  220. post_data['Data']['OAID'] = ''
  221. try:
  222. post_data['Data']['YYMMDD'] = strftime("%Y-%m-%d",strptime(request.form.to_dict()['YYMMDD'],"%a %b %d %H:%M:%S CST %Y"))
  223. post_data['Data']['EndYYMMDD'] = strftime("%Y-%m-%d",strptime(request.form.to_dict()['EndYYMMDD'],"%a %b %d %H:%M:%S CST %Y"))
  224. except (ValueError,KeyError) as e:
  225. app.logger.error(e)
  226. app.logger.error('YYMMDD和EndYYMMDD格式错误')
  227. if 'BeginTime' in request.form.to_dict():
  228. try:
  229. post_data['Data']['BeginTime'] = strftime("%H:%M",strptime(request.form.to_dict()['BeginTime'],"%a %b %d %H:%M:%S CST %Y"))
  230. except (ValueError,KeyError) as e:
  231. app.logger.error(e)
  232. app.logger.error('BeginTime格式错误')
  233. if 'EndTime' in request.form.to_dict():
  234. try:
  235. post_data['Data']['EndTime'] = strftime("%H:%M",strptime(request.form.to_dict()['EndTime'],"%a %b %d %H:%M:%S CST %Y"))
  236. except (ValueError,KeyError) as e:
  237. app.logger.error(e)
  238. app.logger.error('EndTime格式错误')
  239. if 'LeaveWhy' in request.form.to_dict():
  240. try:
  241. post_data['Data']['LeaveWhy'] = request.form.to_dict()['LeaveWhy']
  242. except (ValueError,KeyError) as e:
  243. app.logger.error(e)
  244. post_data['Data']['LeaveWhy'] = ""
  245. if 'NormalTime' in request.form.to_dict():
  246. try:
  247. form_data['NormalTime'] = request.form.to_dict()['NormalTime']
  248. except (ValueError,KeyError) as e:
  249. app.logger.error(e)
  250. form_data['EndTime'] = "0"
  251. try:
  252. r = requests.post(hr_url,data=post_data.__str__().encode('utf-8'))
  253. if r.json()['Success']:
  254. return_data['Success'] = True
  255. return_data['Message'] = r.json()['Data']
  256. else:
  257. return_data['Success'] = False
  258. return_data['Message'] = r.json()['Message']
  259. return jsonify(return_data), 200
  260. except requests.exceptions.RequestException as e:
  261. app.logger.error(e)
  262. return_data['Success'] = False
  263. return_data['Message'] = '接口出错'
  264. return jsonify(return_data), 200
  265. @app.route('/api/hr/CheckLeaveBillValidateForApp', methods=['POST'])
  266. def CheckLeaveBillValidateForApp():
  267. if not request.form or not 'EmpNo' in request.form.to_dict():
  268. abort(405)
  269. try:
  270. form_data['EmpNo'] = request.form.to_dict()['EmpNo']
  271. form_data['LeaveType'] = request.form.to_dict()['LeaveType']
  272. form_data['Flag'] = request.form.to_dict()['Flag']
  273. form_data['TimeRange'] = request.form.to_dict()['TimeRange']
  274. except (ValueError,KeyError) as e:
  275. app.logger.error(e)
  276. return_data['Success'] = False
  277. return_data['Message'] = '表单填写出错,请重新填写!'
  278. return jsonify(return_data), 200
  279. try:
  280. form_data['OAID'] = request.form.to_dict()['OAID']
  281. except (ValueError,KeyError) as e:
  282. app.logger.error(e)
  283. form_data['OAID'] = ""
  284. try:
  285. form_data['BeginDate'] = request.form.to_dict()
  286. except (ValueError,KeyError) as e:
  287. app.logger.error(e)
  288. form_data['BeginDate'] = ""
  289. try:
  290. form_data['EndDate'] = request.form.to_dict()['EndDate']
  291. except (ValueError,KeyError) as e:
  292. app.logger.error(e)
  293. form_data['EndDate'] = ""
  294. if 'BeginTime' in request.form.to_dict():
  295. try:
  296. form_data['BeginTime'] = request.form.to_dict()['BeginTime']
  297. except (ValueError,KeyError) as e:
  298. app.logger.error(e)
  299. form_data['BeginTime'] = ""
  300. if 'EndTime' in request.form.to_dict():
  301. try:
  302. form_data['EndTime'] = request.form.to_dict()['EndTime']
  303. except (ValueError,KeyError) as e:
  304. app.logger.error(e)
  305. form_data['EndTime'] = ""
  306. if 'NormalTime' in request.form.to_dict():
  307. try:
  308. form_data['NormalTime'] = request.form.to_dict()['NormalTime']
  309. except (ValueError,KeyError) as e:
  310. app.logger.error(e)
  311. form_data['EndTime'] = "0"
  312. try:
  313. r = requests.get("http://10.1.0.50:18010/RESTService/CheckLeaveBillValidateForApp",params=form_data)
  314. app.logger.info(form_data)
  315. tree = ElementTree.fromstring(r.content)
  316. if is_number(tree.text):
  317. return_data['Success'] = True
  318. return_data['Message'] = tree.text
  319. else:
  320. return_data['Success'] = False
  321. return_data['Message'] = tree.text
  322. return jsonify(return_data), 200
  323. except requests.exceptions.RequestException as e:
  324. app.logger.error(e)
  325. return_data['Success'] = False
  326. return_data['Message'] = '接口出错'
  327. return jsonify(return_data), 200
  328. @app.route('/api/hr/RS061001', methods=['POST'])
  329. # 人员离职申请
  330. def RS061001():
  331. if not request.form or not 'EmpNo' in request.form.to_dict():
  332. abort(406)
  333. post_data['FunID'] = 'RS061001'
  334. post_data['Data'] = request.form.to_dict()
  335. try:
  336. ReqRegDate = strptime(post_data['Data']['ReqRegDate'],"%a %b %d %H:%M:%S CST %Y")
  337. post_data['Data']['ReqRegDate'] = strftime("%Y-%m-%d",ReqRegDate)
  338. except:
  339. app.logger.error('Request form do not have ReqRegDate')
  340. try:
  341. ReqLeaveDate = strptime(post_data['Data']['ReqLeaveDate'],"%a %b %d %H:%M:%S CST %Y")
  342. post_data['Data']['ReqLeaveDate'] = strftime("%Y-%m-%d",ReqLeaveDate)
  343. except:
  344. app.logger.error('Request form do not have ReqLeaveDate')
  345. try:
  346. LeaveDate = strptime(post_data['Data']['LeaveDate'],"%a %b %d %H:%M:%S CST %Y")
  347. post_data['Data']['LeaveDate'] = strftime("%Y-%m-%d",LeaveDate)
  348. except:
  349. app.logger.error('Request form do not have LeaveDate')
  350. try:
  351. r = requests.post(hr_url,data=post_data.__str__().encode('utf-8'))
  352. if r.json()['Success']:
  353. return_data['Success'] = True
  354. return_data['Message'] = r.json()['Data']
  355. else:
  356. return_data['Success'] = False
  357. return_data['Message'] = r.json()['Message']
  358. return jsonify(return_data), 200
  359. except requests.exceptions.RequestException as e:
  360. app.logger.error(e)
  361. if __name__ != '__main__':
  362. gunicorn_logger = logging.getLogger('gunicorn.err')
  363. app.logger.handlers = gunicorn_logger.handlers
  364. app.logger.setLevel(gunicorn_logger.level)