From c312a110ee4823a4a1f912a05e9648edc56f96e7 Mon Sep 17 00:00:00 2001 From: skyouc Date: 星期五, 06 六月 2025 15:48:42 +0800 Subject: [PATCH] DO 单生成出库单功能优化 --- rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/LocItemController.java | 90 ++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 88 insertions(+), 2 deletions(-) diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/LocItemController.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/LocItemController.java index 2ef4102..612bce4 100644 --- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/LocItemController.java +++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/LocItemController.java @@ -1,19 +1,25 @@ package com.vincent.rsf.server.manager.controller; 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.utils.LocUtils; +import com.vincent.rsf.server.common.constant.Constants; import com.vincent.rsf.server.common.utils.ExcelUtil; 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.FieldsUtils; +import com.vincent.rsf.server.manager.controller.params.LocToTaskParams; import com.vincent.rsf.server.manager.entity.LocItem; -import com.vincent.rsf.server.manager.entity.WarehouseAreasItem; import com.vincent.rsf.server.manager.service.LocItemService; +import com.vincent.rsf.server.manager.service.LocService; import com.vincent.rsf.server.system.controller.BaseController; +import com.vincent.rsf.server.manager.enums.LocStsType; +import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.*; @@ -26,6 +32,8 @@ @Autowired private LocItemService locItemService; + @Autowired + private LocService locService; @PreAuthorize("hasAuthority('manager:locItem:list')") @PostMapping("/locItem/page") @@ -48,6 +56,84 @@ } @PreAuthorize("hasAuthority('manager:locItem:list')") + @PostMapping("/locItem/useO/page") + public R locUseOPage(@RequestBody Map<String, Object> map) { + BaseParam baseParam = buildParam(map, BaseParam.class); + PageParam<LocItem, BaseParam> pageParam = new PageParam<>(baseParam, LocItem.class); + QueryWrapper<LocItem> locItemQueryWrapper = pageParam.buildWrapper(true); + String applySql = String.format( + "EXISTS (SELECT 1 FROM man_loc ml " + + "WHERE ml.use_status = '%s'" + + "AND ml.id = man_loc_item.loc_id " + + ")", + LocStsType.LOC_STS_TYPE_F.type + ); + locItemQueryWrapper.apply(applySql); + /**鎷兼帴鎵╁睍瀛楁*/ + PageParam<LocItem, BaseParam> page = locItemService.page(pageParam, locItemQueryWrapper); + List<LocItem> records = page.getRecords(); + for (LocItem record : records) { + if (!Objects.isNull(record.getFieldsIndex())) { + Map<String, String> fields = FieldsUtils.getFields(record.getFieldsIndex()); + record.setExtendFields(fields); + } + } + page.setRecords(records); + + return R.ok().add(page); + } + + /** + * 鐢熸垚搴撳瓨鍑哄簱浠诲姟 + * @param param + * @return + */ + @PreAuthorize("hasAuthority('manager:locItem:list')") + @ApiOperation("鐢熸垚搴撳瓨鍑哄簱浠诲姟") + @PostMapping("/locItem/generate/task") + public R generateTask(@RequestBody LocToTaskParams param) { + if (Objects.isNull(param)) { + return R.error("鍙傛暟涓嶈兘涓虹┖锛侊紒"); + } + param.setType(Constants.TASK_TYPE_OUT_STOCK); + + return locItemService.generateTask(param, getLoginUserId()); + } + + /** + * 鐢熸垚绉诲簱浠诲姟 + * @param map + * @return + */ + @PreAuthorize("hasAuthority('manager:locItem:list')") + @ApiOperation("鐢熸垚绉诲簱浠诲姟") + @PostMapping("/locItem/move/task") + public R genMoveTask(@RequestBody LocToTaskParams map) { + if (Objects.isNull(map)) { + return R.error("鍙傛暟涓嶈兘涓虹┖锛侊紒"); + } + return R.ok("浠诲姟鐢熸垚鎴愬姛").add(locItemService.genMoveTask(map, getLoginUserId())); + } + + /** + * 鐢熸垚鐩樼偣鍑哄簱浠诲姟 + * @param map + * @return + */ + @PreAuthorize("hasAuthority('manager:locItem:list')") + @ApiOperation("鐢熸垚鐩樼偣鍑哄簱浠诲姟") + @PostMapping("/locItem/check/task") + public R genStatisticalTask(@RequestBody LocToTaskParams map) { + if (Objects.isNull(map)) { + return R.error("鍙傛暟涓嶈兘涓虹┖锛侊紒"); + } + map.setType(Constants.TASK_TYPE_OUT_CHECK); + + return R.ok("浠诲姟鐢熸垚鎴愬姛").add(locItemService.generateTask(map, getLoginUserId())); + } + + + @PreAuthorize("hasAuthority('manager:locItem:list')") @PostMapping("/locItem/list") public R list(@RequestBody Map<String, Object> map) { return R.ok().add(locItemService.list()); @@ -62,7 +148,7 @@ @PreAuthorize("hasAuthority('manager:locItem:list')") @GetMapping("/locItem/{id}") public R get(@PathVariable("id") Long id) { - return R.ok().add(locItemService.getById(id)); + return R.ok().add(locService.getById(id)); } @PreAuthorize("hasAuthority('manager:locItem:save')") -- Gitblit v1.9.1