From ac4341ea6b66ae02427d39d35f41d42d78b2eb2e Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期五, 14 二月 2025 10:08:32 +0800
Subject: [PATCH] #

---
 zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/controller/OutController.java |  117 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 116 insertions(+), 1 deletions(-)

diff --git a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/controller/OutController.java b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/controller/OutController.java
index d3d6558..e8f5c1b 100644
--- a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/controller/OutController.java
+++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/controller/OutController.java
@@ -1,14 +1,29 @@
 package com.zy.asrs.wms.asrs.controller;
 
+import com.alibaba.fastjson.JSON;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.zy.asrs.framework.common.R;
-import com.zy.asrs.wms.asrs.entity.param.OutParam;
+import com.zy.asrs.framework.exception.CoolException;
+import com.zy.asrs.wms.asrs.entity.Order;
+import com.zy.asrs.wms.asrs.entity.WaveDetl;
+import com.zy.asrs.wms.asrs.entity.dto.MergePreviewDto;
+import com.zy.asrs.wms.asrs.entity.dto.MergePreviewResultDto;
+import com.zy.asrs.wms.asrs.entity.dto.OrderOutBatchPreviewDto;
+import com.zy.asrs.wms.asrs.entity.param.*;
 import com.zy.asrs.wms.asrs.manage.OutManage;
+import com.zy.asrs.wms.asrs.service.OrderService;
+import com.zy.asrs.wms.asrs.service.WaveDetlService;
+import com.zy.asrs.wms.common.annotation.OperationLog;
 import com.zy.asrs.wms.system.controller.BaseController;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
+
+import java.util.ArrayList;
+import java.util.List;
 
 
 @RestController
@@ -17,13 +32,113 @@
 
     @Autowired
     private OutManage outManage;
+    @Autowired
+    private OrderService orderService;
+    @Autowired
+    private WaveDetlService waveDetlService;
 
     /**
      * 鍑哄簱
      */
     @PostMapping("/out/start")
+    @OperationLog("鍑哄簱")
+    @Transactional
     public R start(@RequestBody OutParam param) {
         outManage.out(param);
         return R.ok();
     }
+
+    @PostMapping("/out/orderOut/batch/preview")
+    @OperationLog("鎵归噺鍑哄簱棰勮")
+    @Transactional
+    public R orderOutBatchPreview(@RequestBody OrderOutBatchPreviewParam param) {
+        List<OrderOutBatchPreviewDto> previewDtos = outManage.orderOutBatchPreview(param);
+        return R.ok().add(previewDtos);
+    }
+
+    @PostMapping("/out/orderOut/batch")
+    @OperationLog("鎵归噺鍑哄簱")
+    @Transactional
+    public R orderOutBatch(@RequestBody List<OrderOutBatchPreviewDto> param) {
+        outManage.orderOutBatch(param);
+        return R.ok();
+    }
+
+    @PostMapping("/out/orderOut/merge/preview")
+    @OperationLog("棰勮鍚堝苟璁㈠崟")
+    @Transactional
+    public R orderOutMergePreview(@RequestBody OrderOutMergePreviewParam param) {
+        List<MergePreviewDto> dtos = outManage.orderOutMergePreview(param);
+        return R.ok().add(dtos);
+    }
+
+    @PostMapping("/out/orderOut/merge/loc/preview")
+    @OperationLog("棰勮鍚堝苟璁㈠崟鍑哄簱")
+    @Transactional
+    public R orderOutMergeLocPreview(@RequestBody List<MergePreviewDto> param) {
+        List<MergePreviewResultDto> dtos = outManage.orderOutMergeLocPreview(param);
+        return R.ok().add(dtos);
+    }
+
+    @PostMapping("/out/orderOut/wave/preview")
+    @OperationLog("棰勮娉㈡鍑哄簱")
+    @Transactional
+    public R orderOutWavePreview(@RequestBody OrderOutWavePreviewParam param) {
+        if (param == null) {
+            throw new CoolException("鍙傛暟涓嶈兘涓虹┖");
+        }
+
+        Long waveId = param.getWaveId();
+        if (waveId == null) {
+            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();
+            dto.setMatnr(waveDetl.getMatnr());
+            dto.setBatch(waveDetl.getBatch());
+            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("娉㈡鍚堝苟璁㈠崟鍑哄簱")
+    @Transactional
+    public R orderOutMerge(@RequestBody OrderOutMergeParamDto param) {
+        outManage.orderOutMergeWave(param);
+        return R.ok();
+    }
+
+    @PostMapping("/out/wave/generate")
+    @OperationLog("鐢熸垚娉㈡")
+    @Transactional
+    public R generateWave(@RequestBody GenerateWaveParam param) {
+        outManage.generateWave(param);
+        return R.ok();
+    }
+
+    @PostMapping("/out/wave/cancel")
+    @OperationLog("鍙栨秷娉㈡")
+    @Transactional
+    public R cancelWave(@RequestBody List<Long> waveIds) {
+        outManage.cancelWave(waveIds);
+        return R.ok();
+    }
 }

--
Gitblit v1.9.1