chenlu
2024-05-22 b4d9093f066e750c3f623d5eb2e130532bb2fba6
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
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<String, Object> 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<String> 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获取订单信息")
    @SaCheckPermission("selectOrder.edit")
    @PostMapping("/getOrderById/{id}")
    public Result getOrderById(@PathVariable String id)  {
        return  Result.seccess(orderService.getOrderById(id));
    }
    @ApiOperation("查询订单工艺")
    @SaCheckPermission("updateOrderCraft.search")
    @PostMapping("/getOrderCraftById/{id}")
    public Result getOrderCraftById(@PathVariable String id)  {
        return  Result.seccess(orderService.getOrderCraftById(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<OrderGlassDetail> orderGlassDetails)  {
        return  Result.seccess(orderService.reviewProcessById(id,status,orderGlassDetails));
    }
 
    @ApiOperation("更新订单金额单价")
    @SaCheckPermission("createOrder.amountReset")
    @PostMapping("/updateOrderMoney")
    public Result updateOrderMoney(@RequestBody Map<String,Object> 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<String> 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<String> selectDate,
                                 @RequestBody OrderDetail orderDetail)  {
        return  Result.seccess(orderService.getOrderProductSummary(pageNum,pageSize,selectDate,orderDetail));
 
    }
    @ApiOperation("订单报表导出")
    @PostMapping("/exportOrderReport")
    public void exportOrderReport(HttpServletResponse response, @RequestBody List<LocalDate> dates) throws IOException, IllegalAccessException, InstantiationException {
 
        //参数:相应的数据,实体类信息,相应的方法(数据获取),生成的excel名字
        DownExcel.download(response, OrderDTO.class, orderService.exportOrderReport(dates),"orderReport");
    }
}