From 8eb93d5740c17f7b30888cc4dc1038f024ab3cb9 Mon Sep 17 00:00:00 2001 From: skyouc Date: 星期三, 11 六月 2025 09:22:04 +0800 Subject: [PATCH] DO单导入优化 出库单导入优化 --- rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/OutStockController.java | 136 +++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 123 insertions(+), 13 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 b442995..1ee268e 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,18 +1,24 @@ 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; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; 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.server.api.entity.enums.OrderType; -import com.vincent.rsf.server.api.entity.enums.OrderWorkType; +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.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; import com.vincent.rsf.server.common.domain.BaseParam; import com.vincent.rsf.server.common.domain.KeyValVo; import com.vincent.rsf.server.common.domain.PageParam; import com.vincent.rsf.server.common.utils.ExcelUtil; +import com.vincent.rsf.server.manager.controller.params.AsnOrderAndItemsParams; import com.vincent.rsf.server.manager.entity.AsnOrder; import com.vincent.rsf.server.manager.entity.AsnOrderItem; import com.vincent.rsf.server.manager.entity.excel.AsnOrderTemplate; @@ -25,6 +31,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.*; @@ -36,6 +44,8 @@ @Api(tags = "鍑哄簱鍗曟嵁") public class OutStockController extends BaseController { + Logger logger = LoggerFactory.getLogger(OutStockController.class); + @Autowired private OutStockService outStockService; @Autowired @@ -46,7 +56,10 @@ public R page(@RequestBody Map<String, Object> map) { BaseParam baseParam = buildParam(map, BaseParam.class); PageParam<AsnOrder, BaseParam> pageParam = new PageParam<>(baseParam, AsnOrder.class); - return R.ok().add(outStockService.page(pageParam, pageParam.buildWrapper(true))); + 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')") @@ -80,7 +93,8 @@ if (Objects.isNull(ruleCode) || StringUtils.isBlank(ruleCode)) { return R.error("缂栫爜瑙勫垯閿欒锛氱紪鐮併�孲YS_OUT_STOCK_CODE銆嶆槸鏈缃垚鍔燂紒锛�"); } - asnOrder.setCode(ruleCode); + asnOrder.setExceStatus(AsnExceStatus.OUT_STOCK_STATUS_TASK_INIT.val) + .setCode(ruleCode); } if (!outStockService.save(asnOrder)) { return R.error("Save Fail"); @@ -168,26 +182,122 @@ template.setCode(order.getCode()) .setType(OrderType.getValType(order.getType())) .setWkType(OrderWorkType.getWorkDesc(order.getWkType())) - .setExceStatus(AsnExceStatus.getExceStatus(order.getExceStatus())) .setAnfme(item.getAnfme() + "") .setMaktx(item.getMaktx()) .setMemo(item.getMemo()) .setMatnrCode(item.getMatnrCode()) .setPoCode(item.getPoCode()) .setSplrName(item.getSplrName()) - .setPoId(order.getPoId() + "") - .setTrackCode(item.getTrackCode()) - .setBarcode(item.getBarcode()) - .setPackName(item.getPackName()) .setPlatItemId(item.getPlatItemId()) .setSplrBatch(item.getSplrBatch()) - .setSplrCode(item.getSplrCode()) - .setStockUnit(item.getStockUnit()) - .setPurQty(item.getPurQty() + "") - .setPurUnit(item.getPurUnit()); + .setSplrCode(item.getSplrCode()); orderTemplates.add(template); } } ExcelUtil.build(ExcelUtil.create(orderTemplates, AsnOrderTemplate.class), response); } + + + @PreAuthorize("hasAuthority('manager:outStock:update')") + @ApiOperation("閫氳繃DO鍗曠敓鎴愬嚭搴撳崟") + @PostMapping("/outStock/generate/orders") + public R genOutStock(@RequestBody Map<String, Object> params) { + if (Objects.isNull(params.get("ids"))) { + return R.error("鍙傛暟涓嶈兘涓虹┖锛侊紒"); + } + List<Long> ids = (List<Long>) params.get("ids"); + return outStockService.genOutStock(ids, getLoginUserId()); + } + + @PreAuthorize("hasAuthority('manager:outStock:update')") + @ApiOperation("鍑哄簱鍗曠敓鎴愭尝娆�") + @PostMapping("/outStock/generate/wave") + public R generateWave(@RequestBody Map<String, Object> params) { + if (Objects.isNull(params)) { + return R.error("鍙傛暟涓嶈兘涓虹┖锛侊紒"); + } + List<Long> ids = (List<Long>) params.get("ids"); + return outStockService.generateWaves(ids); + } + + @PostMapping("/outStock/items/save") + @ApiOperation("淇濆瓨涓诲崟鍙婃槑缁�") + @PreAuthorize("hasAuthority('manager:outStock:save')") + public R saveOutStock(@RequestBody AsnOrderAndItemsParams params) throws Exception { + if (Objects.isNull(params)) { + return R.error("鍙傛暟涓嶈兘涓虹┖锛侊紒"); + } + return outStockService.saveOutStock(params, getLoginUserId()); + } + + @ApiOperation("鍗曟嵁淇℃伅淇敼") + @PostMapping("/outStock/items/update") + @PreAuthorize("hasAuthority('manager:outStock:update')") + public R orderAndrItemUpdate(@RequestBody AsnOrderAndItemsParams params) throws Exception { + if (Objects.isNull(params)) { + return R.error("鍙傛暟涓嶈兘涓虹┖锛侊紒"); + } + 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