yangyang
2025-07-14 06c4e59fa35c1b9e74da9cf3d081e78c13d17e20
zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/controller/OutController.java
@@ -2,6 +2,7 @@
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.zy.asrs.wms.asrs.entity.param.StockOutParam;
import com.zy.asrs.framework.common.R;
import com.zy.asrs.framework.exception.CoolException;
import com.zy.asrs.wms.asrs.entity.Order;
@@ -24,6 +25,7 @@
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
@RestController
@@ -93,39 +95,53 @@
            throw new CoolException("波次不能为空");
        }
        //获取出库订单
        List<Long> orderIds = new ArrayList<>();
        List<Order> orders = orderService.list(new LambdaQueryWrapper<Order>().eq(Order::getWaveId, waveId));
        for (Order order : orders) {
            orderIds.add(order.getId());
        }
        //获取订单波次明细
        List<MergePreviewDto> dtos = new ArrayList<>();
        List<WaveDetl> waveDetls = waveDetlService.list(new LambdaQueryWrapper<WaveDetl>().eq(WaveDetl::getWaveId, waveId));
        for (WaveDetl waveDetl : waveDetls) {
            MergePreviewDto dto = new MergePreviewDto();
            dtos.add(dto);
            double anfme = waveDetl.getAnfme() - waveDetl.getWorkQty();
            double anfme = Math.round((waveDetl.getAnfme() - waveDetl.getWorkQty()) * 1000) / 1000.0;
            dto.setMatnr(waveDetl.getMatnr());
            dto.setBatch(waveDetl.getBatch());
            dto.setStatus(0);
            dto.setWorkQty(0.0);
            dto.setAnfme(anfme);
            dto.setOrderIds(orderIds);
            dto.setFieldParams(JSON.parseArray(waveDetl.getFieldParams(), FieldParam.class));
            dto.setFieldParamsEncode(waveDetl.getFieldParams());
        }
        //获取波次明细库位信息
        List<MergePreviewResultDto> resultDtos = outManage.orderOutMergeLocPreview(dtos);
        return R.ok().add(resultDtos);
    }
    @PostMapping("/out/orderOut/merge/wave")
    @OperationLog("波次合并订单出库")
    @OperationLog("生成波次任务")
    @Transactional
    public R orderOutMerge(@RequestBody OrderOutMergeParamDto param) {
        outManage.orderOutMergeWave(param);
        return R.ok();
    }
    @PostMapping("/out/locs/stock")
    @OperationLog("手动出库")
    public R stockOut(@RequestBody StockOutParam param) {
        if (Objects.isNull(param)) {
            throw new CoolException("参数不能为空!!");
        }
        outManage.outLocStock(param);
        return R.ok();
    }
    @PostMapping("/out/wave/generate")
    @OperationLog("生成波次")
    @Transactional