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 | 142 +++++++++++++++++++++++++++++++++++++++-------- 1 files changed, 117 insertions(+), 25 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 a2b6d08..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,52 +1,144 @@ 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.controller.req.OutReq; -import com.zy.asrs.wms.asrs.entity.LocDetl; +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.Map; -/** - * 杩欓噷澶勭悊鎵�鏈夌殑鍑哄簱娴佺▼鐨勬帴鍙� - */ + @RestController @RequestMapping("/api") public class OutController extends BaseController { @Autowired private OutManage outManage; - - - /** - * 鑾峰彇搴撳瓨 - * - * @param map - * @return - */ - @PostMapping("/out/getStock") - public R page(@RequestBody Map<String, Object> map) { - List<LocDetl> suitableMat = outManage.getSuitableMat(map); - return R.ok(suitableMat); - } - + @Autowired + private OrderService orderService; + @Autowired + private WaveDetlService waveDetlService; /** * 鍑哄簱 - * - * @param outReq 鍑哄簱鍒楄〃 - * @return */ @PostMapping("/out/start") - public R page(@RequestBody OutReq outReq) { - outManage.out(outReq); + @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