skyouc
2025-08-09 efa392d963d11000ef22c6778684648042a80ac6
zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/controller/OrderController.java
@@ -1,26 +1,25 @@
package com.zy.asrs.wms.asrs.controller;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.zy.asrs.framework.common.Cools;
import com.zy.asrs.framework.common.R;
import com.zy.asrs.framework.exception.CoolException;
import com.zy.asrs.wms.asrs.entity.MatField;
import com.zy.asrs.wms.asrs.entity.OrderType;
import com.zy.asrs.wms.asrs.entity.*;
import com.zy.asrs.wms.asrs.entity.enums.OrderSettleType;
import com.zy.asrs.wms.asrs.entity.param.CreateOrderParam;
import com.zy.asrs.wms.asrs.entity.param.UpdateOrderParam;
import com.zy.asrs.wms.asrs.entity.template.OrderTemplate;
import com.zy.asrs.wms.asrs.service.MatFieldService;
import com.zy.asrs.wms.asrs.service.OrderTypeService;
import com.zy.asrs.wms.asrs.service.*;
import com.zy.asrs.wms.asrs.service.impl.OrderDetlServiceImpl;
import com.zy.asrs.wms.common.annotation.CacheData;
import com.zy.asrs.wms.common.annotation.OperationLog;
import com.zy.asrs.wms.common.domain.BaseParam;
import com.zy.asrs.wms.common.domain.KeyValVo;
import com.zy.asrs.wms.common.domain.PageParam;
import com.zy.asrs.wms.asrs.entity.Order;
import com.zy.asrs.wms.asrs.service.OrderService;
import com.zy.asrs.wms.system.controller.BaseController;
import com.zy.asrs.wms.utils.ExcelUtil;
import com.zy.asrs.wms.utils.Utils;
@@ -43,6 +42,12 @@
    private OrderTypeService orderTypeService;
    @Autowired
    private MatFieldService matFieldService;
    @Autowired
    private OrderDetlServiceImpl orderDetlService;
    @Autowired
    private CacheSiteService cacheSiteService;
    @Autowired
    private WaveService waveService;
    @PreAuthorize("hasAuthority('asrs:order:list')")
    @PostMapping("/order/page")
@@ -55,16 +60,17 @@
    @PreAuthorize("hasAuthority('asrs:order:list')")
    @PostMapping("/order/in/page")
//    @CacheData(tableName = {"man_order", "man_order_type"})
    public R pageIn(@RequestBody Map<String, Object> map) {
        Map<String, String> order = new HashMap<>();
        if (!Objects.isNull(map.get("orderBy"))) {
            order = JSONObject.parseObject(JSON.toJSONString(map.get("orderBy")), Map.class);
        }
        String condition = map.getOrDefault("condition", "").toString();
        BaseParam baseParam = buildParam(map, BaseParam.class);
        PageParam<Order, BaseParam> pageParam = new PageParam<>(baseParam, Order.class);
//        QueryWrapper<Order> wrapper = pageParam.buildWrapper(true);
        QueryWrapper<Order> wrapper = new QueryWrapper<>();
        QueryWrapper<Order> wrapper = pageParam.ignoreWrapper(true);
        ArrayList<Long> types = new ArrayList<>();
        for (OrderType orderType : orderTypeService.list(new LambdaQueryWrapper<OrderType>().eq(OrderType::getType, 1))) {
        for (OrderType orderType : orderTypeService.list(new LambdaQueryWrapper<OrderType>().in(OrderType::getType, 1))) {
            types.add(orderType.getId());
        }
@@ -89,26 +95,32 @@
            }
        }
        if (!Cools.isEmpty(order)) {
            String fileds = Utils.toSymbolCase(order.get("field"), '_');
            if (order.get("order").equals("asc")) {
                wrapper.orderByAsc(fileds);
            } else {
                wrapper.orderByDesc(fileds);
            }
        } else {
            wrapper.orderByDesc("create_time");
        }
        return R.ok().add(orderService.page(pageParam, wrapper));
    }
    @PreAuthorize("hasAuthority('asrs:order:list')")
    @PostMapping("/order/out/page")
//    @CacheData(tableName = {"man_order", "man_order_type"})
    public R pageOut(@RequestBody Map<String, Object> map) {
        String condition = map.getOrDefault("condition", "").toString();
        BaseParam baseParam = buildParam(map, BaseParam.class);
        PageParam<Order, BaseParam> pageParam = new PageParam<>(baseParam, Order.class);
//        QueryWrapper<Order> wrapper = pageParam.buildWrapper(true);
        QueryWrapper<Order> wrapper = new QueryWrapper<>();
        ArrayList<Long> types = new ArrayList<>();
        for (OrderType orderType : orderTypeService.list(new LambdaQueryWrapper<OrderType>().eq(OrderType::getType, 2))) {
            types.add(orderType.getId());
        }
        wrapper.in("order_type", types);
        if (map.containsKey("orderOut")) {
            wrapper.isNull("wave_id");
        }
@@ -131,22 +143,32 @@
                }
            }
        }
        wrapper.orderByDesc("create_time");
        return R.ok().add(orderService.page(pageParam, wrapper));
    }
    @PreAuthorize("hasAuthority('asrs:order:list')")
    @PostMapping("/order/list")
    @CacheData(tableName = {"man_order"})
    public R list(@RequestBody Map<String, Object> map) {
        return R.ok().add(orderService.list());
    }
    @PreAuthorize("hasAuthority('asrs:order:list')")
    @GetMapping("/order/{id}")
    @CacheData(tableName = {"man_order"})
    public R get(@PathVariable("id") Long id) {
        return R.ok().add(orderService.getById(id));
        Order order = orderService.getById(id);
        List<OrderDetl> detls = orderDetlService.list(new LambdaQueryWrapper<OrderDetl>().eq(OrderDetl::getOrderId, order.getId()));
        if (!detls.isEmpty()) {
            Double sum = detls.stream().mapToDouble(OrderDetl::getAnfme).sum();
            order.setWaitQty(sum);
        }
        if (!Objects.isNull(order.getWaveId())) {
            Wave wave = waveService.getById(order.getWaveId());
            if (!Objects.isNull(wave)) {
                order.setSite(wave.getSite());
            }
        }
        return R.ok().add(order);
    }
    @PreAuthorize("hasAuthority('asrs:order:save')")
@@ -154,7 +176,7 @@
    @PostMapping("/order/save")
    @Transactional
    public R save(@RequestBody CreateOrderParam param) {
        orderService.createOrder(param);
        orderService.createOrder(param, getLoginUserId());
        return R.ok("添加成功");
    }
@@ -165,6 +187,13 @@
    public R update(@RequestBody UpdateOrderParam param) {
        orderService.updateOrder(param);
        return R.ok("修改成功");
    }
    @PreAuthorize("hasAuthority('asrs:order:remove')")
    @OperationLog("完结订单")
    @PostMapping("/order/done/{id}")
    public R orderToDone(@PathVariable Long id) {
        return R.ok().add(orderService.doneOrder(id));
    }
    @PreAuthorize("hasAuthority('asrs:order:remove')")
@@ -277,7 +306,7 @@
            CreateOrderParam orderParam = (CreateOrderParam) entry.getValue();
            orderParams.add(orderParam);
        }
        orderService.createOrder(orderParams);
        orderService.createOrder(orderParams, getLoginUserId());
        return R.ok();
    }