rejectedController.go 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120
  1. package controller
  2. import (
  3. "bswas/utilities"
  4. "strconv"
  5. )
  6. func RejectedFormat(data []map[string]string) ([]interface{}, [][]interface{}, map[string]string) {
  7. row := []interface{}{
  8. "日期","审核号","客户名称","订单号","姓名",
  9. "手机","原单单号","退回单号","退回公司","到付费用",
  10. "是否入库","商品条码","商品名称",
  11. }
  12. column := map[string]int{
  13. "created_at" : 0,
  14. "checked_numbers" : 1,
  15. "owner_name" : 2,
  16. "order_number" : 3,
  17. "sender" : 4,
  18. "mobile_sender" : 5,
  19. "logistic_number" : 6,
  20. "logistic_number_return" : 7,
  21. "logistic_name" : 8,
  22. "fee_collected" : 9,
  23. "is_loaded" : 10,
  24. "item_barcode" : 11,
  25. "item_name" : 12,
  26. }
  27. dataLength := len(data)
  28. if dataLength > 0 && data[0]["id_owner"] == "94"{
  29. row = append(row, "寄件方省","重量")
  30. column["common_01"] = 13
  31. column["common_02"] = 14
  32. }
  33. thisRowLength := len(row)
  34. column["item_amount"] = thisRowLength
  35. column["quality_label_name"] = thisRowLength+1
  36. column["item_batch_number"] = thisRowLength+2
  37. column["item_made_at"] = thisRowLength+3
  38. column["item_validity_at"] = thisRowLength+4
  39. column["item_remark"] = thisRowLength+5
  40. column["remark"] = thisRowLength+6
  41. column["operator_name"] = thisRowLength+7
  42. row = append(row ,"数量","是否正品", "批次号","生产日期","效期","备注","退单备注","录入人")
  43. list := make([][]interface{},len(data))
  44. mergeRow := make(map[string]string)
  45. var columnName string
  46. var startIndex int
  47. rowAmount := 0
  48. for k,v := range data{
  49. if columnName == v["id"] {
  50. rowAmount++
  51. }else{
  52. if rowAmount != 0 {
  53. mergeRow[strconv.Itoa(startIndex+2)] = strconv.Itoa(startIndex+2+rowAmount)
  54. }
  55. columnName = v["id"]
  56. startIndex = k
  57. rowAmount = 0
  58. }
  59. if rowAmount != 0 {
  60. mergeRow[strconv.Itoa(startIndex+2)] = strconv.Itoa(startIndex+2+rowAmount)
  61. }
  62. line := make([]interface{},len(row))
  63. for key,value := range column {
  64. if key == "created_at"{
  65. line[value] = utilities.DateFormat(v[key])
  66. continue
  67. }
  68. val := v[key]
  69. if key == "is_loaded" {
  70. switch v[key] {
  71. case "":
  72. val = "无需入库"
  73. case "0":
  74. val = "否"
  75. case "1":
  76. val = "是"
  77. case "2":
  78. val = "待推单"
  79. case "3":
  80. val = "上传异常"
  81. }
  82. }
  83. line[value] = val
  84. }
  85. list[k] = line
  86. }
  87. return row,list,mergeRow
  88. }
  89. func RejectedStatisticsFormat(data []map[string]string) ([]interface{}, [][]interface{}){
  90. row := []interface{}{
  91. "货主名","退件单数","审核单数","未审核单数","入库单数","未入库单数",
  92. }
  93. column := map[string]int{
  94. "owner_name" : 0,
  95. "bounce_amount" : 1,
  96. "check_amount" : 2,
  97. "uncheck_amount" : 3,
  98. "in_storage_count" : 4,
  99. "not_in_storage_count" : 5,
  100. }
  101. list := make([][]interface{},len(data))
  102. for k,v := range data{
  103. line := make([]interface{},len(row))
  104. for key,value := range column {
  105. if key == "uncheck_amount" {
  106. bounce,_ := strconv.Atoi(v["bounce_amount"])
  107. check,_ := strconv.Atoi(v["check_amount"])
  108. line[value] = strconv.Itoa(bounce - check)
  109. }else{
  110. line[value] = v[key]
  111. }
  112. }
  113. list[k] = line
  114. }
  115. return row, list
  116. }