From c6c9b7d3baa822765768c110304d27623f946286 Mon Sep 17 00:00:00 2001
From: pjb <123456>
Date: 星期二, 15 七月 2025 14:29:09 +0800
Subject: [PATCH] `1`
---
zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/controller/OutController.java | 189 ++++++++++++++++++++++++++++++++++++++++-------
1 files changed, 160 insertions(+), 29 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..3c19a34 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,29 +1,160 @@
-package com.zy.asrs.wms.asrs.controller;
-
-import com.zy.asrs.framework.common.R;
-import com.zy.asrs.wms.asrs.entity.param.OutParam;
-import com.zy.asrs.wms.asrs.manage.OutManage;
-import com.zy.asrs.wms.system.controller.BaseController;
-import org.springframework.beans.factory.annotation.Autowired;
-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;
-
-
-@RestController
-@RequestMapping("/api")
-public class OutController extends BaseController {
-
- @Autowired
- private OutManage outManage;
-
- /**
- * 鍑哄簱
- */
- @PostMapping("/out/start")
- public R start(@RequestBody OutParam param) {
- outManage.out(param);
- return R.ok();
- }
-}
+package com.zy.asrs.wms.asrs.controller;
+
+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;
+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;
+import java.util.Objects;
+
+
+@RestController
+@RequestMapping("/api")
+public class OutController extends BaseController {
+
+ @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 = 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("鐢熸垚娉㈡浠诲姟")
+ @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
+ 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