From a10d59528a36dc5a1fbe4d9caa6b4abf25ab828c Mon Sep 17 00:00:00 2001
From: zhangqian <zhangqian@123.com>
Date: 星期五, 12 一月 2024 10:49:08 +0800
Subject: [PATCH] Merge branch 'master' of http://192.168.5.5:10010/r/aps/WMS
---
service/input_history_search.go | 79 ++++++++++++++++++++++++++++++---------
1 files changed, 61 insertions(+), 18 deletions(-)
diff --git a/service/input_history_search.go b/service/input_history_search.go
index 19bfa46..e81a10d 100644
--- a/service/input_history_search.go
+++ b/service/input_history_search.go
@@ -1,9 +1,12 @@
package service
import (
+ "fmt"
"github.com/spf13/cast"
"gorm.io/gorm"
+ "regexp"
"strconv"
+ "time"
"wms/constvar"
"wms/models"
"wms/pkg/blevex"
@@ -20,6 +23,11 @@
OperationTypeName string `json:"operationTypeName,omitempty"` //涓氬姟鍚嶇О
FromLocation string `json:"fromLocation,omitempty"` //婧愪綅缃悕绉�
ToLocation string `json:"toLocation,omitempty"` //鐩爣浣嶇疆鍚嶇О
+ Date time.Time `json:"date,omitempty"` //鏃ユ湡
+ Company string `json:"company,omitempty"` // 渚涘簲鍟�/瀹㈡埛
+ Carrier string `json:"carrier,omitempty"` //鎵胯繍鍟嗗悕绉�
+ WaybillNumber string `json:"waybillNumber"` //杩愬崟鍙�
+ ReceiverName string `json:"receiverName"` //鏀惰揣浜�
}
const (
@@ -36,19 +44,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
@@ -58,11 +71,39 @@
}
return
}
+func parseDateString(input string) (time.Time, error) {
+ // 瀹氫箟姝e垯琛ㄨ揪寮�
+ regex := regexp.MustCompile(`(\d{4})-(\d{2})-(\d{2})|(\d{4})/(\d{2})/(\d{2})|(\d{8})`)
+
+ // 鍖归厤瀛楃涓�
+ matches := regex.FindStringSubmatch(input)
+ if len(matches) == 0 {
+ return time.Time{}, fmt.Errorf("Invalid date format")
+ }
+ // 鎻愬彇骞存湀鏃�
+ year := matches[1] + matches[4] + matches[7]
+ month := matches[2] + matches[5]
+ day := matches[3] + matches[6]
+
+ // 鏋勫缓鏃堕棿瀵硅薄
+ parsedTime, err := time.ParseInLocation("20060102", fmt.Sprintf("%s%s%s", year, month, day), time.Local)
+ if err != nil {
+ return time.Time{}, err
+ }
+
+ return parsedTime, nil
+}
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.Search(HistoryReportIndexName, keyword, from, pageSize)
+ t, err := parseDateString(keyword)
+ if err != nil && t.IsZero() {
+ ids, total, err = blevex.ComplexSearch(HistoryReportIndexName, keyword, map[string]interface{}{"baseOperationType": operationType}, from, pageSize)
+ } else {
+ ids, total, err = blevex.TimeSearch(HistoryReportIndexName, t, map[string]interface{}{"baseOperationType": operationType}, from, pageSize)
+ }
+
if err != nil {
return
}
@@ -76,19 +117,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
+ 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
--
Gitblit v1.8.0