package com.ruoyi.production.controller; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.basic.pojo.Customer; import com.ruoyi.common.utils.poi.ExcelUtil; import com.ruoyi.framework.aspectj.lang.annotation.Log; import com.ruoyi.framework.aspectj.lang.enums.BusinessType; import com.ruoyi.framework.web.domain.R; import com.ruoyi.production.dto.ProductOrderDto; import com.ruoyi.production.pojo.ProcessRoute; import com.ruoyi.production.pojo.ProductOrder; import com.ruoyi.production.service.ProductOrderService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletResponse; import java.math.BigDecimal; import java.util.List; @RequestMapping("productOrder") @RestController @Api(tags = "生产订单") public class ProductOrderController { @Autowired private ProductOrderService productOrderService; @ApiOperation("分页查询") @GetMapping("page") public R page(ProductOrderDto productOrder, Page page) { return R.ok(productOrderService.pageProductOrder(page, productOrder)); } @ApiOperation("绑定工艺路线") @PostMapping("/bindingRoute") public R bindingRoute(@RequestBody ProductOrder productOrder) { return R.ok(productOrderService.bindingRoute(productOrder)); } @ApiOperation("查询规格型号对应的工艺路线") @GetMapping("/listProcessRoute") public R listProcessRoute(Long productModelId) { return R.ok(productOrderService.listProcessRoute(productModelId)); } /** * 导出生产订单 */ @Log(title = "生产订单", businessType = BusinessType.EXPORT) @PostMapping("/export") public void export(HttpServletResponse response, ProductOrderDto productOrderDto) { List list = productOrderService.pageProductOrder(new Page<>(1, -1), productOrderDto).getRecords(); if (list != null && !list.isEmpty()) { list.forEach(item -> { // 判空 if (item.getQuantity() == null || item.getCompleteQuantity() == null) { item.setCompletionStatus(BigDecimal.ZERO); return; } // 判零 if (item.getQuantity().compareTo(BigDecimal.ZERO) == 0) { item.setCompletionStatus(BigDecimal.ZERO); return; } BigDecimal progress = item.getCompleteQuantity() .divide(item.getQuantity(), 4, BigDecimal.ROUND_HALF_UP) .multiply(new BigDecimal(100)) .setScale(2, BigDecimal.ROUND_HALF_UP); item.setCompletionStatus(progress); }); } ExcelUtil util = new ExcelUtil<>(ProductOrderDto.class); util.exportExcel(response, list, "生产订单数据"); } @ApiOperation("查询生产订单对应的BOM") @GetMapping("/listProcessBom") public R listProcessBom(Long orderId) { return R.ok(productOrderService.listProcessBom(orderId)); } }