file.go 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147
  1. package common
  2. import (
  3. "encoding/json"
  4. "fmt"
  5. "git.listensoft.net/tool/jspkit/logger"
  6. "github.com/go-rod/rod/lib/utils"
  7. "github.com/tidwall/gjson"
  8. "os"
  9. "path/filepath"
  10. "strings"
  11. "time"
  12. )
  13. // GetCollectPDFPath 生成一个采集用的pdf路径
  14. func GetCollectPDFPath(district, taxNo, taxTape string) (string, error) {
  15. var err error
  16. var path string
  17. path = "./data/collection/" + district + "/"
  18. if !PathExists(path) {
  19. err = os.MkdirAll(path, os.ModePerm)
  20. }
  21. path = path + taxNo + "_" + taxTape + ".pdf"
  22. return path, err
  23. }
  24. // name pdf文件名
  25. // path 文件路径
  26. func PostBankPdf(name, suffix, path string) string {
  27. var params = map[string]string{
  28. "path": "/mnt/bank/banks/",
  29. "name": name + "." + suffix,
  30. }
  31. str, _ := PostFile("https://public.listensoft.net/api/uploadFile", map[string]string{
  32. "upFile": path,
  33. }, params)
  34. return gjson.GetBytes(str, "data.url").String()
  35. }
  36. func GetBankPDFPath(bank, taxNo, taxTape string) (string, error) {
  37. var err error
  38. var path string
  39. path = "./data/bank/" + bank + "/" + taxNo + "/"
  40. if !PathExists(path) {
  41. err = os.MkdirAll(path, os.ModePerm)
  42. }
  43. path = path + "_" + taxTape + ".pdf"
  44. return path, err
  45. }
  46. // PDFtoStrArrayPython pdf转二维数组 python服务
  47. func PDFtoStrArrayPython(path string) ([][]string, error) {
  48. var code [][]string
  49. files := map[string]string{
  50. "file": path,
  51. }
  52. var bys []byte
  53. var err error
  54. pdfServers := []string{
  55. `http://47.104.75.113:6000/pdfToText`,
  56. `http://47.104.75.113:6000/pdfToText`,
  57. }
  58. for _, uri := range pdfServers {
  59. bys, err = PostFile(uri, files, map[string]string{})
  60. if err != nil {
  61. utils.Sleep(10)
  62. continue
  63. }
  64. break
  65. }
  66. if err != nil {
  67. return code, err
  68. }
  69. json.Unmarshal(bys, &code)
  70. return code, nil
  71. }
  72. // UploadPdfToStrArray java PDF转数组
  73. func UploadPdfToStrArray(path string) ([]string, error) {
  74. f := 0
  75. begin:
  76. url := "http://47.104.75.113:8080/api/uploadPdfToText" //灵信服务器
  77. files := map[string]string{
  78. "file": path,
  79. }
  80. resp, err := PostFile(url, files, map[string]string{})
  81. arr := []string{}
  82. if err != nil {
  83. if f < 3 {
  84. f++
  85. utils.Sleep(10)
  86. goto begin
  87. }
  88. return arr, err
  89. }
  90. type resut struct {
  91. Text string `json:"text"`
  92. }
  93. var Result resut
  94. if err := json.Unmarshal(resp, &Result); err != nil {
  95. return arr, err
  96. }
  97. arr = strings.Split(Result.Text, "\n")
  98. return arr, nil
  99. }
  100. // 生成验证码图片的路径
  101. func GenerateFilePath(name, suffix string) string {
  102. os.MkdirAll("captcha", os.ModePerm)
  103. n := fmt.Sprintf("%s_%s.%s", name, GetTimestamp(13), suffix)
  104. return filepath.Join("captcha", n)
  105. }
  106. func GetCollectZipPath(district, taxNo, taxTape string) (string, error) {
  107. var err error
  108. var path string
  109. path = "./data/collection/" + district + "/"
  110. if !PathExists(path) {
  111. err = os.MkdirAll(path, os.ModePerm)
  112. }
  113. path = path + taxNo + "_" + taxTape + ".zip"
  114. return path, err
  115. }
  116. // 保存时长文件 地区 任务 开始/结束
  117. func SaveDurationToFile(area string, task string, msg string) {
  118. path := "./data/duration/"
  119. if !PathExists(path) {
  120. os.MkdirAll(path, os.ModePerm)
  121. }
  122. path = path + "file.txt"
  123. data := area + "----" + task + "----" + time.Now().Format("2006-01-02 15:04:05") + "---用时---" + msg + "秒"
  124. // 创建或打开文件,文件名为test.txt,使用读写权限打开
  125. file, err := os.OpenFile(path, os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0644)
  126. if err != nil {
  127. logger.Info("打开文件失败")
  128. }
  129. defer file.Close()
  130. // 写入数据
  131. //writeData := []byte(data)
  132. _, err = file.WriteString("\r" + data)
  133. if err != nil {
  134. logger.Info("写入文件失败")
  135. }
  136. }