From d0226747665355acecd5b4f2b5c0beb020586729 Mon Sep 17 00:00:00 2001
From: skyouc
Date: 星期五, 17 一月 2025 15:37:32 +0800
Subject: [PATCH] # 23. PDA拣货单据,勾选或点击确认按钮后,完成当前单据 (已完成) 24. PDA出库成功后,界面数据重置,避免重复操作  (已修复) 25. PDA接口请求,添加一个Loading遮档  (已修复) 27. 非平库单据,在平库可做入库操作  (已修复) 28. 平库已组拖数据,组拖完成后依然可组拖  (已修复) 29. 平库入库后,订单明细没有添加(已修复) 30. 平库入库后,单据类型没有修改(已修复) 31. 没有绑定播种位,不能进行播种,前后端都需加判定(已修复) 33. 平库入库未修改入库已完成数量(已修复) 34. cacheSite缓存站点逻辑需重新梳理,入库生成波次时(已完成) 35. PDA添加发货确认,默认全选 (已修复) 36. 大屏获取任务时,是由容器到达的拖盘码确认通知 (已修复) 37. 拣货单序号不显示 问题修复 (已修复) 42. pda发货确认,添加不同颜色区分是否全部完成拣货,绿色全部拣货完成,红色完成部分拣货(已修复) 43. CTU入库完成后,订单明细没有删除,执行中数量清空(已修复) 44. 平库入库完成后,历史档明细完成数量没有更新 (已修复) 45. PDA料号不显示  (已修复) 46. 发货完成后,波次管理数据未加入历史档 (已修复)

---
 zy-asrs-wms/src/main/java/com/zy/asrs/wms/asrs/controller/OutController.java |  227 ++++++++++++++++++++++++++++++++++++--------------------
 1 files changed, 147 insertions(+), 80 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..e407211 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,147 @@
-package com.zy.asrs.wms.asrs.controller;
-
-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.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;
-
-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);
-    }
-
-    /**
-     * 鍑哄簱
-     * 鍑哄簱鍙渶瑕佷竴涓帴鍙o紝鍙鍑哄埌鍝釜绔欑偣锛屽簱浣嶅嚭澶氬皯鏁伴噺锛屽嵆OutReq瀵硅薄
-     *
-     * @param outReq 鍑哄簱鍒楄〃
-     * @return
-     */
-    @PostMapping("/out/start")
-    public R start(@RequestBody OutReq outReq) {
-        outManage.out(outReq);
-        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.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;
+
+
+@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 = waveDetl.getAnfme() - waveDetl.getWorkQty();
+            dto.setMatnr(waveDetl.getMatnr());
+            dto.setBatch(waveDetl.getBatch());
+            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/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