From 54794979fc9ad0aacf21f4e47a84c24e8f675251 Mon Sep 17 00:00:00 2001
From: cl <1442464845@qq.com>
Date: 星期四, 07 五月 2026 18:15:41 +0800
Subject: [PATCH] 重发按钮权限

---
 rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/CloudWmsFeedbackResendServiceImpl.java |   29 +++++++--
 rsf-admin/src/page/orders/asnOrder/AsnOrderList.jsx                                                         |   27 ---------
 rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/AsnOrderLogController.java               |    2 
 rsf-server/src/main/java/com/vincent/rsf/server/manager/service/CloudWmsFeedbackResendService.java          |    4 
 rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/OutStockController.java                  |   20 +++---
 rsf-admin/src/page/orders/outStock/OutOrderList.jsx                                                         |   26 --------
 rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/WkOrderController.java                   |   20 +++---
 7 files changed, 44 insertions(+), 84 deletions(-)

diff --git a/rsf-admin/src/page/orders/asnOrder/AsnOrderList.jsx b/rsf-admin/src/page/orders/asnOrder/AsnOrderList.jsx
index e6e9f09..232d53e 100644
--- a/rsf-admin/src/page/orders/asnOrder/AsnOrderList.jsx
+++ b/rsf-admin/src/page/orders/asnOrder/AsnOrderList.jsx
@@ -51,7 +51,6 @@
 import CloseIcon from '@mui/icons-material/Close';
 import EditIcon from '@mui/icons-material/Edit';
 import TaskIcon from '@mui/icons-material/Task';
-import CloudUploadIcon from '@mui/icons-material/CloudUpload';
 import { styled } from '@mui/material/styles';
 import AsnOrderModal from "./AsnOrderModal";
 import request from '@/utils/request';
@@ -182,7 +181,6 @@
             <MyButton setCreateDialog={setCreateDialog} setmodalType={setmodalType} />
             {/* <InspectionButton /> 鎶ユ鎸夐挳鏆備笉浣跨敤 */}
             <CompleteButton />
-            <CloudWmsAsnReportButton />
             <ODeleteButton />
             <PrintButton setPrintOrder={setPrintOrder} setSelect={setSelect} />
             {/* <CloseButton /> */}
@@ -214,31 +212,6 @@
   )
 }
 export default AsnOrderList;
-
-/** manual锛氭斁琛岃鍗曟殏缂撶殑浜戜粨涓婃姤寰呭姙锛坰end_hold锛夛紱wait_order 涓�鑸敱璋冨害鏀捐 */
-const CloudWmsAsnReportButton = () => {
-  const record = useRecordContext();
-  const notify = useNotify();
-  const refresh = useRefresh();
-  const onClick = async (e) => {
-    e.stopPropagation();
-    try {
-      const res = await request.post('/asnOrder/cloudWmsReport/submit', { code: record?.code });
-      const { code, msg } = res.data || {};
-      if (code === 200) {
-        notify(msg || '宸叉彁浜�', { type: 'success' });
-        refresh();
-      } else {
-        notify(msg || '鎿嶄綔澶辫触', { type: 'warning' });
-      }
-    } catch (err) {
-      notify(err?.message || '璇锋眰澶辫触', { type: 'warning' });
-    }
-  };
-  return (
-    <Button label="浜戜粨涓婃姤" size="small" onClick={onClick} startIcon={<CloudUploadIcon />}/>
-  );
-};
 
 //鎸塒O鍗曟柊寤�
 const CreateByPoButton = ({ setPoCreate }) => {
diff --git a/rsf-admin/src/page/orders/outStock/OutOrderList.jsx b/rsf-admin/src/page/orders/outStock/OutOrderList.jsx
index 759bc77..26f90e3 100644
--- a/rsf-admin/src/page/orders/outStock/OutOrderList.jsx
+++ b/rsf-admin/src/page/orders/outStock/OutOrderList.jsx
@@ -59,7 +59,6 @@
 import TaskIcon from '@mui/icons-material/Task';
 import OutOrderPreview from "./OutOrderPreview";
 import AddIcon from '@mui/icons-material/Add';
-import CloudUploadIcon from '@mui/icons-material/CloudUpload';
 import OutStockPublic from "./OutStockPublic";
 import OutOrderModal from "./OutOrderModal";
 import request from '@/utils/request';
@@ -329,32 +328,7 @@
       {isInit && <MyButton setCreateDialog={setCreateDialog} setmodalType={setmodalType} />}
       <EditButton label="toolbar.detail" icon={(<DetailsIcon />)} />
       <PublicButton setDrawerVal={setDrawerVal} drawerVal={drawerVal} setSelect={setSelect} />
-      <CloudWmsOutReportButton />
     </>
-  );
-};
-
-const CloudWmsOutReportButton = () => {
-  const record = useRecordContext();
-  const notify = useNotify();
-  const refresh = useRefresh();
-  const onClick = async (e) => {
-    e.stopPropagation();
-    try {
-      const res = await request.post('/outStock/cloudWmsReport/submit', { code: record?.code });
-      const { code, msg } = res.data || {};
-      if (code === 200) {
-        notify(msg || '宸叉彁浜�', { type: 'success' });
-        refresh();
-      } else {
-        notify(msg || '鎿嶄綔澶辫触', { type: 'warning' });
-      }
-    } catch (err) {
-      notify(err?.message || '璇锋眰澶辫触', { type: 'warning' });
-    }
-  };
-  return (
-    <Button label="浜戜粨涓婃姤" size="small" onClick={onClick} startIcon={<CloudUploadIcon />} />
   );
 };
 
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/AsnOrderLogController.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/AsnOrderLogController.java
index 83b44d9..fcee372 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/AsnOrderLogController.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/AsnOrderLogController.java
@@ -36,7 +36,7 @@
     @PreAuthorize("hasAuthority('manager:asnOrderLog:cloudWmsResend')")
     @PostMapping("/asnOrderLog/cloudWms/resendFeedback/{id}")
     public R resendCloudWmsFeedback(@PathVariable Long id) {
-        return cloudWmsFeedbackResendService.resendInOutFeedbackByAsnOrderLogId(id);
+        return cloudWmsFeedbackResendService.submitInOutCloudWmsByAsnOrderLogId(id);
     }
 
     @PreAuthorize("hasAuthority('manager:asnOrderLog:list')")
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/OutStockController.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/OutStockController.java
index 5dfa878..d816dbf 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/OutStockController.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/OutStockController.java
@@ -26,7 +26,6 @@
 import com.vincent.rsf.server.manager.controller.params.AsnOrderAndItemsParams;
 import com.vincent.rsf.server.manager.entity.excel.AsnOrderTemplate;
 import com.vincent.rsf.server.manager.enums.AsnExceStatus;
-import com.vincent.rsf.server.manager.service.CloudWmsNotifyLogService;
 import com.vincent.rsf.server.manager.service.OutStockItemService;
 import com.vincent.rsf.server.manager.service.OutStockService;
 import com.vincent.rsf.server.system.constant.SerialRuleCode;
@@ -53,16 +52,15 @@
     private OutStockService outStockService;
     @Autowired
     private OutStockItemService outStockItemService;
-    @Autowired
-    private CloudWmsNotifyLogService cloudWmsNotifyLogService;
-
-    @ApiOperation("鎵嬪姩瑙﹀彂浜戜粨鍥為锛堝嚭搴撻�氱煡鍗曪紝鏀捐鏆傜紦涓婃姤锛�")
-    @PostMapping("/outStock/cloudWmsReport/submit")
-    @PreAuthorize("hasAuthority('manager:outStock:list')")
-    public R submitCloudWmsReportOutbound(@RequestBody(required = false) Map<String, Object> body) {
-        String code = body != null && body.get("code") != null ? String.valueOf(body.get("code")).trim() : null;
-        return cloudWmsNotifyLogService.manualFlushToNotifyByOrderCode(code, false);
-    }
+    // @Autowired
+    // private CloudWmsNotifyLogService cloudWmsNotifyLogService;
+    // @ApiOperation("鎵嬪姩瑙﹀彂浜戜粨鍥為锛堝嚭搴撻�氱煡鍗曪紝鏀捐鏆傜紦涓婃姤锛�")
+    // @PostMapping("/outStock/cloudWmsReport/submit")
+    // @PreAuthorize("hasAuthority('manager:outStock:cloudWmsReport')")
+    // public R submitCloudWmsReportOutbound(@RequestBody(required = false) Map<String, Object> body) {
+    //     String code = body != null && body.get("code") != null ? String.valueOf(body.get("code")).trim() : null;
+    //     return cloudWmsNotifyLogService.manualFlushToNotifyByOrderCode(code, false);
+    // }
 
     @PreAuthorize("hasAuthority('manager:outStock:list')")
     @PostMapping("/outStock/page")
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/WkOrderController.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/WkOrderController.java
index 320333a..18b01e0 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/WkOrderController.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/controller/WkOrderController.java
@@ -21,7 +21,6 @@
 import com.vincent.rsf.server.manager.entity.excel.AsnOrderTemplate;
 import com.vincent.rsf.server.manager.service.AsnOrderItemService;
 import com.vincent.rsf.server.manager.service.AsnOrderService;
-import com.vincent.rsf.server.manager.service.CloudWmsNotifyLogService;
 import com.vincent.rsf.server.manager.service.impl.PurchaseItemServiceImpl;
 import com.vincent.rsf.server.manager.service.impl.PurchaseServiceImpl;
 import com.vincent.rsf.server.system.constant.SerialRuleCode;
@@ -49,16 +48,15 @@
     private PurchaseServiceImpl purchaseService;
     @Autowired
     private PurchaseItemServiceImpl purchaseItemService;
-    @Autowired
-    private CloudWmsNotifyLogService cloudWmsNotifyLogService;
-
-    @ApiOperation("鎵嬪姩瑙﹀彂浜戜粨鍥為锛堝叆搴撻�氱煡鍗曪紝鏀捐鏆傜紦涓婃姤锛�")
-    @PostMapping("/asnOrder/cloudWmsReport/submit")
-    @PreAuthorize("hasAuthority('manager:asnOrder:list')")
-    public R submitCloudWmsReportInbound(@RequestBody(required = false) Map<String, Object> body) {
-        String code = body != null && body.get("code") != null ? String.valueOf(body.get("code")).trim() : null;
-        return cloudWmsNotifyLogService.manualFlushToNotifyByOrderCode(code, true);
-    }
+    // @Autowired
+    // private CloudWmsNotifyLogService cloudWmsNotifyLogService;
+    // @ApiOperation("鎵嬪姩瑙﹀彂浜戜粨鍥為锛堝叆搴撻�氱煡鍗曪紝鏀捐鏆傜紦涓婃姤锛�")
+    // @PostMapping("/asnOrder/cloudWmsReport/submit")
+    // @PreAuthorize("hasAuthority('manager:asnOrder:cloudWmsReport')")
+    // public R submitCloudWmsReportInbound(@RequestBody(required = false) Map<String, Object> body) {
+    //     String code = body != null && body.get("code") != null ? String.valueOf(body.get("code")).trim() : null;
+    //     return cloudWmsNotifyLogService.manualFlushToNotifyByOrderCode(code, true);
+    // }
 
     @PreAuthorize("hasAuthority('manager:asnOrder:list')")
     @PostMapping("/asnOrder/page")
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/CloudWmsFeedbackResendService.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/CloudWmsFeedbackResendService.java
index a7d576f..242ee9e 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/CloudWmsFeedbackResendService.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/CloudWmsFeedbackResendService.java
@@ -2,11 +2,11 @@
 
 import com.vincent.rsf.framework.common.R;
 
-/** 鎸夊嚭鍏ュ簱鍘嗗彶鍗曢噸鍙戜簯浠撳叆鍑哄簱鍙嶉锛堝啓鍏ユ垨鍒锋柊涓婃姤寰呭姙闃熷垪锛� */
+/** 鍑哄叆搴撳巻鍙插崟锛氫簯浠撳叆鍑哄簱涓婃姤锛堝厛灏濊瘯鏀捐鏆傜紦寰呭姙锛屽惁鍒欐寜鍘嗗彶涓婃姤璁板綍鍏ラ槦锛� */
 public interface CloudWmsFeedbackResendService {
 
     /**
      * @param asnOrderLogId man_asn_order_log / AsnOrderLog 涓婚敭
      */
-    R resendInOutFeedbackByAsnOrderLogId(Long asnOrderLogId);
+    R submitInOutCloudWmsByAsnOrderLogId(Long asnOrderLogId);
 }
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/CloudWmsFeedbackResendServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/CloudWmsFeedbackResendServiceImpl.java
index 74377ca..d7229ab 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/CloudWmsFeedbackResendServiceImpl.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/CloudWmsFeedbackResendServiceImpl.java
@@ -9,6 +9,7 @@
 import com.vincent.rsf.server.api.controller.erp.params.InOutResultReportParam;
 import com.vincent.rsf.server.manager.entity.AsnOrderLog;
 import com.vincent.rsf.server.manager.entity.CloudWmsNotifyLog;
+import com.vincent.rsf.server.manager.enums.OrderType;
 import com.vincent.rsf.server.manager.service.AsnOrderLogService;
 import com.vincent.rsf.server.manager.service.CloudWmsFeedbackResendService;
 import com.vincent.rsf.server.manager.service.CloudWmsNotifyLogService;
@@ -20,8 +21,7 @@
 import java.util.*;
 
 /**
- * 浠庡巻鍙蹭簯浠撲笂鎶ヨ褰曚腑鍙栥�屾渶鏂颁竴鏉°�嶆寜鏄庣粏缁村害鍘婚噸鍚庯紝澶嶅埗璇锋眰浣撳啓鍏ュ緟鍙戦�侀槦鍒楋紱
- * 鑻ュ凡瀛樺湪鐩稿悓璇锋眰浣撲笖浠嶄负寰呭彂閫�/澶辫触锛屽垯鏇存柊涓哄彲璋冨害鐘舵�侊紝涓嶉噸澶嶆彃鍏ャ��
+ * 鍘嗗彶鍗曡Е鍙戜簯浠撳叆鍑哄簱涓婃姤锛氫紭鍏堟斁琛岃鍗曟殏缂撳緟鍔烇紱鑻ユ棤鍒欎粠鍘嗗彶浜戜粨涓婃姤璁板綍澶嶅埗璇锋眰浣撳叆闃熴��
  */
 @Slf4j
 @Service
@@ -37,7 +37,7 @@
     private ObjectMapper objectMapper;
 
     @Override
-    public R resendInOutFeedbackByAsnOrderLogId(Long asnOrderLogId) {
+    public R submitInOutCloudWmsByAsnOrderLogId(Long asnOrderLogId) {
         if (asnOrderLogId == null) {
             return R.error("鍙傛暟涓嶈兘涓虹┖");
         }
@@ -47,8 +47,18 @@
         }
         String code = orderLog.getCode();
         if (StringUtils.isBlank(code)) {
-            return R.error("鍗曟嵁鍙蜂负绌猴紝鏃犳硶閲嶅彂");
+            return R.error("鍗曟嵁鍙蜂负绌�");
         }
+        boolean inbound = inboundFromOrderType(orderLog.getType());
+        R flushR = cloudWmsNotifyLogService.manualFlushToNotifyByOrderCode(code.trim(), inbound);
+        Object flushCode = flushR.get("code");
+        if (flushCode instanceof Number && ((Number) flushCode).intValue() == 200) {
+            return flushR;
+        }
+        return enqueueFromHistoricalNotifyLogs(asnOrderLogId, orderLog, code);
+    }
+
+    private R enqueueFromHistoricalNotifyLogs(Long asnOrderLogId, AsnOrderLog orderLog, String code) {
         String reportType = cloudWmsNotifyLogService.getReportTypeInOutResult();
         LambdaQueryWrapper<CloudWmsNotifyLog> qw = new LambdaQueryWrapper<CloudWmsNotifyLog>()
                 .eq(CloudWmsNotifyLog::getReportType, reportType)
@@ -91,7 +101,7 @@
             }
         }
         if (latestByLine.isEmpty()) {
-            return R.error("鏈壘鍒拌鍗曞彿瀵瑰簲鐨勪簯浠撳叆鍑哄簱涓婃姤璁板綍锛屾棤娉曢噸鍙�");
+            return R.error("鏈壘鍒拌鍗曞彿瀵瑰簲鐨勪簯浠撳叆鍑哄簱涓婃姤璁板綍");
         }
         Date now = new Date();
         int n = 0;
@@ -117,7 +127,14 @@
                 n++;
             }
         }
-        return R.ok("宸插姞鍏ヤ簯浠撻噸鍙戦槦鍒� " + n + " 鏉★紝灏嗙敱瀹氭椂浠诲姟鍙戦��").add(n);
+        return R.ok("宸插姞鍏ヤ簯浠撲笂鎶ラ槦鍒� " + n + " 鏉★紝灏嗙敱瀹氭椂浠诲姟鍙戦��").add(n);
+    }
+
+    private static boolean inboundFromOrderType(String type) {
+        if (StringUtils.isBlank(type)) {
+            return true;
+        }
+        return OrderType.ORDER_IN.type.equalsIgnoreCase(type.trim());
     }
 
     /**

--
Gitblit v1.9.1