waybill.go 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299
  1. package dto
  2. import (
  3. "cold-delivery/app/admin/model"
  4. "cold-delivery/common/dto"
  5. common "cold-delivery/common/model"
  6. model2 "cold-delivery/common/model"
  7. "time"
  8. )
  9. // 运单
  10. type WaybillGetPageReq struct {
  11. dto.Pagination `search:"-"`
  12. WaybillNo string `form:"waybillNo" search:"type:contains;column:waybill_no;table:waybill"` // 运单编号
  13. OrderNo string `form:"orderNo" search:"type:contains;column:order_no;table:waybill"` // 运单编号
  14. Status int `form:"status" search:"type:exact;column:status;table:waybill"` // 状态
  15. OrderStartTime string `form:"orderStartTime" search:"type:gte;column:order_time;table:waybill"` // 下单开始时间
  16. OrderEndTime string `form:"orderEndTime" search:"type:lte;column:order_time;table:waybill"` // 下单结束时间
  17. WaybillOrder
  18. }
  19. type WaybillOrder struct {
  20. CreatedAtOrder string `search:"type:order;column:created_at;table:waybill" form:"createdAtOrder" default:"desc"`
  21. }
  22. func (m *WaybillGetPageReq) GetNeedSearch() interface{} {
  23. return *m
  24. }
  25. type WaybillGetCustomerPageReq struct {
  26. dto.Pagination `search:"-"`
  27. WaybillNo string `form:"waybillNo" search:"type:contains;column:waybill_no;table:waybill"` // 运单编号
  28. OrderNo string `form:"orderNo" search:"type:contains;column:order_no;table:waybill"` // 运单编号
  29. Status int `form:"status" search:"-"` // 状态
  30. OrderStartTime string `form:"orderStartTime" search:"type:gte;column:order_time;table:waybill"` // 下单开始时间
  31. OrderEndTime string `form:"orderEndTime" search:"type:lte;column:order_time;table:waybill"` // 下单结束时间
  32. CustomerId int `form:"customerId" search:"type:exact;column:customer_id;table:waybill" swaggerignore:"true"` // 客户id
  33. WaybillOrder
  34. }
  35. func (m *WaybillGetCustomerPageReq) GetNeedSearch() interface{} {
  36. return *m
  37. }
  38. type WaybillInsertReq struct {
  39. Id int `json:"id" comment:"编码" swaggerignore:"true"` // 编码
  40. No string `json:"no" swaggerignore:"true"` //单号
  41. OrderNo string `json:"orderNo"` // 订单号
  42. Status int `json:"status" swaggerignore:"true"` //订单状态:1-待处理;102-待装车 103-运输中 104-已签收
  43. SaveSenderAddress bool `json:"saveSenderAddress"` //保存发货地址
  44. SenderAddressDetails string `json:"senderAddressDetails"` //发货地址详情
  45. SenderAddressName string `json:"senderAddressName"` //发货地址名称
  46. SenderAddressPhone string `json:"senderAddressPhone" vd:"regexp('^1[3-9]\\d{9}$');msg:'配送人电话格式不正确'"` //发货地址电话
  47. SaveConsigneeAddress bool `json:"SaveConsigneeAddress"` //保存收货地址
  48. ConsigneeAddressDetails string `json:"consigneeAddressDetails"` //收发货地址详情
  49. ConsigneeAddressName string `json:"consigneeAddressName"` //收发货地址名称
  50. ConsigneeAddressPhone string `json:"consigneeAddressPhone" vd:"regexp('^1[3-9]\\d{9}$');msg:'收件人电话格式不正确'"` //收发货地址电话
  51. DeliveryName string `json:"deliveryName"` // 配送姓名
  52. DeliveryPhone string `json:"deliveryPhone"` // 配送电话
  53. DeliveryId int `json:"deliveryId"` // 配送人id
  54. ReCheckId int `json:"reCheckId"` // 复核人id
  55. Quantity int `json:"quantity"` // 药品数量
  56. Remark string `json:"remark"` // 运输备注
  57. TamperProofLabel string `json:"tamperProofLabel"` // 防拆码标签
  58. TamperProofLabelImg string `json:"tamperProofLabelImg"` // 防拆码标签图片
  59. CoolerBoxId int `json:"coolerBoxId"` // 保温箱id
  60. model2.ControlBy `swaggerignore:"true"`
  61. model2.DeptBy
  62. }
  63. func (s *WaybillInsertReq) Generate(m *model.Waybill) {
  64. if s.Id != 0 {
  65. m.Id = s.Id
  66. }
  67. m.Status = 1
  68. m.OrderNo = s.OrderNo
  69. m.SenderAddressDetails = s.SenderAddressDetails
  70. m.SenderAddressName = s.SenderAddressName
  71. m.SenderAddressPhone = s.SenderAddressPhone
  72. m.ConsigneeAddressDetails = s.ConsigneeAddressDetails
  73. m.ConsigneeAddressName = s.ConsigneeAddressName
  74. m.ConsigneeAddressPhone = s.ConsigneeAddressPhone
  75. m.DeliveryName = s.DeliveryName
  76. m.DeliveryPhone = s.DeliveryPhone
  77. m.DeliveryId = s.DeliveryId
  78. m.ReCheckId = s.ReCheckId
  79. m.Quantity = s.Quantity
  80. m.Remark = s.Remark
  81. m.TamperProofLabel = s.TamperProofLabel
  82. m.TamperProofLabelImg = s.TamperProofLabelImg
  83. m.CoolerBoxId = s.CoolerBoxId
  84. m.OrderTime = model2.Time(time.Now())
  85. if s.ControlBy.UpdateBy != 0 {
  86. m.UpdateBy = s.UpdateBy
  87. }
  88. if s.ControlBy.CreateBy != 0 {
  89. m.CreateBy = s.CreateBy
  90. }
  91. if s.DeptBy.DeptId != 0 {
  92. m.DeptId = s.DeptId
  93. }
  94. }
  95. func (s *WaybillInsertReq) GetId() interface{} {
  96. return s.Id
  97. }
  98. type WaybillUpdateReq struct {
  99. Id int `json:"id" comment:"编码" swaggerignore:"true"` // 编码
  100. OrderNo string `json:"orderNo"`
  101. SenderAddressDetails string `json:"senderAddressDetails"` //发货地址详情
  102. SenderAddressName string `json:"senderAddressName"` //发货地址名称
  103. SenderAddressPhone string `json:"senderAddressPhone"` //发货地址电话
  104. ConsigneeAddressDetails string `json:"consigneeAddressDetails"` //收发货地址详情
  105. ConsigneeAddressName string `json:"consigneeAddressName"` //收发货地址名称
  106. ConsigneeAddressPhone string `json:"consigneeAddressPhone"` //收发货地址电话
  107. DeliveryName string `json:"deliveryName"` // 配送姓名
  108. DeliveryPhone string `json:"deliveryPhone"` // 配送电话
  109. DeliveryId int `json:"deliveryId"` // 配送id
  110. ReCheckId int `json:"reCheckId"` // 复核人id
  111. TamperProofLabel string `json:"tamperProofLabel"` //防拆标签
  112. TamperProofLabelImg string `json:"tamperProofLabelImg"` //防拆码标签图片
  113. DeliveryCondition string `json:"deliveryCondition"` //配送要求
  114. Quantity int `json:"quantity"` //药品数量
  115. Remark string `json:"remark"` //运输备注
  116. CoolerBoxId int `json:"coolerBoxId"` //保温箱id
  117. model2.ControlBy `swaggerignore:"true"`
  118. model2.DeptBy `swaggerignore:"true"`
  119. }
  120. func (s *WaybillUpdateReq) Generate(m *model.Waybill) {
  121. if s.Id != 0 {
  122. m.Id = s.Id
  123. }
  124. m.OrderNo = s.OrderNo
  125. m.SenderAddressDetails = s.SenderAddressDetails
  126. m.SenderAddressName = s.SenderAddressName
  127. m.SenderAddressPhone = s.SenderAddressPhone
  128. m.ConsigneeAddressDetails = s.ConsigneeAddressDetails
  129. m.ConsigneeAddressName = s.ConsigneeAddressName
  130. m.ConsigneeAddressPhone = s.ConsigneeAddressPhone
  131. m.DeliveryName = s.DeliveryName
  132. m.DeliveryPhone = s.DeliveryPhone
  133. m.DeliveryId = s.DeliveryId
  134. m.ReCheckId = s.ReCheckId
  135. m.Quantity = s.Quantity
  136. m.Remark = s.Remark
  137. m.TamperProofLabel = s.TamperProofLabel
  138. m.TamperProofLabelImg = s.TamperProofLabelImg
  139. if s.CoolerBoxId > 0 {
  140. m.CoolerBoxId = s.CoolerBoxId
  141. }
  142. if s.ControlBy.UpdateBy != 0 {
  143. m.UpdateBy = s.UpdateBy
  144. }
  145. if s.ControlBy.CreateBy != 0 {
  146. m.CreateBy = s.CreateBy
  147. }
  148. }
  149. func (s *WaybillUpdateReq) GetId() interface{} {
  150. return s.Id
  151. }
  152. type WaybillUpdateStatusReq struct {
  153. Id int `json:"id" comment:"编码" swaggerignore:"true"` // 编码
  154. Status int `json:"status"` //药品数量
  155. model2.ControlBy `swaggerignore:"true"`
  156. model2.DeptBy `swaggerignore:"true"`
  157. }
  158. func (s *WaybillUpdateStatusReq) Generate(m *model.Waybill) {
  159. if s.Id != 0 {
  160. m.Id = s.Id
  161. }
  162. m.Status = s.Status
  163. if s.ControlBy.UpdateBy != 0 {
  164. m.UpdateBy = s.UpdateBy
  165. }
  166. if s.ControlBy.CreateBy != 0 {
  167. m.CreateBy = s.CreateBy
  168. }
  169. }
  170. func (s *WaybillUpdateStatusReq) GetId() interface{} {
  171. return s.Id
  172. }
  173. type WaybillDeliveryReq struct {
  174. WaybillIds []int `json:"waybillIds"` // 运单id
  175. CoolerBoxId int `json:"coolerBoxId"` // 保温箱id
  176. IceRaftCode []string `json:"iceRaftCode"` // 冰排code
  177. OldIceRaftCode []string `json:"oldIceRaftCode" swaggerignore:"true"` // 旧的冰排code
  178. model2.ControlBy `swaggerignore:"true"`
  179. model2.DeptBy `swaggerignore:"true"`
  180. }
  181. func (s *WaybillDeliveryReq) GetId() interface{} {
  182. return s.WaybillIds
  183. }
  184. type WaybillGetReq struct {
  185. Id int `uri:"id"`
  186. }
  187. func (s *WaybillGetReq) GetId() interface{} {
  188. return s.Id
  189. }
  190. type WaybillDeleteReq struct {
  191. Id int `json:"id"`
  192. common.ControlBy `swaggerignore:"true"`
  193. }
  194. func (s *WaybillDeleteReq) GetId() interface{} {
  195. return s.Id
  196. }
  197. // 运单出入库/上下车
  198. type WaybillInOutReq struct {
  199. StartTime model2.Time `json:"startTime"`
  200. WaybillNoList []string `json:"waybillNoList"` // 订单编号
  201. }
  202. // 运单签收
  203. type WaybillReceiptReq struct {
  204. Status int `json:"status"` // 3 已签收 5 已拒收
  205. RejectionReason string `json:"rejectionReason"` // 拒收原因
  206. WaybillNo string `json:"waybillNo"` // 订单编号
  207. ReceiptImg string `json:"receiptImg"` // 签收图片
  208. AssessStar int `json:"assessStar"` // 评价星星
  209. AssessContent string `json:"assessContent"` // 评价内容
  210. }
  211. type WaybillGetAppletPageReq struct {
  212. dto.Pagination `search:"-"`
  213. WaybillNo string `form:"waybillNo" search:"type:contains;column:waybill_no;table:waybill_logistics"` // 运单编号
  214. Status int `form:"status" search:"type:exact;column:status;table:waybill_logistics"` // 状态
  215. WaybillOrder
  216. }
  217. type WaybillGetAppletPageOrder struct {
  218. CreatedAtOrder string `search:"type:order;column:created_at;table:waybill_logistics" form:"createdAtOrder" default:"desc"`
  219. }
  220. func (m *WaybillGetAppletPageReq) GetNeedSearch() interface{} {
  221. return *m
  222. }
  223. type WaybillImportReq struct {
  224. CustomerName string `form:"customerName"` //下单客户名称
  225. }
  226. type WaybillStatsReq struct {
  227. Date string `form:"date"` // 日期
  228. Type string `form:"type"` // 类型 month-月 year-年
  229. }
  230. type WaybillUserStatsReq struct {
  231. Date string `form:"date"` // 日期
  232. Type string `form:"type"` // 类型 month-月 year-年
  233. UserType string `form:"userType"` // 配送员 delivery-配送员 reCheck-复核员
  234. UserIds []int `form:"userId"` // 用户id
  235. }
  236. type WaybillStats struct {
  237. Date string `json:"date"` // 日期 2024-01-01
  238. Num int64 `json:"num"` // 数量
  239. }
  240. type WaybillUserStats struct {
  241. Name string
  242. Stats []WaybillStats `json:"stats"`
  243. }
  244. type WaybillStatsRes struct {
  245. TodayNum int64 `json:"todayNum"` // 今日总运单数
  246. WaitDeliveryNum int64 `json:"waitDeliveryNum"` // 已下单
  247. ReceiptNum int64 `json:"receiptNum"` // 已签收
  248. RejectionNum int64 `json:"rejectionNum"` // 已拒收
  249. InDeliveryNum int64 `json:"inDeliveryNum"` // 运送中
  250. ThisMonthNum int64 `json:"thisMonthNum"` // 本月运单数
  251. LastMonthNum int64 `json:"lastMonthNum"` // 上月运单数
  252. ThisYearNum int64 `json:"thisYearNum"` // 本年运单数
  253. LastYearNum int64 `json:"lastYearNum"` // 上年运单数
  254. Stats []WaybillStats `json:"stats"`
  255. }
  256. type WaybillGetByWaybillNoReq struct {
  257. WaybillNo string `form:"waybillNo" vd:"len($)>0;msg:'订单编号不能为空'"` // 运单编号-必填
  258. }
  259. type WaybillGetByWaybillPdfReq struct {
  260. WaybillNo string `form:"waybillNo" vd:"len($)>0;msg:'订单编号不能为空'"` // 运单编号-必填
  261. HumidityShow bool `form:"humidityShow" vd:""` // 湿度显示
  262. //TemplateShow bool `form:"templateShow" vd:""` // 湿度显示
  263. }