queryInfoIndexParser.py 4.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. import time;
  2. import numpy as np;
  3. import utils;
  4. # 获取最近几个月查询次数
  5. def getLastMonthQueryTimes(df, month, queryReason,reportTime):
  6. # 当前日期
  7. # last1MonthDateStr = time.strftime("%Y-%m-%d");
  8. # 报告日期
  9. last1MonthDateStr = reportTime;#queryInfo["reportTime"].replace(".", "-")
  10. # 最近一个月
  11. lastMonthDate = np.datetime64(last1MonthDateStr, "D") - np.timedelta64(30 * month, 'D')
  12. lastMonthQueryTimesDf = df[df[1] >= str(lastMonthDate)]
  13. if queryReason != None and queryReason != "":
  14. lastMonthQueryTimesDf = lastMonthQueryTimesDf[lastMonthQueryTimesDf[3] == queryReason] # 第三列
  15. return lastMonthQueryTimesDf.shape[0];
  16. def getSelfLastMonthQueryTimes(df,month,reportTime):
  17. # 当前日期
  18. # last1MonthDateStr = time.strftime("%Y-%m-%d");
  19. # 报告日期
  20. last1MonthDateStr = reportTime;#queryInfo["reportTime"].replace(".", "-")
  21. # 最近一个月
  22. lastMonthDate = np.datetime64(last1MonthDateStr, "D") - np.timedelta64(30 * month, 'D')
  23. lastMonthQueryTimesDf = df[df[1] >= str(lastMonthDate)]
  24. rules = r'.*?' + '本人' + '.*'
  25. lastMonthQueryTimesDf = lastMonthQueryTimesDf[lastMonthQueryTimesDf[3].str.contains(rules)]
  26. # lastMonthQueryTimesDf = lastMonthQueryTimesDf[lastMonthQueryTimesDf[3] == queryReason] # 第三列
  27. return lastMonthQueryTimesDf.shape[0];
  28. # 获取最近几个月查询机构次数
  29. def getLastMonthQueryOrgTimes(df, month, queryReason,reportTime):
  30. # 当前日期
  31. # last1MonthDateStr = time.strftime("%Y-%m-%d");
  32. # 报告日期
  33. last1MonthDateStr = reportTime;#queryInfo["reportTime"].replace(".", "-")
  34. # 最近一个月
  35. lastMonthDate = np.datetime64(last1MonthDateStr, "D") - np.timedelta64(30 * month, 'D')
  36. lastMonthQueryTimesDf = df[df[1] >= str(lastMonthDate)]
  37. if queryReason != None and queryReason != "":
  38. lastMonthQueryTimesDf = lastMonthQueryTimesDf[lastMonthQueryTimesDf[3] == queryReason] # 第三列
  39. return lastMonthQueryTimesDf[2].unique().size;
  40. # 最后一次查询距离现在的月数贷款审批
  41. def getLastTimeQueryMonth(df, queryReason,reportTime):
  42. # 当前日期
  43. lastMonthQueryTimesDf = df;
  44. if queryReason != None and queryReason != "":
  45. lastMonthQueryTimesDf = df[df[3] == queryReason] # 第三列
  46. if not lastMonthQueryTimesDf.empty:
  47. lastMonthQueryTimesDf = lastMonthQueryTimesDf.reset_index(drop=True)
  48. lastMonthQueryDate = lastMonthQueryTimesDf.loc[0, :][1].replace(".", "-");
  49. return utils.difMonthReportTime(lastMonthQueryDate,reportTime)
  50. else:
  51. return None
  52. # 获取最近几个月查询机构次数--汇算帐
  53. #count(*) where (报告日期 - 查询日期的天数差)<=30 and 查询原因 != '贷后管理'
  54. def getLastMonthQueryOrgTimesNew(df, month, queryReason,reportTime):
  55. # 当前日期
  56. # last1MonthDateStr = time.strftime("%Y-%m-%d");
  57. # 报告日期
  58. last1MonthDateStr = reportTime;#queryInfo["reportTime"].replace(".", "-")
  59. # 最近一个月
  60. lastMonthDate = np.datetime64(last1MonthDateStr, "D") - np.timedelta64(30 * month, 'D')
  61. lastMonthQueryTimesDf = df[df[1] >= str(lastMonthDate)]
  62. if queryReason != None and queryReason != "":
  63. lastMonthQueryTimesDf = lastMonthQueryTimesDf[lastMonthQueryTimesDf[3] != queryReason] # 第三列
  64. return lastMonthQueryTimesDf[2].size;
  65. #新开发yuan
  66. #最近几个月欠税笔数
  67. def getPayRcdCountNew(payRcdDf,reportTime,month):
  68. # reportTime = str(np.datetime64(reportTime, "M")) + "-02"
  69. reportTime = utils.get_last_month_first_day_v2(reportTime)
  70. payDate = utils.getLastMonthDate(reportTime, month)
  71. # payRcdDfTmp = payRcdDf[payRcdDf['还款日期'] >= payDate]
  72. payRcdDfTmp = payRcdDf[(payRcdDf['还款日期'] > payDate) & (payRcdDf['还款日期'] <= reportTime)]
  73. payStatus = ["Z","G", "D", "C", "N", "M", "1", "2", "3", "4", "5", "6", "7"]
  74. payRcdTimesDf = payRcdDfTmp[payRcdDfTmp['还款状态'].isin(payStatus)]
  75. count = payRcdTimesDf["还款日期"].unique().size;
  76. return count