From 36d9d3f363c4c490a511ed1af124364973d255f3 Mon Sep 17 00:00:00 2001 From: fuzhongyun <15339891972@163.com> Date: Wed, 31 Dec 2025 14:15:43 +0800 Subject: [PATCH] =?UTF-8?q?fix:=201.=E9=99=8D=E4=BD=8E=E5=9B=BE=E7=89=87?= =?UTF-8?q?=E7=94=9F=E6=88=90=E5=80=8D=E7=8E=87=202.=E8=B0=83=E6=95=B4?= =?UTF-8?q?=E6=A8=A1=E6=9D=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../tools/common/image_converter/client.go | 10 +++++++++- .../recharge/statistics_ours_product.go | 15 ++++++++------- internal/server/http.go | 4 +--- internal/server/router/router.go | 8 +------- internal/tools/bbxt/upload.go | 12 ++++++++++-- tmpl/excel_temp/kshj_gt.xlsx | Bin 9942 -> 9953 bytes tmpl/excel_temp/kshj_total.xlsx | Bin 9414 -> 9421 bytes .../recharge_statistics_ours_product.xlsx | Bin 9787 -> 9901 bytes 8 files changed, 29 insertions(+), 20 deletions(-) diff --git a/internal/domain/tools/common/image_converter/client.go b/internal/domain/tools/common/image_converter/client.go index 5eba199..2de57d2 100644 --- a/internal/domain/tools/common/image_converter/client.go +++ b/internal/domain/tools/common/image_converter/client.go @@ -21,7 +21,7 @@ func New(cfg config.ToolConfig) *Client { } // Call 将 Excel 文件转换为图片 -func (c *Client) Call(filename string, fileBytes []byte) ([]byte, error) { +func (c *Client) Call(filename string, fileBytes []byte, scale int) ([]byte, error) { body := &bytes.Buffer{} writer := multipart.NewWriter(body) @@ -33,6 +33,14 @@ func (c *Client) Call(filename string, fileBytes []byte) ([]byte, error) { return nil, err } + // 添加 scale 参数 + if scale <= 0 { + scale = 2 + } + if err = writer.WriteField("scale", fmt.Sprintf("%d", scale)); err != nil { + return nil, err + } + if err = writer.Close(); err != nil { return nil, err } diff --git a/internal/domain/workflow/recharge/statistics_ours_product.go b/internal/domain/workflow/recharge/statistics_ours_product.go index cb89347..ebc33a9 100644 --- a/internal/domain/workflow/recharge/statistics_ours_product.go +++ b/internal/domain/workflow/recharge/statistics_ours_product.go @@ -110,13 +110,13 @@ func (w *statisticsOursProduct) generateExcelAndUpload(ctx context.Context, data excelData := w.convertDataToExcelFormat(data) // 4. 生成 Excel - excelBytes, err := w.toolManager.Common.ExcelGenerator.Call(templatePath, excelData, 2, 2) + excelBytes, err := w.toolManager.Common.ExcelGenerator.Call(templatePath, excelData, 4, 3) if err != nil { return nil, fmt.Errorf("生成 Excel 失败: %v", err) } // 5. Excel 转图片 - picBytes, err := w.toolManager.Common.ImageConverter.Call(fileName+".xlsx", excelBytes) + picBytes, err := w.toolManager.Common.ImageConverter.Call(fileName+".xlsx", excelBytes, 2) if err != nil { return nil, fmt.Errorf("Excel 转图片失败: %v", err) } @@ -143,15 +143,16 @@ func (w *statisticsOursProduct) convertDataToExcelFormat(data []statistics_ours_ for _, item := range data { row := []string{ item.OursProductName, - fmt.Sprintf("%d", item.OursProductId), + // fmt.Sprintf("%d", item.OursProductId), item.Count, - item.TotalPrice, - item.SuccessCount, + // item.TotalPrice, + // item.SuccessCount, item.SuccessPrice, - item.FailCount, - item.FailPrice, + // item.FailCount, + // item.FailPrice, item.Profit, } + result = append(result, row) } return result diff --git a/internal/server/http.go b/internal/server/http.go index 3d0b180..53446c8 100644 --- a/internal/server/http.go +++ b/internal/server/http.go @@ -18,7 +18,6 @@ type HTTPServer struct { callback *services.CallbackService chatHis *services.HistoryService capabilityService *services.CapabilityService - cronService *services.CronService } func NewHTTPServer( @@ -29,11 +28,10 @@ func NewHTTPServer( callback *services.CallbackService, chatHis *services.HistoryService, capabilityService *services.CapabilityService, - cronService *services.CronService, ) *fiber.App { //构建 server app := initRoute() - router.SetupRoutes(app, service, session, task, gateway, callback, chatHis, capabilityService, cronService) + router.SetupRoutes(app, service, session, task, gateway, callback, chatHis, capabilityService) return app } diff --git a/internal/server/router/router.go b/internal/server/router/router.go index 3c33b42..091c85f 100644 --- a/internal/server/router/router.go +++ b/internal/server/router/router.go @@ -21,13 +21,12 @@ type RouterServer struct { gateway *gateway.Gateway chatHist *services.HistoryService capabilityService *services.CapabilityService - cronService *services.CronService } // SetupRoutes 设置路由 func SetupRoutes(app *fiber.App, ChatService *services.ChatService, sessionService *services.SessionService, task *services.TaskService, gateway *gateway.Gateway, callbackService *services.CallbackService, chatHist *services.HistoryService, - capabilityService *services.CapabilityService, cronService *services.CronService, + capabilityService *services.CapabilityService, ) { app.Use(func(c *fiber.Ctx) error { // 设置 CORS 头 @@ -95,11 +94,6 @@ func SetupRoutes(app *fiber.App, ChatService *services.ChatService, sessionServi // 能力 r.Post("/capability/product/ingest", capabilityService.ProductIngest) // 商品数据提取 r.Post("/capability/product/ingest/:thread_id/confirm", capabilityService.ProductIngestConfirm) // 商品数据提取确认 - - // 测试任务 - r.Post("/test/cron", func(c *fiber.Ctx) error { - return cronService.CronReportSend(c.Context()) - }) } func routerSocket(app *fiber.App, chatService *services.ChatService) { diff --git a/internal/tools/bbxt/upload.go b/internal/tools/bbxt/upload.go index a5d0886..c5b6c80 100644 --- a/internal/tools/bbxt/upload.go +++ b/internal/tools/bbxt/upload.go @@ -42,7 +42,7 @@ func (u *Uploader) Run(report *ReportRes) (err error) { return fmt.Errorf("write to bytes failed: %v", err) } - picBytes, err := u.excel2picPy(report.Path, excelBytes.Bytes()) + picBytes, err := u.excel2picPy(report.Path, excelBytes.Bytes(), 2) if err != nil { return fmt.Errorf("excel2picPy failed: %v", err) } @@ -62,7 +62,7 @@ func (u *Uploader) Run(report *ReportRes) (err error) { // --header 'Content-Type: multipart/form-data; boundary=--------------------------952147881043913664015069' \ // --form 'file=@"C:\\Users\\Administrator\\Downloads\\销售同比分析2025-12-29 0-12点.xlsx"' \ // --form 'sheet_name="销售同比分析"' -func (u *Uploader) excel2picPy(templatePath string, excelBytes []byte) ([]byte, error) { +func (u *Uploader) excel2picPy(templatePath string, excelBytes []byte, scale int) ([]byte, error) { // 1. 获取 Sheet Name // 尝试从 excelBytes 解析,如果失败则使用默认值 "Sheet1" sheetName := "Sheet1" @@ -99,6 +99,14 @@ func (u *Uploader) excel2picPy(templatePath string, excelBytes []byte) ([]byte, return nil, fmt.Errorf("write field sheet_name failed: %v", err) } + // 添加 scale 字段 + if scale <= 0 { + scale = 2 + } + if err = writer.WriteField("scale", fmt.Sprintf("%d", scale)); err != nil { + return nil, fmt.Errorf("write field scale failed: %v", err) + } + if err = writer.Close(); err != nil { return nil, fmt.Errorf("close writer failed: %v", err) } diff --git a/tmpl/excel_temp/kshj_gt.xlsx b/tmpl/excel_temp/kshj_gt.xlsx index 2b27bfa07c042ba158bc3229982c9138797ccee1..957d183be77472f2dee09f9b090d878285dbc25d 100755 GIT binary patch delta 4551 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 F0046xBuoGR delta 3696 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 PvSGk{v?M9q|G@tPMQ29H delta 4844 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 XiGM3s<6}qgnXvD;sR*H*f9d}L{4^I$