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);
|
}
|
}
|