2 天以前 684e4306a08feeae188070f264148e6765da8dcf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
package com.ruoyi.outsourcing.controller;
 
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.framework.aspectj.lang.annotation.Log;
import com.ruoyi.framework.aspectj.lang.enums.BusinessType;
import com.ruoyi.framework.web.controller.BaseController;
import com.ruoyi.framework.web.domain.AjaxResult;
import com.ruoyi.framework.web.page.TableDataInfo;
import com.ruoyi.outsourcing.dto.OutsourcingOrderDto;
import com.ruoyi.outsourcing.pojo.OutsourcingOrder;
import com.ruoyi.outsourcing.service.IOutsourcingOrderService;
import com.ruoyi.stock.dto.StockInventoryDto;
import com.ruoyi.stock.service.StockInventoryService;
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.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
 
import java.util.List;
 
/**
 * 委外订单 Controller
 */
@RestController
@RequestMapping("/outsourcing/order")
@AllArgsConstructor
@Tag(name = "委外订单")
public class OutsourcingOrderController extends BaseController {
 
    private final IOutsourcingOrderService outsourcingOrderService;
    private final StockInventoryService stockInventoryService;
 
    /**
     * 委外订单列表
     */
    @Operation(summary = "委外订单列表")
    @GetMapping("/list")
    public TableDataInfo list(OutsourcingOrderDto dto) {
        startPage();
        List<OutsourcingOrder> list = outsourcingOrderService.selectOrderList(dto);
        return getDataTable(list);
    }
 
    /**
     * 委外订单详情(含产品明细)
     */
    @Operation(summary = "委外订单详情")
    @GetMapping("/getById")
    public AjaxResult getById(@RequestParam Long id) {
        return AjaxResult.success(outsourcingOrderService.getDetail(id));
    }
 
    /**
     * 新增委外订单(草稿)
     */
    @Operation(summary = "新增委外订单")
    @Log(title = "委外订单", businessType = BusinessType.INSERT)
    @PostMapping("/add")
    public AjaxResult add(@RequestBody OutsourcingOrderDto dto) {
        return AjaxResult.success(outsourcingOrderService.saveOrder(dto));
    }
 
    /**
     * 修改委外订单,仅草稿状态允许
     */
    @Operation(summary = "修改委外订单")
    @Log(title = "委外订单", businessType = BusinessType.UPDATE)
    @PostMapping("/edit")
    public AjaxResult edit(@RequestBody OutsourcingOrderDto dto) {
        return toAjax(outsourcingOrderService.updateOrder(dto));
    }
 
    /**
     * 删除委外订单,仅草稿状态允许
     */
    @Operation(summary = "删除委外订单")
    @Log(title = "委外订单", businessType = BusinessType.DELETE)
    @DeleteMapping("/delete")
    public AjaxResult delete(@RequestBody Long[] ids) {
        return toAjax(outsourcingOrderService.deleteOrders(ids == null ? List.of() : List.of(ids)));
    }
 
    /**
     * 提交委外订单:草稿 -> 已确认
     */
    @Operation(summary = "提交委外订单")
    @Log(title = "委外订单提交", businessType = BusinessType.OTHER)
    @PostMapping("/submit")
    public AjaxResult submit(@RequestParam Long id) {
        return toAjax(outsourcingOrderService.submit(id));
    }
 
    /**
     * 完成委外订单:已确认 -> 已完成
     */
    @Operation(summary = "完成委外订单")
    @Log(title = "委外订单完成", businessType = BusinessType.OTHER)
    @PostMapping("/complete")
    public AjaxResult complete(@RequestParam Long id) {
        return toAjax(outsourcingOrderService.complete(id));
    }
 
    /**
     * 作废委外订单:草稿/已确认 -> 已作废
     */
    @Operation(summary = "作废委外订单")
    @Log(title = "委外订单作废", businessType = BusinessType.OTHER)
    @PostMapping("/cancel")
    public AjaxResult cancel(@RequestParam Long id,
                             @RequestParam(required = false) String cancelReason) {
        return toAjax(outsourcingOrderService.cancel(id, cancelReason));
    }
 
    /**
     * 委外订单导出
     */
    @Operation(summary = "委外订单导出")
    @Log(title = "委外订单", businessType = BusinessType.EXPORT)
    @PostMapping("/export")
    public void export(HttpServletResponse response, OutsourcingOrderDto dto) {
        outsourcingOrderService.exportOrders(response, dto);
    }
 
    /**
     * 报废品选料分页(合格库存,只读,不占用、不回写库存)
     */
    @Operation(summary = "报废品选料分页")
    @GetMapping("/scrapStockPage")
    public AjaxResult scrapStockPage(Page page, StockInventoryDto dto) {
        IPage<StockInventoryDto> result = stockInventoryService.pageScrapStock(page, dto);
        return AjaxResult.success(result);
    }
}