From 1e123568c2f561013f5636e45dc0db30b17a3517 Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期四, 10 九月 2026 16:39:26 +0800
Subject: [PATCH] feat(basic): 添加产品条码功能并完善生产统计报表

---
 src/main/java/com/ruoyi/production/controller/ProductionProductMainController.java |   46 ++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 46 insertions(+), 0 deletions(-)

diff --git a/src/main/java/com/ruoyi/production/controller/ProductionProductMainController.java b/src/main/java/com/ruoyi/production/controller/ProductionProductMainController.java
index 926a59f..2402fc3 100644
--- a/src/main/java/com/ruoyi/production/controller/ProductionProductMainController.java
+++ b/src/main/java/com/ruoyi/production/controller/ProductionProductMainController.java
@@ -4,14 +4,18 @@
 import com.ruoyi.common.utils.poi.ExcelUtil;
 import com.ruoyi.framework.web.domain.R;
 import com.ruoyi.production.bean.dto.ProductionProductMainDto;
+import com.ruoyi.production.bean.vo.DeviceOutputStatVo;
+import com.ruoyi.production.bean.vo.PieceWageSummaryVo;
 import com.ruoyi.production.service.ProductionProductMainService;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.tags.Tag;
 import jakarta.servlet.http.HttpServletResponse;
 import lombok.AllArgsConstructor;
+import org.springframework.format.annotation.DateTimeFormat;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.*;
 
+import java.time.LocalDate;
 import java.util.List;
 
 @RequestMapping("/productionProductMain")
@@ -91,4 +95,46 @@
         ExcelUtil<ProductionProductMainDto> util = new ExcelUtil<ProductionProductMainDto>(ProductionProductMainDto.class);
         util.exportExcel(response, list, "鐢熶骇鎶ュ伐鏁版嵁");
     }
+
+    @GetMapping("/wageSummary")
+    @Operation(summary = "璁′欢宸ヨ祫姹囨�伙紙鎸変汉鍛橈紝璁′欢鍗曚环浼樺厛锛�")
+    public R<List<PieceWageSummaryVo>> wageSummary(
+            @RequestParam(required = false) @DateTimeFormat(pattern = "yyyy-MM-dd") LocalDate startDate,
+            @RequestParam(required = false) @DateTimeFormat(pattern = "yyyy-MM-dd") LocalDate endDate,
+            @RequestParam(required = false) String userName) {
+        return R.ok(productionProductMainService.wageSummary(startDate, endDate, userName));
+    }
+
+    @GetMapping("/wageSummary/export")
+    @Operation(summary = "璁′欢宸ヨ祫姹囨�诲鍑�")
+    public void wageSummaryExport(HttpServletResponse response,
+                                  @RequestParam(required = false) @DateTimeFormat(pattern = "yyyy-MM-dd") LocalDate startDate,
+                                  @RequestParam(required = false) @DateTimeFormat(pattern = "yyyy-MM-dd") LocalDate endDate,
+                                  @RequestParam(required = false) String userName) {
+        List<PieceWageSummaryVo> list = productionProductMainService.wageSummary(startDate, endDate, userName);
+        ExcelUtil<PieceWageSummaryVo> util = new ExcelUtil<>(PieceWageSummaryVo.class);
+        util.exportExcel(response, list, "璁′欢宸ヨ祫姹囨��");
+    }
+
+    @GetMapping("/outputStat")
+    @Operation(summary = "浜ч噺缁熻锛坉imension: device璁惧/operation宸ュ簭/product浜у搧锛�")
+    public R<List<DeviceOutputStatVo>> outputStat(
+            @RequestParam(required = false, defaultValue = "device") String dimension,
+            @RequestParam(required = false) @DateTimeFormat(pattern = "yyyy-MM-dd") LocalDate startDate,
+            @RequestParam(required = false) @DateTimeFormat(pattern = "yyyy-MM-dd") LocalDate endDate,
+            @RequestParam(required = false) Long deviceId) {
+        return R.ok(productionProductMainService.outputStat(dimension, startDate, endDate, deviceId));
+    }
+
+    @GetMapping("/outputStat/export")
+    @Operation(summary = "浜ч噺缁熻瀵煎嚭")
+    public void outputStatExport(HttpServletResponse response,
+                                 @RequestParam(required = false, defaultValue = "device") String dimension,
+                                 @RequestParam(required = false) @DateTimeFormat(pattern = "yyyy-MM-dd") LocalDate startDate,
+                                 @RequestParam(required = false) @DateTimeFormat(pattern = "yyyy-MM-dd") LocalDate endDate,
+                                 @RequestParam(required = false) Long deviceId) {
+        List<DeviceOutputStatVo> list = productionProductMainService.outputStat(dimension, startDate, endDate, deviceId);
+        ExcelUtil<DeviceOutputStatVo> util = new ExcelUtil<>(DeviceOutputStatVo.class);
+        util.exportExcel(response, list, "浜ч噺缁熻");
+    }
 }

--
Gitblit v1.9.3