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