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