From 0d692433815cd80bab48091829c427e22d4663d0 Mon Sep 17 00:00:00 2001
From: skyouc
Date: 星期二, 22 七月 2025 15:27:04 +0800
Subject: [PATCH] 盘点差异单功能优化

---
 rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/TaskServiceImpl.java      |   10 +++-
 rsf-admin/src/page/orders/check/CheckOrderPub.jsx                                              |   12 ++++-
 rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/TaskSchedules.java           |   38 +++++++++---------
 rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/PdaCheckOrderServiceImpl.java |   21 ++++++----
 4 files changed, 48 insertions(+), 33 deletions(-)

diff --git a/rsf-admin/src/page/orders/check/CheckOrderPub.jsx b/rsf-admin/src/page/orders/check/CheckOrderPub.jsx
index b35286f..1a0c75a 100644
--- a/rsf-admin/src/page/orders/check/CheckOrderPub.jsx
+++ b/rsf-admin/src/page/orders/check/CheckOrderPub.jsx
@@ -73,7 +73,11 @@
     const getLocs = async (ids) => {
         const { data: { code, data, msg } } = await request.post('/check/locs/' + ids);
         if (code === 200) {
+            console.log('----->');
+            console.log(data);
             setRows(data)
+            const matnrs = selectedMatnr.filter(item => data.some(bigData => bigData.matnrCode === item));
+            // setSelectedMatnr(matnrs)
         } else {
             notify(msg);
         }
@@ -222,7 +226,7 @@
                             </Box>
                             <Box sx={{ textAlign: 'center' }}>
                                 <CloseButton setOpen={setOpen} />
-                                <SubmitButton selectedIds={selectedIds} setOpen={setOpen} setSelectedIds={setSelectedIds} rowSelectedIds={rowSelectedIds} gridRef={gridRef} record={record} />
+                                <SubmitButton selectedIds={selectedIds} setOpen={setOpen} setSelectedIds={setSelectedIds} selectedMatnr={selectedMatnr} rowSelectedIds={rowSelectedIds} gridRef={gridRef} record={record} />
                             </Box>
                         </Card>
                     </Grid>
@@ -420,7 +424,7 @@
 
 
 //鎻愪氦鎸夐挳
-const SubmitButton = ({ selectedIds, setSelectedIds, rowSelectedIds, gridRef, record, setOpen }) => {
+const SubmitButton = ({ selectedIds, setSelectedIds, rowSelectedIds, gridRef, record, setOpen, selectedMatnr }) => {
     const notify = useNotify();
     const refresh = useRefresh();
     const translate = useTranslate();
@@ -441,7 +445,9 @@
             }
         })
 
-        const { data: { code, data, msg } } = await request.post('/check/generate/tasks', records);
+        let params = records.filter(record => record?.items.length > 0);
+
+        const { data: { code, data, msg } } = await request.post('/check/generate/tasks', params);
         if (code == 200) {
             refresh();
             setOpen(false)
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/PdaCheckOrderServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/PdaCheckOrderServiceImpl.java
index b6a9e2d..481e56e 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/PdaCheckOrderServiceImpl.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/PdaCheckOrderServiceImpl.java
@@ -1,6 +1,7 @@
 package com.vincent.rsf.server.api.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.vincent.rsf.framework.common.Cools;
 import com.vincent.rsf.framework.common.R;
 import com.vincent.rsf.framework.exception.CoolException;
@@ -128,7 +129,7 @@
                         .setOrderType(OrderType.ORDER_CHECK.type)
                         .setSourceCode(diffItem.getOrderCode())
                         .setWkType(Short.parseShort(OrderWorkType.ORDER_WORK_TYPE_STOCK_CHECK.type))
-                        .setAnfme(diffItem.getAnfme())
+                        .setAnfme(diffItem.getCheckQty())
                         .setWorkQty(0.0)
                         .setBatch(diffItem.getBatch())
                         .setMaktx(matnr.getName())
@@ -151,7 +152,7 @@
                     throw new CoolException("鏂板鐩樼偣鏄庣粏淇濆瓨澶辫触锛侊紒");
                 }
 
-                diffItem.setTaskItemId(taskItem.getId());
+                diffItem.setTaskItemId(taskItem.getId()).setExceStatus(CheckDiffExceStatus.CHECK_DIFF_EXCE_STATUS_HOLD.val);
 
                 if (!checkDiffItemService.updateById(diffItem)) {
                     throw new CoolException("鏄庣粏淇敼澶辫触锛侊紒");
@@ -162,14 +163,18 @@
                     return R.error("鏁版嵁閿欒锛屾湭鎵惧埌宸紓鍗曟槑缁�");
                 }
                 diffItem.setCheckQty(ckDiffItem.getCheckQty()).setReason(ckDiffItem.getReason()).setMemo(ckDiffItem.getMemo());
-            }
 
-            diffItem.setExceStatus(CheckDiffExceStatus.CHECK_DIFF_EXCE_STATUS_HOLD.val);
-            if (!checkDiffItemService.updateById(diffItem)) {
-                throw new CoolException("鏇存柊宸紓鍗曟槑缁嗗け璐�");
+                diffItem.setExceStatus(CheckDiffExceStatus.CHECK_DIFF_EXCE_STATUS_HOLD.val);
+                if (!checkDiffItemService.updateById(diffItem)) {
+                    throw new CoolException("鏇存柊宸紓鍗曟槑缁嗗け璐�");
+                }
+
+                if (!taskItemService.update(new LambdaUpdateWrapper<TaskItem>()
+                        .set(TaskItem::getAnfme, diffItem.getCheckQty())
+                        .eq(TaskItem::getId, diffItem.getTaskItemId()))) {
+                    throw new CoolException("浠诲姟鏁伴噺淇敼澶辫触锛侊紒");
+                }
             }
-//            Double checkQty = Math.round((checkDiff.getCheckQty() + diffItem.getCheckQty()) * 10000) / 10000.0;
-//            checkDiff.setCheckQty(checkQty);
         }
 
         List<CheckDiffItem> diffItems = checkDiffItemService.list(new LambdaQueryWrapper<CheckDiffItem>()
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/TaskSchedules.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/TaskSchedules.java
index 396b10b..f767169 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/TaskSchedules.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/TaskSchedules.java
@@ -138,25 +138,25 @@
 
     /**
      * 姣忎簲绉掓牎楠屾繁搴撲綅鏄惁涓虹┖锛屽鏋滄祬搴撲綅鏈夎揣锛屽皢娴呭簱浣嶇Щ鑷虫繁搴撲綅
-     */
-    @Scheduled(cron = "0/35 * * * * ?  ")
-    @Transactional(rollbackFor = Exception.class)
-    public void shallocToDeep() throws Exception {
-        List<Loc> locs = locService.list(new LambdaQueryWrapper<Loc>()
-                .eq(Loc::getUseStatus, LocStsType.LOC_STS_TYPE_O.type)
-                .in(Loc::getRow, rows));
-        if (locs.isEmpty()) {
-            return;
-        }
-        for (Loc loc : locs) {
-            String shallowLoc = LocUtils.getShallowLoc(loc.getCode());
-            Loc one = locService.getOne(new LambdaQueryWrapper<Loc>().eq(Loc::getCode, shallowLoc));
-            if (Objects.isNull(one) || !one.getUseStatus().equals(LocStsType.LOC_STS_TYPE_F.type)) {
-                continue;
-            }
-            taskService.moveToDeep(SystemAuthUtils.getLoginUserId(), shallowLoc);
-        }
-    }
+     *///TODO 鐢熸垚绉诲簱浠诲姟鍓嶏紝闇�瑕佹鏌ユ槸鍚︽湁浠诲姟鍓嶅線褰撳墠鎵樼洏
+//    @Scheduled(cron = "0/35 * * * * ?  ")
+//    @Transactional(rollbackFor = Exception.class)
+//    public void shallocToDeep() throws Exception {
+//        List<Loc> locs = locService.list(new LambdaQueryWrapper<Loc>()
+//                .eq(Loc::getUseStatus, LocStsType.LOC_STS_TYPE_O.type)
+//                .in(Loc::getRow, rows));
+//        if (locs.isEmpty()) {
+//            return;
+//        }
+//        for (Loc loc : locs) {
+//            String shallowLoc = LocUtils.getShallowLoc(loc.getCode());
+//            Loc one = locService.getOne(new LambdaQueryWrapper<Loc>().eq(Loc::getCode, shallowLoc));
+//            if (Objects.isNull(one) || !one.getUseStatus().equals(LocStsType.LOC_STS_TYPE_F.type)) {
+//                continue;
+//            }
+//            taskService.moveToDeep(SystemAuthUtils.getLoginUserId(), shallowLoc);
+//        }
+//    }
 
 
     /**
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/TaskServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/TaskServiceImpl.java
index b269e33..35c5b22 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/TaskServiceImpl.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/TaskServiceImpl.java
@@ -997,19 +997,23 @@
         tempLocs.forEach(working -> {
             taskItems.forEach(taskItem -> {
                 if (taskItem.getMatnrId().equals(working.getMatnrId())) {
-                    Double minQty = Math.round((working.getAnfme() - taskItem.getAnfme()) * 10000) / 10000.0;
+                    Double minQty = taskItem.getAnfme();
+                    if (!task.getTaskType().equals(TaskType.TASK_TYPE_CHECK_IN.type)) {
+                        minQty =  Math.round((working.getAnfme() - taskItem.getAnfme()) * 10000) / 10000.0;
+                    }
                     if (minQty.compareTo(0.0) > 0) {
                         taskItem.setAnfme(minQty);
                         if (!taskItemService.updateById(taskItem)) {
                             throw new CoolException("浠诲姟鏄庣粏淇敼澶辫触锛侊紒");
                         }
-
                     } else {
                         if (!taskItemService.removeById(taskItem)) {
                             throw new CoolException("浠诲姟鏄庣粏淇敼澶辫触锛侊紒");
                         }
                     }
                 }
+
+
             });
         });
         List<Long> matnrIds = taskItems.stream().map(TaskItem::getMatnrId).collect(Collectors.toList());
@@ -1035,7 +1039,7 @@
         });
 
         locItemWorkingService.remove(new LambdaQueryWrapper<LocItemWorking>().eq(LocItemWorking::getTaskId, task.getId()));
-        Loc loc1 = locService.getOne(new LambdaQueryWrapper<Loc>().eq(Loc::getCode, task.getOrgLoc()));
+        Loc loc1 = locService.getOne(new LambdaQueryWrapper<Loc>().eq(Loc::getCode, task.getTargLoc()));
         if (Objects.isNull(loc1)) {
             throw new CoolException("鐩爣搴撲綅涓嶅瓨鍦紒锛�");
         }

--
Gitblit v1.9.1