From 253e5ad5ec600ea04cc8636dacec1afd895e08fc Mon Sep 17 00:00:00 2001 From: skyouc Date: 星期五, 13 六月 2025 13:21:21 +0800 Subject: [PATCH] 出库顺序优化 代码优化 --- rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/OutStockController.java | 100 +++++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 98 insertions(+), 2 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 0db2488..d2d32ce 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 @@ -1,5 +1,6 @@ package com.vincent.rsf.server.manager.controller; +import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; @@ -7,6 +8,11 @@ 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.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; @@ -27,6 +33,8 @@ import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.*; @@ -37,6 +45,7 @@ @RestController @Api(tags = "鍑哄簱鍗曟嵁") public class OutStockController extends BaseController { + Logger logger = LoggerFactory.getLogger(OutStockController.class); @Autowired private OutStockService outStockService; @@ -46,6 +55,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); @@ -147,6 +167,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") @@ -197,8 +232,8 @@ 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')") @@ -231,4 +266,65 @@ } return outStockService.updateOrderItem(params, getLoginUserId()); } + + @PostMapping("/outStock/order/getOutTaskItems") + @ApiOperation("鍑哄簱鍗曞簱浣嶉瑙�") + @PreAuthorize("hasAuthority('manager:outStock:list')") + public R getOrderOutTaskItem(@RequestBody OrderOutTaskParam param) { + if (Cools.isEmpty(param)) { + return R.error("鍙傛暟涓嶈兘涓虹┖"); + } + + return outStockService.getOrderOutTaskItem(param); + } + + + /** + * 鍑哄簱鍗曠敓鎴愬嚭搴撲换鍔� + * @param params + * @return + */ + @PostMapping("/outStock/generate/tasks") + @ApiOperation("鍑哄簱鍗曠敓鎴愬嚭搴撲换鍔�") + @PreAuthorize("hasAuthority('manager:outStock:list')") + public R genOutStockTask( @RequestBody Map<String, Object> params) { + 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(), 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