added front - react+ts

ocr improved
This commit is contained in:
2025-12-11 05:20:53 +03:00
parent 73b1477368
commit 02681340c5
39 changed files with 6286 additions and 267 deletions

View File

@@ -5,6 +5,7 @@ import (
"github.com/gin-gonic/gin"
"github.com/google/uuid"
"github.com/shopspring/decimal"
"go.uber.org/zap"
ocrService "rmser/internal/services/ocr"
@@ -31,8 +32,10 @@ func (h *OCRHandler) GetCatalog(c *gin.Context) {
}
type MatchRequest struct {
RawName string `json:"raw_name" binding:"required"`
ProductID string `json:"product_id" binding:"required"`
RawName string `json:"raw_name" binding:"required"`
ProductID string `json:"product_id" binding:"required"`
Quantity float64 `json:"quantity"`
ContainerID *string `json:"container_id"`
}
// SaveMatch сохраняет привязку (обучение)
@@ -49,7 +52,19 @@ func (h *OCRHandler) SaveMatch(c *gin.Context) {
return
}
if err := h.service.SaveMapping(req.RawName, pID); err != nil {
qty := decimal.NewFromFloat(1.0)
if req.Quantity > 0 {
qty = decimal.NewFromFloat(req.Quantity)
}
var contID *uuid.UUID
if req.ContainerID != nil && *req.ContainerID != "" {
if uid, err := uuid.Parse(*req.ContainerID); err == nil {
contID = &uid
}
}
if err := h.service.SaveMapping(req.RawName, pID, qty, contID); err != nil {
logger.Log.Error("Ошибка сохранения матчинга", zap.Error(err))
c.JSON(http.StatusInternalServerError, gin.H{"error": err.Error()})
return
@@ -69,3 +84,14 @@ func (h *OCRHandler) GetMatches(c *gin.Context) {
c.JSON(http.StatusOK, matches)
}
// GetUnmatched возвращает список нераспознанных позиций для подсказок
func (h *OCRHandler) GetUnmatched(c *gin.Context) {
items, err := h.service.GetUnmatchedItems()
if err != nil {
logger.Log.Error("Ошибка получения списка unmatched", zap.Error(err))
c.JSON(http.StatusInternalServerError, gin.H{"error": err.Error()})
return
}
c.JSON(http.StatusOK, items)
}