From e8f76615d2875e1acf9b28b20657cbca6117ca9f Mon Sep 17 00:00:00 2001 From: skyouc Date: 星期五, 16 五月 2025 18:18:58 +0800 Subject: [PATCH] 1. 即时库存修改 --- rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/WarehouseStockController.java | 107 ++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 100 insertions(+), 7 deletions(-) diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/WarehouseStockController.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/WarehouseStockController.java index 72b4b86..e83b13b 100644 --- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/WarehouseStockController.java +++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/WarehouseStockController.java @@ -1,13 +1,17 @@ package com.vincent.rsf.server.manager.controller; +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.core.metadata.IPage; import com.vincent.rsf.framework.common.R; import com.vincent.rsf.server.common.domain.BaseParam; import com.vincent.rsf.server.common.domain.PageParam; import com.vincent.rsf.server.common.utils.FieldsUtils; -import com.vincent.rsf.server.manager.entity.LocItem; -import com.vincent.rsf.server.manager.entity.WaitPakinItem; +import com.vincent.rsf.server.manager.controller.params.WarehouseStockParam; +import com.vincent.rsf.server.manager.entity.StockItem; +import com.vincent.rsf.server.manager.entity.ViewStockManage; +import com.vincent.rsf.server.manager.enums.ViewStockType; import com.vincent.rsf.server.manager.service.WarehouseStockService; import com.vincent.rsf.server.system.controller.BaseController; import io.swagger.annotations.Api; @@ -34,19 +38,108 @@ @PreAuthorize("hasAuthority('manager:locItem:list')") @PostMapping("/page") public R page(@RequestBody Map<String, Object> param) { + if (Objects.isNull(param)) { + return R.error("鍙傛暟涓嶈兘涓虹┖锛侊紒"); + } BaseParam baseParam = buildParam(param, BaseParam.class); - PageParam<LocItem, BaseParam> pageParam = new PageParam<>(baseParam, LocItem.class); - QueryWrapper<LocItem> queryWrapper = pageParam.buildWrapper(true); - IPage<LocItem> pageResult = warehouseStockService.pageByStock(pageParam, queryWrapper); - List<LocItem> records = pageResult.getRecords(); - for (LocItem record : records) { + PageParam<ViewStockManage, BaseParam> pageParam = new PageParam<>(baseParam, ViewStockManage.class); + WarehouseStockParam stockParam = JSONObject.parseObject(JSONObject.toJSONString(param), WarehouseStockParam.class); + String type = stockParam.getAggType(); + ViewStockManage stock = stockParam.getStock(); + QueryWrapper<ViewStockManage> wrapper = new QueryWrapper<>(); + + if (type.equals(ViewStockType.VIEW_STOCK_TYPE_SUPPLIER.val)) { + wrapper.groupBy("splr_id"); + } else if (type.equals(ViewStockType.VIEW_STOCK_TYPE_BATCH.val)) { + wrapper.groupBy("batch"); + } else if (type.equals(ViewStockType.VIEW_STOCK_TYPE_WAREHOUSE.val)) { + wrapper.groupBy("warehouse"); + } else if (type.equals(ViewStockType.VIEW_STOCK_TYPE_FIELDSINDEX.val)) { + wrapper.groupBy("fields_index"); + } else { + wrapper.groupBy("matnr_id"); + } + IPage<ViewStockManage> pageResult = warehouseStockService.pageByStock(pageParam, wrapper); + List<ViewStockManage> records = pageResult.getRecords(); + for (ViewStockManage record : records) { if (!Objects.isNull(record.getFieldsIndex())) { Map<String, String> fields = FieldsUtils.getFields(record.getFieldsIndex()); record.setExtendFields(fields); } } pageResult.setRecords(records); + return R.ok(pageResult); } + + @PreAuthorize("hasAuthority('manager:locItem:list')") + @PostMapping("/histories/page") + public R histories(@RequestBody Map<String, Object> param) { + if (Objects.isNull(param)) { + return R.error("鍙傛暟涓嶈兘涓虹┖锛侊紒"); + } + BaseParam baseParam = buildParam(param, BaseParam.class); + PageParam<StockItem, BaseParam> pageParam = new PageParam<>(baseParam, StockItem.class); + WarehouseStockParam stockParam = JSONObject.parseObject(JSONObject.toJSONString(param), WarehouseStockParam.class); + String type = stockParam.getAggType(); + ViewStockManage stock = stockParam.getStock(); + QueryWrapper<StockItem> wrapper = new QueryWrapper<>(); + + if (type.equals(ViewStockType.VIEW_STOCK_TYPE_SUPPLIER.val)) { + wrapper.eq("sprl_id", stock.getSplrId()); + } else if (type.equals(ViewStockType.VIEW_STOCK_TYPE_BATCH.val)) { + wrapper.eq("batch", stock.getBatch()); + } else if (type.equals(ViewStockType.VIEW_STOCK_TYPE_WAREHOUSE.val)) { + wrapper.eq("warehouse", stock.getWarehouse()); + } else if (type.equals(ViewStockType.VIEW_STOCK_TYPE_FIELDSINDEX.val)) { + wrapper.eq("fields_index", stock.getFieldsIndex()); + } else { + wrapper.eq("matnr_id", stock.getMatnrId()); + } + IPage<StockItem> pageResult = warehouseStockService.pageByHistories(pageParam, wrapper); + + List<StockItem> records = pageResult.getRecords(); + for (StockItem record : records) { + if (!Objects.isNull(record.getFieldsIndex())) { + Map<String, String> fields = FieldsUtils.getFields(record.getFieldsIndex()); + record.setExtendFields(fields); + } + } + pageResult.setRecords(records); + + return R.ok(pageResult); + } + + @PreAuthorize("hasAuthority('manager:locItem:list')") + @PostMapping("/info") + public R stockInfo(@RequestBody Map<String, Object> param) { + if (Objects.isNull(param)) { + return R.error("鍙傛暟涓嶈兘涓虹┖锛侊紒"); + } + BaseParam baseParam = buildParam(param, BaseParam.class); + PageParam<ViewStockManage, BaseParam> pageParam = new PageParam<>(baseParam, ViewStockManage.class); + WarehouseStockParam stockParam = JSONObject.parseObject(JSONObject.toJSONString(param), WarehouseStockParam.class); + String type = stockParam.getAggType(); + if (Objects.isNull(type)) { + return R.error("鍙傛暟涓嶈兘涓虹┖锛侊紒"); + } + ViewStockManage stock = stockParam.getStock(); + LambdaQueryWrapper<ViewStockManage> wrapper = new LambdaQueryWrapper<ViewStockManage>(); + + if (type.equals(ViewStockType.VIEW_STOCK_TYPE_SUPPLIER.val)) { + wrapper.eq(ViewStockManage::getSplrId, stock.getSplrId()); + } else if (type.equals(ViewStockType.VIEW_STOCK_TYPE_BATCH.val)) { + wrapper.eq(ViewStockManage::getBatch, stock.getBatch()); + } else if (type.equals(ViewStockType.VIEW_STOCK_TYPE_WAREHOUSE.val)) { + wrapper.eq(ViewStockManage::getWarehouse, stock.getWarehouse()); + } else if (type.equals(ViewStockType.VIEW_STOCK_TYPE_FIELDSINDEX.val)) { + wrapper.eq(ViewStockManage::getFieldsIndex, stock.getFieldsIndex()); + } else { + wrapper.eq(ViewStockManage::getMatnrCode, stock.getMatnrCode()); + } + + return R.ok(warehouseStockService.page(pageParam, wrapper)); + } + } -- Gitblit v1.9.1