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 | 170 +++++++++++++++++++++++++++++++++++++++----------------- 1 files changed, 117 insertions(+), 53 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 26fbee4..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,80 +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.IdReq; -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; -/** - * 杩欓噷澶勭悊鎵�鏈夌殑鍑哄簱娴佺▼鐨勬帴鍙� - * 鍑哄簱閫昏緫涓昏鍦ㄦ煡璇㈠尮閰嶇殑搴撳瓨淇℃伅锛� - * 1. 鑾峰彇搴撳瓨锛屾牴鎹潯浠讹紙鐏垫椿閰嶇疆锛夋煡璇㈠簱瀛橈紝杩斿洖缁欏墠绔緵鐢ㄦ埛閫夋嫨锛堣繑鍥炴椂锛屾瘡鏉″簱瀛樿褰曡鎼哄甫loc_detl琛ㄧ殑涓婚敭id锛岃繖鏍风珛鍗冲嚭搴擄紝鍙浼犻�抣oc_detl琛╥d+鏁伴噺锛屽氨鍙互鏄庣‘鍑哄簱鍑哄摢浜涙暟鎹簡锛屼笉闇�瑕佷簩娆″尮閰嶏級 - * 2. 鍑哄簱锛堝彧闇�瑕佷竴涓帴鍙o紙鍗�/out/start鎺ュ彛锛夛紝鍙搴撲綅璇︽儏鐨刬d鍜屽嚭搴撴暟閲忎互鍙婂嚭搴撳埌鍝釜绔欑偣锛夛紙浠ュ強娑夊強鍒扮Щ搴擄級 - */ + @RestController @RequestMapping("/api") public class OutController extends BaseController { @Autowired private OutManage outManage; - - - /** - * 鑾峰彇搴撳瓨 - * - * @param map - * @return - */ - @PostMapping("/out/getStock") - public R getStock(@RequestBody Map<String, Object> map) { - List<LocDetl> suitableMat = outManage.listSuitableMat(map); - return R.ok(suitableMat); - } - - /** - * 鑾峰彇搴撳瓨 - * - * @param order - * @return - */ - @PostMapping("/out/getStockByOrder") - public R getStockByOrder(@RequestBody IdReq order) { - List<LocDetl> suitableMat = outManage.listSuitableMatByOrder(order.getId()); - return R.ok(suitableMat); - } - - /** - * 鑾峰彇搴撳瓨 - * - * @param wave - * @return - */ - @PostMapping("/out/getStockByWave") - public R getStockByWave(@RequestBody IdReq wave) { - List<LocDetl> suitableMat = outManage.listSuitableMatByWave(wave.getId()); - return R.ok(suitableMat); - } + @Autowired + private OrderService orderService; + @Autowired + private WaveDetlService waveDetlService; /** * 鍑哄簱 - * 鍑哄簱鍙渶瑕佷竴涓帴鍙o紝鍙鍑哄埌鍝釜绔欑偣锛屽簱浣嶅嚭澶氬皯鏁伴噺锛屽嵆OutReq瀵硅薄 - * - * @param outReq 鍑哄簱鍒楄〃 - * @return */ @PostMapping("/out/start") - public R start(@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