package com.example.erp.controller.sd; import cn.dev33.satoken.annotation.SaCheckPermission; import com.example.erp.common.Constants; import com.example.erp.common.Result; import com.example.erp.dto.sd.OrderDTO; import com.example.erp.entity.sd.Order; import com.example.erp.entity.sd.OrderDetail; import com.example.erp.entity.sd.OrderGlassDetail; import com.example.erp.exception.ServiceException; import com.example.erp.service.sd.OrderService; import com.example.erp.tools.DownExcel; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.time.LocalDate; import java.util.List; import java.util.Map; @RestController @RequestMapping("/order") @Api(value="订单controller",tags={"订单操作接口"}) public class OrderController { private final OrderService orderService; public OrderController(OrderService orderService) { this.orderService = orderService; } @ApiOperation("订单保存") @PostMapping("/saveOrder") @SaCheckPermission("createOrder.add") public Result saveOrder(@RequestBody Map orderMap) throws Exception { if(orderService.saveOrder(orderMap)) { return Result.seccess(true); }else{ throw new ServiceException(Constants.Code_500,Constants.Code_msg); } } @ApiOperation("订单分页筛选查询") @SaCheckPermission("selectOrder.search") @PostMapping("/getOrderList/{pageNum}/{pageSize}/{orderType}/{selectDate}") public Result getOrderList(@PathVariable Integer pageNum, @PathVariable Integer pageSize,@PathVariable Integer orderType, @PathVariable List selectDate, @RequestBody Order order) { return Result.seccess(orderService.getOrderList(pageNum, pageSize, selectDate, order,orderType)); } @ApiOperation("删除订单") @SaCheckPermission("selectOrder.delete") @PostMapping("/deleteOrder/{id}") public Result deleteOrder(@PathVariable String id) { return Result.seccess(orderService.deleteOrder(id)); } @ApiOperation("订单作废") @SaCheckPermission("createOrder.cancel") @PostMapping("/cancelOrder/{id}") public Result cancelOrder(@PathVariable String id) { return Result.seccess(orderService.cancelOrder(id)); } @ApiOperation("根据id获取订单信息") @PostMapping("/getOrderById/{id}") public Result getOrderById(@PathVariable String id) { return Result.seccess(orderService.getOrderById(id)); } @ApiOperation("根据id获取订单明细信息") @SaCheckPermission("selectOrder.edit") @PostMapping("/getOrderDetailById/{id}") public Result getOrderDetailById(@PathVariable String id) { return Result.seccess(orderService.getOrderDetailById(id)); } @ApiOperation("查询订单工艺") @SaCheckPermission("updateOrderCraft.search") @PostMapping("/getOrderCraftById/{id}") public Result getOrderCraftById(@PathVariable String id) { return Result.seccess(orderService.getOrderCraftById(id)); } @PostMapping("/getOrderCraftDetailById/{id}") public Result getOrderCraftDetailById(@PathVariable String id) { return Result.seccess(orderService.getOrderCraftDetailById(id)); } @ApiOperation("审核订单") @SaCheckPermission("createOrder.review") @PostMapping("/reviewOrderById/{id}/{status}") public Result reviewOrderById(@PathVariable String id,@PathVariable Integer status) { return Result.seccess(orderService.reviewOrderById(id,status)); } @ApiOperation("审核工艺") @SaCheckPermission("updateOrderCraft.review") @PostMapping("/reviewProcessById/{id}/{status}") public Result reviewProcessById(@PathVariable String id,@PathVariable Integer status,@RequestBody List orderGlassDetails) { return Result.seccess(orderService.reviewProcessById(id,status,orderGlassDetails)); } @ApiOperation("更新订单金额单价") @SaCheckPermission("createOrder.amountReset") @PostMapping("/updateOrderMoney") public Result updateOrderMoney(@RequestBody Map map) { return Result.seccess(orderService.updateOrderMoney(map)); } @SaCheckPermission("orderReport.search") @ApiOperation("查询订单报表") @PostMapping("/getOrderReport/{pageNum}/{pageSize}/{selectDate}") public Result getOrderReport(@PathVariable Integer pageNum, @PathVariable Integer pageSize, @PathVariable List selectDate, @RequestBody OrderDetail orderDetail) { return Result.seccess(orderService.getOrderReport(pageNum,pageSize,selectDate,orderDetail)); } //@SaCheckPermission("orderProductSummary.search") @ApiOperation("查询订单产品汇总报表") @PostMapping("/getOrderProductSummary/{pageNum}/{pageSize}/{selectDate}") public Result getOrderProductSummary(@PathVariable Integer pageNum, @PathVariable Integer pageSize, @PathVariable List selectDate, @RequestBody OrderDetail orderDetail) { return Result.seccess(orderService.getOrderProductSummary(pageNum,pageSize,selectDate,orderDetail)); } @ApiOperation("订单报表导出") @PostMapping("/exportOrderReport") public void exportOrderReport(HttpServletResponse response, @RequestBody List dates) throws IOException, IllegalAccessException, InstantiationException { //参数:相应的数据,实体类信息,相应的方法(数据获取),生成的excel名字 DownExcel.download(response, OrderDTO.class, orderService.exportOrderReport(dates),"orderReport"); } @ApiOperation("订单产品汇总报表导出") @PostMapping("/exportOrderProductSummary") public void exportOrderProductSummary(HttpServletResponse response, @RequestBody List dates) throws IOException, IllegalAccessException, InstantiationException { //参数:相应的数据,实体类信息,相应的方法(数据获取),生成的excel名字 DownExcel.download(response, OrderDTO.class, orderService.exportOrderProductSummary(dates),"orderReport"); } @ApiOperation("订单小片标签") @PostMapping("/getOrderProductDetailTag/{orderId}") public Result getOrderProductDetailTag(@PathVariable String orderId) { return Result.seccess(orderService.getOrderProductDetailTag(orderId)); } }