From 48b875f66aa0b9346b698e600f03361e972028e8 Mon Sep 17 00:00:00 2001
From: skyouc
Date: 星期四, 19 六月 2025 18:33:22 +0800
Subject: [PATCH] 波次出库任务失败

---
 rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/OutStockController.java |   79 +++++++++++++++++++++++++++++++++++----
 1 files changed, 71 insertions(+), 8 deletions(-)

diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/OutStockController.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/OutStockController.java
index 9ee7129..8ff8e5d 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/OutStockController.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/OutStockController.java
@@ -8,8 +8,12 @@
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.vincent.rsf.framework.common.Cools;
 import com.vincent.rsf.framework.common.R;
+import com.vincent.rsf.framework.exception.CoolException;
+import com.vincent.rsf.server.manager.controller.params.GenWaveParams;
 import com.vincent.rsf.server.manager.controller.params.OrderOutTaskParam;
 import com.vincent.rsf.server.manager.controller.params.OutStockToTaskParams;
+import com.vincent.rsf.server.manager.entity.DeliveryItem;
+import com.vincent.rsf.server.manager.entity.excel.OutStockTemplate;
 import com.vincent.rsf.server.manager.enums.OrderType;
 import com.vincent.rsf.server.manager.enums.OrderWorkType;
 import com.vincent.rsf.server.common.annotation.OperationLog;
@@ -42,7 +46,6 @@
 @RestController
 @Api(tags = "鍑哄簱鍗曟嵁")
 public class OutStockController extends BaseController {
-
     Logger logger = LoggerFactory.getLogger(OutStockController.class);
 
     @Autowired
@@ -53,6 +56,17 @@
     @PreAuthorize("hasAuthority('manager:outStock:list')")
     @PostMapping("/outStock/page")
     public R page(@RequestBody Map<String, Object> map) {
+        BaseParam baseParam = buildParam(map, BaseParam.class);
+        PageParam<AsnOrder, BaseParam> pageParam = new PageParam<>(baseParam, AsnOrder.class);
+        QueryWrapper<AsnOrder> queryWrapper = pageParam.buildWrapper(true);
+        List<String> list = Arrays.asList(OrderType.ORDER_OUT.type);
+        queryWrapper.in("type", list);
+        return R.ok().add(outStockService.page(pageParam, queryWrapper));
+    }
+
+    @PreAuthorize("hasAuthority('manager:outStock:list')")
+    @PostMapping("/outStock/dialog/page")
+    public R dialogPage(@RequestBody Map<String, Object> map) {
         BaseParam baseParam = buildParam(map, BaseParam.class);
         PageParam<AsnOrder, BaseParam> pageParam = new PageParam<>(baseParam, AsnOrder.class);
         QueryWrapper<AsnOrder> queryWrapper = pageParam.buildWrapper(true);
@@ -154,6 +168,21 @@
         return outStockService.cancelOutOrder(id);
     }
 
+    @PreAuthorize("hasAuthority('manager:outStock:update')")
+    @ApiOperation("鍒犻櫎宸茬敓鎴愭槑缁�")
+    @GetMapping("/outStock/items/cancel/{ids}")
+    public R cancel(@PathVariable Long[] ids) {
+        List<Long> list = Arrays.asList(ids);
+        if (list.isEmpty()) {
+            return R.error("鍙傛暟涓嶈兘涓虹┖锛侊紒");
+        }
+        List<AsnOrderItem> orderItems = outStockItemService.list(new LambdaQueryWrapper<AsnOrderItem>().in(AsnOrderItem::getId, list));
+        if (orderItems.isEmpty()) {
+            throw new CoolException("鍗曟嵁鏄庣粏涓嶅瓨鍦紒锛�");
+        }
+        return outStockService.cancelOutOrderByItems(orderItems);
+    }
+
 
     @PreAuthorize("hasAuthority('manager:outStock:list')")
     @PostMapping("/outStock/export")
@@ -204,19 +233,18 @@
         if (Objects.isNull(params.get("ids"))) {
             return R.error("鍙傛暟涓嶈兘涓虹┖锛侊紒");
         }
-        List<Long> ids = (List<Long>) params.get("ids");
-        return outStockService.genOutStock(ids, getLoginUserId());
+        List<DeliveryItem> items = JSON.parseArray(JSONObject.toJSONString(params.get("ids")), DeliveryItem.class);
+        return outStockService.genOutStock(items, getLoginUserId());
     }
 
     @PreAuthorize("hasAuthority('manager:outStock:update')")
     @ApiOperation("鍑哄簱鍗曠敓鎴愭尝娆�")
     @PostMapping("/outStock/generate/wave")
-    public R generateWave(@RequestBody Map<String, Object> params) {
+    public R generateWave(@RequestBody GenWaveParams params) {
         if (Objects.isNull(params)) {
             return R.error("鍙傛暟涓嶈兘涓虹┖锛侊紒");
         }
-        List<Long> ids = (List<Long>) params.get("ids");
-        return outStockService.generateWaves(ids);
+        return outStockService.generateWaves(params);
     }
 
     @PostMapping("/outStock/items/save")
@@ -240,6 +268,7 @@
     }
 
     @PostMapping("/outStock/order/getOutTaskItems")
+    @ApiOperation("鍑哄簱鍗曞簱浣嶉瑙�")
     @PreAuthorize("hasAuthority('manager:outStock:list')")
     public R getOrderOutTaskItem(@RequestBody OrderOutTaskParam param) {
         if (Cools.isEmpty(param)) {
@@ -262,10 +291,44 @@
         if (Cools.isEmpty()) {
             return R.error("鍙傛暟涓嶈兘涓虹┖锛侊紒");
         }
+        if (Objects.isNull(params.get("outId"))) {
+            return R.error("鍑哄簱鍙傛暟涓嶈兘涓虹┖锛侊紒");
+        }
         List<OutStockToTaskParams> taskParams = JSONArray.parseArray(JSONArray.toJSONString(params.get("items")), OutStockToTaskParams.class);
-
-        return  outStockService.genOutStockTask(taskParams, getLoginUserId());
+        List<OutStockToTaskParams> tasks = new ArrayList<>();
+        for (OutStockToTaskParams taskParam : taskParams) {
+            if (StringUtils.isNotBlank(taskParam.getLocCode())) {
+                tasks.add(taskParam);
+            }
+        }
+        return  outStockService.genOutStockTask(tasks, getLoginUserId(), Long.parseLong(params.get("outId").toString()));
     }
 
+    /**
+     * 鑾峰彇鍑哄簱绔欑偣
+     * @return
+     */
+    @GetMapping("/outStock/tasks/sites")
+    @ApiOperation("鑾峰彇鍑哄簱搴撳彛")
+    @PreAuthorize("hasAuthority('manager:outStock:list')")
+    public R getSiteNos() {
+        return outStockService.getSiteNos();
+    }
+
+    /**
+     * @author Ryan
+     * @description 涓嬭浇妯℃澘
+     * @param
+     * @return
+     * @time 2025/4/18 08:17
+     */
+    @PostMapping("/outStock/template/download")
+    @ApiOperation("涓嬭浇鏀惰揣鍗曟ā鏉�")
+    @PreAuthorize("hasAuthority('manager:outStockItem:update')")
+    public void downloadTemplate(@RequestBody Map<String, Object> map, HttpServletResponse response) throws Exception {
+        OutStockTemplate template = ExcelUtil.mockData(OutStockTemplate.class);
+        List<OutStockTemplate> list = Arrays.asList(template);
+        ExcelUtil.build(ExcelUtil.create(list, OutStockTemplate.class, true), response);
+    }
 
 }

--
Gitblit v1.9.1