mirror of
https://gitlab.com/mbugroup/lti-api.git
synced 2026-05-20 13:31:56 +00:00
feat(BE): fix fifo system recording and uniformity dto
This commit is contained in:
@@ -93,6 +93,10 @@ func (u *UniformityController) GetOne(c *fiber.Ctx) error {
|
||||
Uniformity: result.Uniformity,
|
||||
Cv: result.Cv,
|
||||
}
|
||||
document, documentURL, err = u.UniformityService.GetDocumentInfo(c, id)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
standard, err := u.UniformityService.GetStandard(c, result)
|
||||
|
||||
@@ -39,6 +39,7 @@ type UniformityService interface {
|
||||
Approval(ctx *fiber.Ctx, req *validation.Approve) ([]entity.ProjectFlockKandangUniformity, error)
|
||||
ParseBodyWeightExcel(ctx *fiber.Ctx, file *multipart.FileHeader) ([]BodyWeightExcelRow, error)
|
||||
ComputeUniformity(rows []BodyWeightExcelRow) (UniformityCalculation, error)
|
||||
GetDocumentInfo(ctx *fiber.Ctx, uniformityID uint) (*entity.Document, string, error)
|
||||
CalculateUniformityFromDocument(ctx *fiber.Ctx, uniformityID uint) (UniformityCalculation, *entity.Document, string, error)
|
||||
}
|
||||
|
||||
@@ -592,28 +593,19 @@ func (s uniformityService) ComputeUniformity(rows []BodyWeightExcelRow) (Uniform
|
||||
return computeUniformity(rows)
|
||||
}
|
||||
|
||||
func (s uniformityService) GetDocumentInfo(c *fiber.Ctx, uniformityID uint) (*entity.Document, string, error) {
|
||||
return s.fetchUniformityDocument(c.Context(), uniformityID, true)
|
||||
}
|
||||
|
||||
func (s uniformityService) CalculateUniformityFromDocument(c *fiber.Ctx, uniformityID uint) (UniformityCalculation, *entity.Document, string, error) {
|
||||
if s.DocumentSvc == nil {
|
||||
return UniformityCalculation{}, nil, "", fiber.NewError(fiber.StatusInternalServerError, "Document service not available")
|
||||
}
|
||||
|
||||
documents, err := s.DocumentSvc.ListByTarget(c.Context(), "UNIFORMITY", uint64(uniformityID))
|
||||
document, url, err := s.fetchUniformityDocument(c.Context(), uniformityID, false)
|
||||
if err != nil {
|
||||
return UniformityCalculation{}, nil, "", err
|
||||
}
|
||||
if len(documents) == 0 {
|
||||
if document == nil || url == "" {
|
||||
return UniformityCalculation{}, nil, "", fiber.NewError(fiber.StatusNotFound, "Uniformity document not found")
|
||||
}
|
||||
|
||||
document := documents[0]
|
||||
url, err := s.DocumentSvc.PresignURL(c.Context(), document, 15*time.Minute)
|
||||
if err != nil {
|
||||
return UniformityCalculation{}, nil, "", err
|
||||
}
|
||||
if url == "" {
|
||||
return UniformityCalculation{}, nil, "", fiber.NewError(fiber.StatusBadRequest, "Uniformity document URL not available")
|
||||
}
|
||||
|
||||
req, err := http.NewRequestWithContext(c.Context(), http.MethodGet, url, nil)
|
||||
if err != nil {
|
||||
return UniformityCalculation{}, nil, "", err
|
||||
@@ -638,7 +630,35 @@ func (s uniformityService) CalculateUniformityFromDocument(c *fiber.Ctx, uniform
|
||||
return UniformityCalculation{}, nil, "", err
|
||||
}
|
||||
|
||||
return calculation, &document, url, nil
|
||||
return calculation, document, url, nil
|
||||
}
|
||||
|
||||
func (s uniformityService) fetchUniformityDocument(ctx context.Context, uniformityID uint, allowMissing bool) (*entity.Document, string, error) {
|
||||
if s.DocumentSvc == nil {
|
||||
return nil, "", fiber.NewError(fiber.StatusInternalServerError, "Document service not available")
|
||||
}
|
||||
|
||||
documents, err := s.DocumentSvc.ListByTarget(ctx, "UNIFORMITY", uint64(uniformityID))
|
||||
if err != nil {
|
||||
return nil, "", err
|
||||
}
|
||||
if len(documents) == 0 {
|
||||
if allowMissing {
|
||||
return nil, "", nil
|
||||
}
|
||||
return nil, "", fiber.NewError(fiber.StatusNotFound, "Uniformity document not found")
|
||||
}
|
||||
|
||||
document := documents[0]
|
||||
url, err := s.DocumentSvc.PresignURL(ctx, document, 15*time.Minute)
|
||||
if err != nil {
|
||||
return nil, "", err
|
||||
}
|
||||
if url == "" {
|
||||
return nil, "", fiber.NewError(fiber.StatusBadRequest, "Uniformity document URL not available")
|
||||
}
|
||||
|
||||
return &document, url, nil
|
||||
}
|
||||
|
||||
func (s *uniformityService) createUniformityApproval(
|
||||
|
||||
Reference in New Issue
Block a user