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<ProductOrderDto> 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<ProductOrderDto> util = new ExcelUtil<>(ProductOrderDto.class);
|
util.exportExcel(response, list, "生产订单数据");
|
}
|
|
@ApiOperation("查询生产订单对应的BOM")
|
@GetMapping("/listProcessBom")
|
public R listProcessBom(Long orderId) {
|
return R.ok(productOrderService.listProcessBom(orderId));
|
}
|
|
|
}
|