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 | 118 +++++++++++++++++++++++++++++++++++++++++++++++++++-------
1 files changed, 103 insertions(+), 15 deletions(-)
diff --git a/src/main/java/com/ruoyi/production/controller/ProductionProductMainController.java b/src/main/java/com/ruoyi/production/controller/ProductionProductMainController.java
index 948d6de..2402fc3 100644
--- a/src/main/java/com/ruoyi/production/controller/ProductionProductMainController.java
+++ b/src/main/java/com/ruoyi/production/controller/ProductionProductMainController.java
@@ -1,25 +1,29 @@
package com.ruoyi.production.controller;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.framework.web.domain.R;
-import com.ruoyi.production.dto.ProductProcessRouteItemDto;
-import com.ruoyi.production.dto.ProductionProductMainDto;
+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.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.transaction.annotation.Transactional;
+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.util.Arrays;
+import java.time.LocalDate;
import java.util.List;
-@RequestMapping("productionProductMain")
+@RequestMapping("/productionProductMain")
@RestController
-@Api(value = "鐢熶骇鎶ュ伐")
+@Tag(name = "鐢熶骇鎶ュ伐")
+@AllArgsConstructor
public class ProductionProductMainController {
- @Autowired
private ProductionProductMainService productionProductMainService;
/**
@@ -28,9 +32,21 @@
* @param productionProductMainDto
* @return
*/
- @GetMapping("listPage")
+ @GetMapping("/listPage")
public R page(Page<ProductionProductMainDto> page, ProductionProductMainDto productionProductMainDto) {
return R.ok(productionProductMainService.listPageProductionProductMainDto(page, productionProductMainDto));
+ }
+
+ @GetMapping("/page")
+ @Operation(summary = "鐢熶骇鎶ュ伐鍒嗛〉鏌ヨ")
+ public R pageProductionProductMain(Page<ProductionProductMainDto> page, ProductionProductMainDto productionProductMainDto) {
+ return R.ok(productionProductMainService.pageProductionProductMain(page, productionProductMainDto));
+ }
+
+ @GetMapping("/{id}")
+ @Operation(summary = "鐢熶骇鎶ュ伐璇︽儏")
+ public R getInfo(@PathVariable("id") Long id) {
+ return R.ok(productionProductMainService.getProductionProductMainInfo(id));
}
/**
@@ -38,15 +54,87 @@
* @param productionProductMainDto
* @return
*/
- @PostMapping("addProductMain")
+ @PostMapping("/addProductMain")
+ @PreAuthorize("@ss.hasPermi('productionProductMain:add')")
public R addProductMain(@RequestBody ProductionProductMainDto productionProductMainDto) {
return R.ok(productionProductMainService.addProductMain(productionProductMainDto));
}
- @ApiOperation("鍒犻櫎鎶ュ伐")
+ @PostMapping
+ @Operation(summary = "鏂板鐢熶骇鎶ュ伐")
+ public R add(@RequestBody ProductionProductMainDto productionProductMainDto) {
+ return R.ok(productionProductMainService.saveProductionProductMain(productionProductMainDto));
+ }
+
+ @PutMapping
+ @Operation(summary = "淇敼鐢熶骇鎶ュ伐")
+ public R edit(@RequestBody ProductionProductMainDto productionProductMainDto) {
+ return R.ok(productionProductMainService.saveProductionProductMain(productionProductMainDto));
+ }
+
+ @Operation(summary = "鍒犻櫎鎶ュ伐")
@DeleteMapping("/delete")
- @Transactional(rollbackFor = Exception.class)
public R delete(@RequestBody ProductionProductMainDto productionProductMainDto) {
- return R.ok(productionProductMainService.removeProductMain(productionProductMainDto));
+ return R.ok(productionProductMainService.removeProductMain(productionProductMainDto.getId()));
+ }
+
+ @DeleteMapping("/{id}")
+ @Operation(summary = "鍒犻櫎鐢熶骇鎶ュ伐")
+ public R remove(@PathVariable("id") Long id) {
+ return R.ok(productionProductMainService.removeProductMain(id));
+ }
+
+
+ /**
+ * 瀵煎嚭
+ */
+ @PostMapping("/export")
+ public void export(HttpServletResponse response, ProductionProductMainDto productionProductMainDto) {
+ List<ProductionProductMainDto> list;
+ list = productionProductMainService.listPageProductionProductMainDto(new Page<>(1, -1), productionProductMainDto).getRecords();
+ 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