From 71725ae55cf54fa85be46f748528e2339643945c Mon Sep 17 00:00:00 2001
From: zjj <3272660260@qq.com>
Date: 星期一, 23 六月 2025 14:42:24 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/devlop' into devlop

---
 rsf-admin/src/page/orders/outStock/OutOrderItemList.jsx                                      |    2 +-
 rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/TaskServiceImpl.java    |    2 +-
 rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/LocItemServiceImpl.java |   19 +++++++++----------
 rsf-admin/src/page/orders/wave/WaveItemList.jsx                                              |    5 ++++-
 rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/WaveServiceImpl.java    |    9 ++++++++-
 rsf-admin/src/page/orders/outStock/OutOrderList.jsx                                          |    1 +
 rsf-admin/src/page/orders/outStock/SelectMatnrModal.jsx                                      |    2 --
 7 files changed, 24 insertions(+), 16 deletions(-)

diff --git a/rsf-admin/src/page/orders/outStock/OutOrderItemList.jsx b/rsf-admin/src/page/orders/outStock/OutOrderItemList.jsx
index 1f3564a..8095542 100644
--- a/rsf-admin/src/page/orders/outStock/OutOrderItemList.jsx
+++ b/rsf-admin/src/page/orders/outStock/OutOrderItemList.jsx
@@ -158,7 +158,7 @@
             </ReferenceField>,
             <DateField source="createTime" label="common.field.createTime" showTime />
             <TextField source="memo" label="common.field.memo" sortable={false} />
-          </StyledDatagrid>脧
+          </StyledDatagrid>
         </List>
         <OutOrderItemCreate
           open={createDialog}
diff --git a/rsf-admin/src/page/orders/outStock/OutOrderList.jsx b/rsf-admin/src/page/orders/outStock/OutOrderList.jsx
index 662f9b9..a74ca93 100644
--- a/rsf-admin/src/page/orders/outStock/OutOrderList.jsx
+++ b/rsf-admin/src/page/orders/outStock/OutOrderList.jsx
@@ -115,6 +115,7 @@
 const OutOrderList = (props) => {
   const translate = useTranslate();
   const refresh = useRefresh();
+  const notify = useNotify();
 
   const [createDialog, setCreateDialog] = useState(false);
   const [manualDialog, setManualDialog] = useState(false);
diff --git a/rsf-admin/src/page/orders/outStock/SelectMatnrModal.jsx b/rsf-admin/src/page/orders/outStock/SelectMatnrModal.jsx
index ca4245f..08e9a61 100644
--- a/rsf-admin/src/page/orders/outStock/SelectMatnrModal.jsx
+++ b/rsf-admin/src/page/orders/outStock/SelectMatnrModal.jsx
@@ -135,7 +135,6 @@
             if (res?.data?.code === 200) {
                 setOpen(false);
                 refresh();
-                billReload?.current()
                 resetData()
             } else {
                 notify(res.data.msg);
@@ -149,7 +148,6 @@
             if (res?.data?.code === 200) {
                 setOpen(false);
                 refresh();
-                billReload?.current()
                 resetData()
             } else {
                 notify(res.data.msg);
diff --git a/rsf-admin/src/page/orders/wave/WaveItemList.jsx b/rsf-admin/src/page/orders/wave/WaveItemList.jsx
index 961de23..990a0fd 100644
--- a/rsf-admin/src/page/orders/wave/WaveItemList.jsx
+++ b/rsf-admin/src/page/orders/wave/WaveItemList.jsx
@@ -33,6 +33,7 @@
     DeleteButton,
     useGetRecordId,
     Button,
+    useRefresh,
 } from 'react-admin';
 import { PAGE_DRAWER_WIDTH, OPERATE_MODE, DEFAULT_PAGE_SIZE } from '@/config/setting';
 import PauseCircleOutlineIcon from '@mui/icons-material/PauseCircleOutline';
@@ -191,6 +192,7 @@
     const { data, selectedIds, onUnselectItems } = useListContext();
     const waveId = useGetRecordId();
     const notify = useNotify();
+    const refresh = useRefresh()
     const startClick = async () => {
         onUnselectItems();
         const { data: { code, data, msg } } = await request.post('/wave/selects/task', { wave: waveId, waveItem: selectedIds });
@@ -200,6 +202,7 @@
         } else {
             notify(msg);
         }
+        refresh()
     }
     return (
         <Button label="toolbar.publicWorking" onClick={startClick} startIcon={<PlayArrowOutlinedIcon />} variant="outlined" />
@@ -213,6 +216,6 @@
         onUnselectItems();
     }
     return (
-        record?.exceStatus == 2 ? <Button label="toolbar.pause" onClick={pauseClick} startIcon={<PauseCircleOutlineIcon />} /> : <></>
+        record?.exceStatus == 1 ? <Button label="toolbar.pause" onClick={pauseClick} startIcon={<PauseCircleOutlineIcon />} /> : <></>
     )
 }
\ No newline at end of file
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 c1b7c48..36d255b 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
@@ -81,13 +81,12 @@
         listMap.keySet().forEach(key -> {
             Task task = new Task();
             Loc loc = locService.getById(key);
-            logger.info("搴撲綅锛�>{}<UNK>", loc.getCode());
-
+            logger.info("搴撲綅锛�>{}", loc.getCode());
             if (Objects.isNull(loc)) {
                 throw new CoolException("鏁版嵁閿欒锛氭墍閫夊簱瀛樹俊鎭笉瀛樺湪锛侊紒");
             }
             if (!loc.getUseStatus().equals(LocStsType.LOC_STS_TYPE_F.type)) {
-                throw new CoolException("搴撲綅:" + loc.getCode() +  ",涓嶅浜嶧.鍦ㄥ簱鐘舵�侊紝涓嶅彲鎵цR.鍑哄簱棰勭害鎿嶄綔锛侊紒");
+                throw new CoolException("搴撲綅:" + loc.getCode() + ",涓嶅浜嶧.鍦ㄥ簱鐘舵�侊紝涓嶅彲鎵цR.鍑哄簱棰勭害鎿嶄綔锛侊紒");
             }
 
             loc.setUseStatus(LocStsType.LOC_STS_TYPE_R.type);
@@ -202,15 +201,15 @@
                         .setUpdateTime(new Date())
                         .setOrderType(OrderType.ORDER_OUT.type)
                         .setWkType(Short.parseShort(OrderWorkType.ORDER_WORK_TYPE_STOCK_OUT.type));
-               if (map.getType().equals(Constants.TASK_TYPE_ORDER_OUT_STOCK)) {
+                if (map.getType().equals(Constants.TASK_TYPE_ORDER_OUT_STOCK)) {
                     taskItem.setWkType(Short.parseShort(order.getWkType()))
                             .setSourceCode(order.getCode())
                             .setSourceId(order.getId());
-               } else if (map.getType().equals(Constants.TASK_TYPE_OUT_CHECK) || map.getType().equals(Constants.TASK_TYPE_OUT_STOCK)) {
-                   taskItem.setSource(item.getId())
-                           .setSourceId(item.getLocId())
-                           .setSourceCode(item.getLocCode());
-               }
+                } else if (map.getType().equals(Constants.TASK_TYPE_OUT_CHECK) || map.getType().equals(Constants.TASK_TYPE_OUT_STOCK)) {
+                    taskItem.setSource(item.getId())
+                            .setSourceId(item.getLocId())
+                            .setSourceCode(item.getLocCode());
+                }
                 taskItems.add(taskItem);
 
                 Double qty = Math.round((item.getWorkQty() + item.getOutQty()) * 10000) / 10000.0;
@@ -274,7 +273,7 @@
         if (Objects.isNull(map.getTarLoc()) || StringUtils.isBlank(map.getTarLoc())) {
             //鐩爣搴撲綅涓虹┖锛岃嚜鍔ㄨ幏鍙栨柊搴撲綅
             DeviceSite deviceSite = deviceSiteService.getOne(new LambdaQueryWrapper<DeviceSite>()
-                            .eq(DeviceSite::getType, TaskType.TASK_TYPE_LOC_MOVE.type)
+                    .eq(DeviceSite::getType, TaskType.TASK_TYPE_LOC_MOVE.type)
                     .eq(DeviceSite::getChannel, orgLoc.getChannel()), false);
             if (Objects.isNull(deviceSite)) {
                 throw new CoolException("绔欑偣淇℃伅涓嶅瓨鍦紒锛�");
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 3430a52..f9b04ba 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
@@ -790,7 +790,7 @@
             List<TaskItem> taskItems = taskItemService.list(new LambdaQueryWrapper<TaskItem>().eq(TaskItem::getTaskId, task.getId()));
             if (!taskItems.isEmpty()) {
                 for (TaskItem item : taskItems) {
-                    if (item.getOrderType().equals(OrderType.ORDER_OUT.type)) {
+                    if (!Objects.isNull(item.getOrderType()) && item.getOrderType().equals(OrderType.ORDER_OUT.type)) {
                         Loc loc = locService.getOne(new LambdaQueryWrapper<Loc>().eq(Loc::getCode, task.getOrgLoc()));
                         if (Objects.isNull(loc)) {
                             throw new CoolException("鏁版嵁閿欒锛氬簱浣嶄俊鎭笉瀛樺湪锛侊紒");
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/WaveServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/WaveServiceImpl.java
index 4b61f5d..c4890eb 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/WaveServiceImpl.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/WaveServiceImpl.java
@@ -116,6 +116,13 @@
         if (items.isEmpty()) {
             throw new CoolException("娉㈡鏄庣粏涓嶅瓨鍦紒锛�");
         }
+
+        if (!waveItemService.update(new LambdaUpdateWrapper<WaveItem>()
+                .set(WaveItem::getExceStatus, WaveItemExceStatus.WAVE_EXCE_STATUS_ING.val)
+                .in(WaveItem::getId, waveItems))) {
+            throw new CoolException("涓嬪彂鎵ц寮傚父锛岃绋嶅�欓噸璇曪紒");
+        }
+
         /**鐢熸垚鍑哄簱浠诲姟*/
         try {
             generateOutTask(items, loginUserId, waves);
@@ -123,7 +130,7 @@
             log.error("UNK", e);
             throw new CoolException(e.getMessage());
         }
-        return null;
+        return R.ok();
     }
 
     /**

--
Gitblit v1.9.1