From 5a92ae0d5b0de8c05d2605603f08b0a0228d6e56 Mon Sep 17 00:00:00 2001 From: skyouc Date: 星期四, 17 七月 2025 08:04:46 +0800 Subject: [PATCH] 盘点单下发功能优化 --- rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/LocItemServiceImpl.java | 13 ++++ rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/CheckOrderController.java | 19 ++++-- rsf-server/src/main/java/com/vincent/rsf/server/manager/service/CheckOrderService.java | 3 + rsf-admin/src/page/orders/check/CheckOrderPub.jsx | 35 +++-------- rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/CheckOrderServiceImpl.java | 28 ++++++++- rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/PurchaseItemServiceImpl.java | 1 rsf-server/src/main/java/com/vincent/rsf/server/manager/service/LocItemService.java | 3 + rsf-admin/src/page/basicInfo/matnrGroup/MatnrGroupCreate.jsx | 21 ++---- rsf-server/src/main/java/com/vincent/rsf/server/manager/enums/LocStsType.java | 4 + rsf-server/src/main/resources/mapper/manager/LocItemMapper.xml | 29 +++++++++ rsf-server/src/main/java/com/vincent/rsf/server/manager/mapper/LocItemMapper.java | 10 +-- 11 files changed, 110 insertions(+), 56 deletions(-) diff --git a/rsf-admin/src/page/basicInfo/matnrGroup/MatnrGroupCreate.jsx b/rsf-admin/src/page/basicInfo/matnrGroup/MatnrGroupCreate.jsx index 4c9aa78..27f633a 100644 --- a/rsf-admin/src/page/basicInfo/matnrGroup/MatnrGroupCreate.jsx +++ b/rsf-admin/src/page/basicInfo/matnrGroup/MatnrGroupCreate.jsx @@ -43,23 +43,16 @@ } }; - const handleSuccess = async (data) => { - setOpen(false); - notify('common.response.success'); - }; - - const handleError = async (error) => { - notify(error.message || 'common.response.fail', { type: 'error', messageArgs: { _: error.message } }); - }; - return ( <> <CreateBase - record={{}} - transform={(data) => { - return data; - }} - mutationOptions={{ onSuccess: handleSuccess, onError: handleError }} + // record={{}} + // transform={(data) => { + // console.log('success========>'); + + // return data; + // }} + // mutationOptions={{ onSuccess: handleSuccess, onError: handleError }} > <Dialog open={open} diff --git a/rsf-admin/src/page/orders/check/CheckOrderPub.jsx b/rsf-admin/src/page/orders/check/CheckOrderPub.jsx index 566d3d0..67af707 100644 --- a/rsf-admin/src/page/orders/check/CheckOrderPub.jsx +++ b/rsf-admin/src/page/orders/check/CheckOrderPub.jsx @@ -3,36 +3,14 @@ import { List, DatagridConfigurable, - SearchInput, - TopToolbar, Button, - SelectColumnsButton, - EditButton, - FilterButton, - CreateButton, - ExportButton, - BulkDeleteButton, - WrapperField, - useRecordContext, useTranslate, useNotify, useListContext, - FunctionField, TextField, NumberField, - DateField, - BooleanField, - ReferenceField, - TextInput, - DateTimeInput, - DateInput, - SelectInput, - NumberInput, ReferenceInput, - ReferenceArrayInput, AutocompleteInput, - DeleteButton, - SimpleForm, required, Form, useRefresh, @@ -85,7 +63,16 @@ setRows(fetchRows) } else { const mas = fetchRows.filter(item => selectedMatnr.includes(item.matnrCode)); - setRows(mas) + console.log(mas); + let ids = mas.map(item => item.matnrCode); + console.log(ids); + const { data: { code, data, msg } } = request.get('/check/order/items/' + ids ); + if (code === 200) { + setFetchRows(data) + } else { + notify(msg); + } + // setRows(mas) } }, [selectedMatnr]) @@ -139,7 +126,7 @@ if (formData.waveId == null && formData.waveId == undefined) { return } - const { data: { code, data, msg } } = await request.post('/outStock/order/getOutTaskItems', { ...formData }); + const { data: { code, data, msg } } = await request.post('/check/order/items', { ...formData }); if (code === 200) { setFetchRows(data) } else { diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/CheckOrderController.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/CheckOrderController.java index 2cb928b..8efedda 100644 --- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/CheckOrderController.java +++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/CheckOrderController.java @@ -161,7 +161,6 @@ return checkOrderService.saveCheckOrder(params, getLoginUserId()); } - @ApiOperation("鐩樼偣鍗曚俊鎭慨鏀�") @PostMapping("/check/items/update") @PreAuthorize("hasAuthority('manager:check:update')") @@ -172,18 +171,15 @@ return checkOrderService.updateOrderItem(params, getLoginUserId()); } - @PostMapping("/outStock/order/getOutTaskItems") + @PostMapping("/check/order/items") @ApiOperation("鐩樼偣鍑哄簱棰勮") - @PreAuthorize("hasAuthority('manager:outStock:list')") + @PreAuthorize("hasAuthority('manager:check:list')") public R getOrderOutTaskItem(@RequestBody OrderOutTaskParam param) { if (Cools.isEmpty(param)) { return R.error("鍙傛暟涓嶈兘涓虹┖"); } - return checkOrderService.genCheckPreview(param); } - - /** * 鑾峰彇鍑哄簱绔欑偣 @@ -197,6 +193,17 @@ } + @ApiOperation("鑾峰彇鍦ㄥ簱鐗╂枡鍒楄〃") + @GetMapping("/check/order/locs/{matnr}") + @PreAuthorize("hasAuthority('manager:check:list')") + public R getAllLocByMatnr(@PathVariable String[] matnrs) { + if (Objects.isNull(matnrs)) { + return R.error("鍙傛暟涓嶈兘涓虹┖锛侊紒"); + } + return checkOrderService.getAllLocByMatnr(Arrays.asList(matnrs)); + } + + /** * @author Ryan * @description 涓嬭浇妯℃澘 diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/enums/LocStsType.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/enums/LocStsType.java index e172e0b..6b27992 100644 --- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/enums/LocStsType.java +++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/enums/LocStsType.java @@ -1,6 +1,10 @@ package com.vincent.rsf.server.manager.enums; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.vincent.rsf.framework.common.SpringUtils; +import com.vincent.rsf.framework.exception.CoolException; + public enum LocStsType { //绌烘澘 diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/mapper/LocItemMapper.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/mapper/LocItemMapper.java index f26306f..d48dbbd 100644 --- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/mapper/LocItemMapper.java +++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/mapper/LocItemMapper.java @@ -1,20 +1,18 @@ package com.vincent.rsf.server.manager.mapper; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Constants; -import com.vincent.rsf.server.common.domain.BaseParam; -import com.vincent.rsf.server.common.domain.PageParam; import com.vincent.rsf.server.manager.entity.LocItem; import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.vincent.rsf.server.manager.entity.ViewStockManage; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import org.springframework.stereotype.Repository; + +import java.util.List; @Mapper @Repository public interface LocItemMapper extends BaseMapper<LocItem> { - IPage<ViewStockManage> pageByStock(PageParam<ViewStockManage, BaseParam> pageParam, @Param(Constants.WRAPPER) QueryWrapper<ViewStockManage> queryWrapper); + List<LocItem> listByMatnr(@Param("type") String type, @Param(Constants.WRAPPER) LambdaQueryWrapper<LocItem> matnr); } diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/CheckOrderService.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/CheckOrderService.java index 4e107a7..246d4ae 100644 --- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/CheckOrderService.java +++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/CheckOrderService.java @@ -8,6 +8,7 @@ import org.springframework.web.multipart.MultipartFile; import java.util.HashMap; +import java.util.List; public interface CheckOrderService extends IService<WkOrder> { @@ -22,4 +23,6 @@ R getSiteNos(); R genCheckPreview(OrderOutTaskParam param); + + R getAllLocByMatnr(List<String> matnrs); } diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/LocItemService.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/LocItemService.java index 689a0f3..dfed43a 100644 --- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/LocItemService.java +++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/LocItemService.java @@ -5,10 +5,13 @@ import com.vincent.rsf.server.manager.entity.LocItem; import com.vincent.rsf.server.manager.entity.Task; +import java.util.List; + public interface LocItemService extends IService<LocItem> { void generateTask(Short resouce, LocToTaskParams map, Long loginUserId) throws Exception; Task genMoveTask(LocToTaskParams map, Long loginUserId); + List<LocItem> listByMatnr(List<String> matnrs); } diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/CheckOrderServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/CheckOrderServiceImpl.java index 69a1499..f803400 100644 --- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/CheckOrderServiceImpl.java +++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/CheckOrderServiceImpl.java @@ -10,10 +10,7 @@ import com.vincent.rsf.server.common.utils.ExcelUtil; import com.vincent.rsf.server.manager.controller.params.AsnOrderAndItemsParams; import com.vincent.rsf.server.manager.controller.params.OrderOutTaskParam; -import com.vincent.rsf.server.manager.entity.DeviceSite; -import com.vincent.rsf.server.manager.entity.WkOrder; -import com.vincent.rsf.server.manager.entity.WkOrderItem; -import com.vincent.rsf.server.manager.entity.Matnr; +import com.vincent.rsf.server.manager.entity.*; import com.vincent.rsf.server.manager.entity.excel.CheckOrderTemplate; import com.vincent.rsf.server.manager.enums.*; import com.vincent.rsf.server.manager.mapper.CheckOrderMapper; @@ -41,6 +38,8 @@ private AsnOrderItemService asnOrderItemService; @Autowired private DeviceSiteService deviceSiteService; + @Autowired + private LocItemService locItemService; /** * @author Ryan @@ -216,6 +215,27 @@ */ @Override public R genCheckPreview(OrderOutTaskParam param) { + List<WkOrderItem> orderItems = checkOrderItemService.list(new LambdaQueryWrapper<WkOrderItem>().eq(WkOrderItem::getOrderId, param.getOrderId())); + if (orderItems.isEmpty()) { + throw new CoolException("鏁版嵁閿欒锛氱洏鐐瑰崟鏄庣粏涓嶅瓨鍦紒锛�"); + } + return R.ok().add(orderItems); + } + + /** + * @author Ryan + * @date 2025/7/16 + * @description: 鏍规嵁鐗╂枡鐮佽幏鍙栨墍鏈夊湪搴撴槑缁� + * @version 1.0 + */ + @Override + public R getAllLocByMatnr(List<String> matnrs) { + List<LocItem> locItems = locItemService.listByMatnr(matnrs); + if (locItems.isEmpty()) { + return R.ok(); + } + + return null; } diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/LocItemServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/LocItemServiceImpl.java index 398e43d..d31e992 100644 --- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/LocItemServiceImpl.java +++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/LocItemServiceImpl.java @@ -363,4 +363,17 @@ } return task; } + + /** + * @author Ryan + * @date 2025/7/16 + * @description: 鑾峰彇褰撳墠鐗╂枡鎵�鏈夊簱瀛樹俊鎭� + * @version 1.0 + */ + @Override + public List<LocItem> listByMatnr(List<String> matnr) { + LambdaQueryWrapper<LocItem> wrapper = new LambdaQueryWrapper<LocItem>() + .in(!matnr.isEmpty(), LocItem::getMatnrCode, matnr); + return this.baseMapper.listByMatnr(LocStsType.LOC_STS_TYPE_F.type, wrapper); + } } diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/PurchaseItemServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/PurchaseItemServiceImpl.java index f9b7e40..ad3f323 100644 --- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/PurchaseItemServiceImpl.java +++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/PurchaseItemServiceImpl.java @@ -68,7 +68,6 @@ List<PurchaseTemplate> list = listMap.get(key); Purchase serviceOne = purchaseService.getOne(new LambdaQueryWrapper<Purchase>().eq(Purchase::getCode, key)); if (!Objects.isNull(serviceOne)) { -// return R.error(serviceOne.getCode() + "鍗曟嵁宸插瓨鍦紒锛�"); throw new CoolException(serviceOne.getCode() + "鍗曟嵁宸插瓨鍦紒锛�"); } PurchaseTemplate template = list.stream().findFirst().get(); diff --git a/rsf-server/src/main/resources/mapper/manager/LocItemMapper.xml b/rsf-server/src/main/resources/mapper/manager/LocItemMapper.xml index 90ad348..df271db 100644 --- a/rsf-server/src/main/resources/mapper/manager/LocItemMapper.xml +++ b/rsf-server/src/main/resources/mapper/manager/LocItemMapper.xml @@ -1,5 +1,32 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.vincent.rsf.server.manager.mapper.LocItemMapper"> - + <select id="listByMatnr" resultType="com.vincent.rsf.server.manager.entity.LocItem"> + SELECT + * + FROM + ( + SELECT + li.id, + li.loc_id, + li.loc_code, + l.barcode, + li.matnr_id, + li.matnr_code, + li.maktx, + li.batch, + SUM( li.anfme ) anfme, + li.fields_index + FROM + man_loc_item li + INNER JOIN man_loc l ON l.id = li.loc_id + WHERE l.use_status = #{type} + GROUP BY + loc_id, + matnr_id, + batch, + fields_index + )t + ${ew.customSqlSegment} + </select> </mapper> -- Gitblit v1.9.1