jiangshuai
2023-12-08 27be7a2c517404e4622470edf7b83b13129220ff
service/input_history_search.go
@@ -12,14 +12,19 @@
)
type HistoryReport struct {
   ID                int
   BaseOperationType constvar.BaseOperationType
   Number            string //操作单号
   ProductId         string //产品编号
   ProductName       string //产品名称
   OperationTypeName string //业务名称
   FromLocation      string //源位置名称
   ToLocation        string //目标位置名称
   ID                int                        `json:"ID,omitempty"`
   BaseOperationType constvar.BaseOperationType `json:"baseOperationType,omitempty"`
   Number            string                     `json:"number,omitempty"`            //操作单号
   ProductId         string                     `json:"productId,omitempty"`         //产品编号
   ProductName       string                     `json:"productName,omitempty"`       //产品名称
   OperationTypeName string                     `json:"operationTypeName,omitempty"` //业务名称
   FromLocation      string                     `json:"fromLocation,omitempty"`      //源位置名称
   ToLocation        string                     `json:"toLocation,omitempty"`        //目标位置名称
   Date              string                     `json:"date,omitempty"`              //日期
   Company           string                     `json:"company,omitempty"`           // 供应商/客户
   Carrier           string                     `json:"carrier,omitempty"`           //承运商名称
   WaybillNumber     string                     `json:"waybillNumber"`               //运单号
   ReceiverName      string                     `json:"receiverName"`                //收货人
}
const (
@@ -36,19 +41,24 @@
      return
   }
   records := make([]*models.MoveHistory, 0, 100)
   reports := make([]*HistoryReport, 0, 100)
   err = models.NewMoveHistorySearch().Orm.FindInBatches(&records, 100, func(tx *gorm.DB, batch int) error {
      err = structx.AssignTo(records, &reports)
      operationIds := make([]int, 0, len(records))
      for _, record := range records {
         operationIds = append(operationIds, record.OperationId)
      }
      operations, err := models.NewOperationSearch().SetPreload(true).SetIds(operationIds).FindNotTotal()
      if err != nil {
         logx.Errorf("AddNewHistoryReportRecord AssignTo err:%v", err)
         return err
      }
      for _, report := range reports {
         err = blevex.Add(HistoryReportIndexName, strconv.Itoa(report.ID), report)
         if err != nil {
            logx.Errorf("InitHistoryReportData add failed, err:%v, index:%v, data:%v", err, HistoryReportIndexName, report)
            return err
         }
      operationMap := make(map[int]*models.Operation, len(operations))
      for _, operation := range operations {
         operationMap[operation.Id] = operation
      }
      for _, record := range records {
         AddNewHistoryReportRecord(record, operationMap[record.OperationId])
      }
      return nil
   }).Error
@@ -62,7 +72,7 @@
func SearchHistoryReport(keyword string, operationType constvar.BaseOperationType, page, pageSize int) (recordIds []int, total uint64, err error) {
   var ids []string
   from := (page - 1) * pageSize
   ids, total, err = blevex.ComplexSearch(HistoryReportIndexName, keyword, map[string]interface{}{"BaseOperationType": operationType}, from, pageSize)
   ids, total, err = blevex.ComplexSearch(HistoryReportIndexName, keyword, map[string]interface{}{"baseOperationType": operationType}, from, pageSize)
   if err != nil {
      return
   }
@@ -76,19 +86,21 @@
   return
}
func AddNewHistoryReportRecord(moveHistoryId int) {
func AddNewHistoryReportRecord(record *models.MoveHistory, operation *models.Operation) {
   var report HistoryReport
   record, err := models.NewMoveHistorySearch().SetID(uint(moveHistoryId)).First()
   if err != nil {
      logx.Errorf("AddNewHistoryReportRecord Find err:%v", err)
      return
   }
   err = structx.AssignTo(record, &report)
   err := structx.AssignTo(record, &report)
   if err != nil {
      logx.Errorf("AddNewHistoryReportRecord AssignTo err:%v", err)
      return
   }
   err = blevex.Add(HistoryReportIndexName, strconv.Itoa(moveHistoryId), report)
   report.Date = record.UpdatedAt.Format("2006-01-02")
   report.Carrier = operation.LogisticCompany.Name
   report.Company = operation.CompanyName
   report.WaybillNumber = operation.WaybillNumber
   report.ReceiverName = operation.ReceiverName
   err = blevex.Add(HistoryReportIndexName, strconv.Itoa(record.Id), report)
   if err != nil {
      logx.Errorf("AddNewHistoryReportRecord bleve add err:%v", err)
      return