From 8e4456bfa6dc84a1c37c13ee515fa9d6347cc480 Mon Sep 17 00:00:00 2001
From: liding <756868258@qq.com>
Date: 星期四, 23 四月 2026 16:27:45 +0800
Subject: [PATCH] fix:1.生产计划 2.生产订单

---
 src/main/java/com/ruoyi/production/controller/ProductionOrderController.java |   84 ++++++++++++++++++++++++++++++++++++++----
 1 files changed, 76 insertions(+), 8 deletions(-)

diff --git a/src/main/java/com/ruoyi/production/controller/ProductionOrderController.java b/src/main/java/com/ruoyi/production/controller/ProductionOrderController.java
index 00dcabe..5421995 100644
--- a/src/main/java/com/ruoyi/production/controller/ProductionOrderController.java
+++ b/src/main/java/com/ruoyi/production/controller/ProductionOrderController.java
@@ -1,18 +1,86 @@
 package com.ruoyi.production.controller;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.framework.web.domain.R;
+import com.ruoyi.production.bean.dto.ProductionOrderDto;
+import com.ruoyi.production.bean.vo.ProductionOrderVo;
+import com.ruoyi.production.pojo.ProductionOrder;
+import com.ruoyi.production.service.ProductionOrderService;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.media.Content;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.RequiredArgsConstructor;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
-/**
- * <p>
- * 鐢熶骇璁㈠崟琛� 鍓嶇鎺у埗鍣�
- * </p>
- *
- * @author 鑺杞欢锛堟睙鑻忥級鏈夐檺鍏徃
- * @since 2026-04-21 03:55:52
- */
+import java.util.List;
+
 @RestController
 @RequestMapping("/productionOrder")
+@Tag(name = "鐢熶骇璁㈠崟")
+@RequiredArgsConstructor
 public class ProductionOrderController {
 
+    private final ProductionOrderService productionOrderService;
+
+    @GetMapping("/page")
+    @Operation(summary = "鍒嗛〉鏌ヨ")
+    public R<IPage<ProductionOrderVo>> page(ProductionOrderDto dto, Page<ProductionOrderDto> page) {
+        return R.ok(productionOrderService.pageProductionOrder(page, dto));
+    }
+
+    @GetMapping("/list")
+    @Operation(summary = "鐢熶骇璁㈠崟鍒楄〃")
+    public R<List<ProductionOrderVo>> list(ProductionOrderDto dto) {
+        return R.ok(productionOrderService.listProductionOrder(dto));
+    }
+
+    @GetMapping("/{id}")
+    @Operation(summary = "鐢熶骇璁㈠崟璇︽儏")
+    public R<ProductionOrderVo> getInfo(@PathVariable("id") Long id) {
+        return R.ok(productionOrderService.getProductionOrderInfo(id));
+    }
+
+    @PostMapping
+    @Operation(
+            summary = "鏂板鐢熶骇璁㈠崟",
+            description = "鏂板涓嬪崟鍙敮鎸佷袱绉嶆柟寮忥細1. 鐢熶骇璁″垝鐢熸垚锛屼紶 productionPlanIds锛岀郴缁熻嚜鍔ㄦ眹鎬昏鍒掑緱鍒颁骇鍝佽鏍煎拰鏁伴噺锛�"
+                    + "2. 鎵嬪姩鏂板锛屽繀椤讳紶 productModelId 鍜� quantity銆�"
+                    + "technologyRoutingId 涓虹┖鏃朵細鑷姩鍖归厤璇ヤ骇鍝佽鏍兼渶鏂板伐鑹鸿矾绾匡紝quantity 鏈�缁堝繀椤诲ぇ浜� 0銆�"
+    )
+    @io.swagger.v3.oas.annotations.parameters.RequestBody(
+            required = true,
+            description = "鍓嶇鍙嬪ソ鎻愮ず锛氬鏋滄槸鐢熶骇璁″垝鐢熸垚锛岃浼� productionPlanIds锛�"
+                    + "濡傛灉鏄墜鍔ㄦ柊澧烇紝璇疯嚦灏戝~鍐� productModelId銆乹uantity锛屼笖 quantity 蹇呴』澶т簬 0銆�",
+            content = @Content(schema = @Schema(implementation = ProductionOrder.class))
+    )
+    public R<Boolean> add(@RequestBody ProductionOrder productionOrder) {
+        return R.ok(productionOrderService.saveProductionOrder(productionOrder));
+    }
+
+    @PutMapping
+    @Operation(summary = "淇敼鐢熶骇璁㈠崟")
+    public R<Boolean> edit(@RequestBody ProductionOrder productionOrder) {
+        return R.ok(productionOrderService.saveProductionOrder(productionOrder));
+    }
+
+    @PostMapping("/syncSnapshot/{id}")
+    @Operation(summary = "鍚屾鐢熶骇璁㈠崟宸ヨ壓/BOM蹇収")
+    public R<Integer> syncSnapshot(@PathVariable("id") Long id) {
+        return R.ok(productionOrderService.syncProductionOrderSnapshot(id));
+    }
+
+    @DeleteMapping("/delete")
+    @Operation(summary = "鍒犻櫎鐢熶骇璁㈠崟")
+    public R<Boolean> remove(@RequestBody List<Long> ids) {
+        return R.ok(productionOrderService.removeProductionOrder(ids));
+    }
 }

--
Gitblit v1.9.3