From ffeda1528cb303dee5f73e0a16ab4a21b2fcbe26 Mon Sep 17 00:00:00 2001
From: chen.lin <1442464845@qq.com>
Date: 星期二, 27 一月 2026 15:45:21 +0800
Subject: [PATCH] ERP生产管理-生成收料通知单-增加按钮重新同步 -对应前端

---
 src/main/webapp/views/erpReceiving/erpReceiving.html |  354 +++++++++++++++++++++++++++++++++++++++++-----------------
 1 files changed, 249 insertions(+), 105 deletions(-)

diff --git a/src/main/webapp/views/erpReceiving/erpReceiving.html b/src/main/webapp/views/erpReceiving/erpReceiving.html
index 80f51a8..75b08f2 100644
--- a/src/main/webapp/views/erpReceiving/erpReceiving.html
+++ b/src/main/webapp/views/erpReceiving/erpReceiving.html
@@ -13,88 +13,99 @@
 <body>
     <div id="app">
         <el-card>
-        <el-form :inline="true">
-            <el-form-item label="寮�宸ユ棩鏈�">
-                <el-date-picker
-                        v-model="tableSearchParam.fplancommitdate"
-                        type="date"
-                        placeholder="閫夋嫨鏃ユ湡"
-                        :default-value="defaultTime"
+            <el-form :inline="true">
+                <el-form-item label="寮�宸ユ棩鏈�">
+                    <el-date-picker v-model="tableSearchParam.fplancommitdate" type="date" placeholder="閫夋嫨鏃ユ湡"
+                        :default-value="defaultTime" />
+                </el-form-item>
+                <el-form-item label="鐢熶骇鍗曞彿">
+                    <el-input v-model="tableSearchParam.soCode" placeholder="璇疯緭鍏ョ敓浜у崟鍙�"></el-input>
+                </el-form-item>
+                <el-form-item label="杞﹂棿">
+                    <el-select v-model="tableSearchParam.depName" placeholder="閫夋嫨杞﹂棿" style="width: 240px">
+                        <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value" />
+                    </el-select>
+                </el-form-item>
+                <el-form-item label="">
+                    <el-button type="primary" @click="page" circle>
+                        <el-icon>
+                            <Search />
+                        </el-icon>
+                    </el-button>
+                </el-form-item>
+            </el-form>
+            <el-form :inline="true">
+                <el-form-item label="">
+                    <el-button type="primary" @click="tongbu">鍚屾</el-button>
+                </el-form-item>
+                <el-form-item label="">
+                    <el-button type="primary" @click="caneltongbu1">鎾ら攢鍚屾</el-button>
+                </el-form-item>
+                <el-form-item label="">
+                    <el-button type="primary" @click="tongbureturn">閫�鏂�</el-button>
+                </el-form-item>
+                <el-form-item label="">
+                    <el-button type="primary" @click="caneltongbureturn">鎾ら攢閫�鏂�</el-button>
+                </el-form-item>
+                <el-form-item label="">
+                    <el-button type="primary" @click="retongbu">閲嶆柊鍚屾</el-button>
+                </el-form-item>
+            </el-form>
+            <el-table :data="tableData" border style="width: 100%" row-key="finterid"
+                @selection-change="handleSelectionChange" max-height="650">
+                <el-table-column type="selection">
+                </el-table-column>
+                <el-table-column type="index" width="50">
+                </el-table-column>
+                <el-table-column prop="soCode" label="鐢熶骇鍗曞彿">
+                </el-table-column>
+                <el-table-column prop="fbillno" label="浠诲姟鍗曞彿">
+                </el-table-column>
+                <el-table-column prop="invCode" label="鐗╂枡缂栫爜">
+                </el-table-column>
+                <el-table-column prop="invName" label="鐗╂枡鍚嶇О" width="300" :show-overflow-tooltip="true">
+                </el-table-column>
+                <el-table-column prop="invStd" label="瑙勬牸" width="200" :show-overflow-tooltip="true">
+                </el-table-column>
+                <el-table-column prop="depName" label="杞﹂棿">
+                </el-table-column>
+                <el-table-column prop="fauxqty" label="鏁伴噺" width="90">
+                </el-table-column>
+                <el-table-column prop="fplancommitdate" label="璁″垝寮�宸ユ椂闂�">
+                </el-table-column>
+                <el-table-column prop="fplanfinishdate" label="璁″垝瀹屽伐鏃堕棿">
+                </el-table-column>
+                <el-table-column prop="izSyncReceive" label="鏄惁鍚屾" width="90">
+                </el-table-column>
+                <el-table-column prop="izSyncReceiveReturn" label="鏄惁閫�鏂�" width="90">
+                </el-table-column>
+            </el-table>
+            <!--            <div style="margin-top: 10px">-->
+            <!--                <el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange"-->
+            <!--                               :current-page="currentPage" :page-sizes="pageSizes" :page-size="pageSize"-->
+            <!--                               layout="total, sizes, prev, pager, next, jumper" :total="pageTotal">-->
+            <!--                </el-pagination>-->
+            <!--            </div>-->
 
-                />
-            </el-form-item>
-            <el-form-item label="鐢熶骇鍗曞彿">
-				<el-input v-model="tableSearchParam.soCode" placeholder="璇疯緭鍏ョ敓浜у崟鍙�"></el-input>
-			</el-form-item>
-            <el-form-item label="杞﹂棿">
-                <el-select v-model="tableSearchParam.depName" placeholder="閫夋嫨杞﹂棿" style="width: 240px" >
-                    <el-option
-                            v-for="item in options"
-                            :key="item.value"
-                            :label="item.label"
-                            :value="item.value"
-                    />
-                </el-select>
-            </el-form-item>
-            <el-form-item label="">
-                <el-button type="primary" @click="page" circle >
-                    <el-icon><Search /></el-icon>
-                </el-button>
-            </el-form-item>
-        </el-form>
-        <el-form :inline="true">
-            <el-form-item label="">
-               <el-button type="primary" @click="tongbu" >鍚屾</el-button>
-            </el-form-item>
-            <el-form-item label="">
-               <el-button type="primary" @click="caneltongbu1">鎾ら攢鍚屾</el-button>
-            </el-form-item>
-            <el-form-item label="">
-               <el-button type="primary" @click="tongbureturn">閫�鏂�</el-button>
-            </el-form-item>
-            <el-form-item label="">
-               <el-button type="primary" @click="caneltongbureturn">鎾ら攢閫�鏂�</el-button>
-            </el-form-item>
-        </el-form>
-        <el-table :data="tableData" border style="width: 100%" row-key="finterid" @selection-change="handleSelectionChange" max-height="650">
-            <el-table-column type="selection" >
-            </el-table-column>
-            <el-table-column type="index" width="50" >
-            </el-table-column>
-            <el-table-column prop="soCode" label="鐢熶骇鍗曞彿" >
-            </el-table-column>
-            <el-table-column prop="fbillno" label="浠诲姟鍗曞彿">
-            </el-table-column>
-            <el-table-column prop="invCode" label="鐗╂枡缂栫爜">
-            </el-table-column>
-            <el-table-column prop="invName" label="鐗╂枡鍚嶇О" width="300" show-overflow-tooltip="true">
-            </el-table-column>
-            <el-table-column prop="invStd" label="瑙勬牸" width="200" show-overflow-tooltip="true">
-            </el-table-column>
-            <el-table-column prop="depName" label="杞﹂棿">
-            </el-table-column>
-            <el-table-column prop="fauxqty" label="鏁伴噺" width="90">
-            </el-table-column>
-            <el-table-column prop="fplancommitdate" label="璁″垝寮�宸ユ椂闂�">
-            </el-table-column>
-            <el-table-column prop="fplanfinishdate" label="璁″垝瀹屽伐鏃堕棿">
-            </el-table-column>
-            <el-table-column prop="izSyncReceive" label="鏄惁鍚屾" width="90">
-            </el-table-column>
-            <el-table-column prop="izSyncReceiveReturn" label="鏄惁閫�鏂�" width="90">
-            </el-table-column>
-        </el-table>
-<!--            <div style="margin-top: 10px">-->
-<!--                <el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange"-->
-<!--                               :current-page="currentPage" :page-sizes="pageSizes" :page-size="pageSize"-->
-<!--                               layout="total, sizes, prev, pager, next, jumper" :total="pageTotal">-->
-<!--                </el-pagination>-->
-<!--            </div>-->
 
-            
         </el-card>
+        
+        <!-- 閲嶆柊鍚屾鏁伴噺杈撳叆寮圭獥 -->
+        <el-dialog v-model="retongbuDialogVisible" title="閲嶆柊鍚屾" width="400px">
+            <el-form :model="retongbuForm" label-width="100px">
+                <el-form-item label="鏁伴噺">
+                    <el-input-number v-model="retongbuForm.fauxqty" :min="0" :precision="0" style="width: 100%"></el-input-number>
+                </el-form-item>
+            </el-form>
+            <template #footer>
+                <span class="dialog-footer">
+                    <el-button @click="retongbuDialogVisible = false">鍙栨秷</el-button>
+                    <el-button type="primary" @click="submitRetongbu">鎻愪氦</el-button>
+                </span>
+            </template>
+        </el-dialog>
     </div>
-    
+
     <script type="text/javascript" src="../../static/js/jquery/jquery-3.3.1.min.js"></script>
     <script type="text/javascript" src="../../static/js/common.js" charset="utf-8"></script>
     <script src="../../static/evn/vue.global.js"></script>
@@ -102,21 +113,21 @@
     <script src="../../static/evn/icons-vue.js"></script>
     <script type="module">
         // 瀵煎叆涓枃璇█鍖�
-        import zhCn from './zh-cn.js';        
-        
+        import zhCn from '../../static/js/erp/zh-cn.js';
+
         const { createApp, ref, onMounted } = Vue;
-       
+
 
         const app = createApp({
             setup() {
                 const currentPage = ref(1)
-                const pageSizes = ref([15,20, 30, 50, 100, 200])
+                const pageSizes = ref([15, 20, 30, 50, 100, 200])
                 const pageSize = ref(15)
                 const pageTotal = ref(0)
                 const tableSearchParam = ref({
                     soCode: null,
                     fplancommitdate: new Date(),
-                    depName:null
+                    depName: null
                 })
                 const tableData = ref([])
                 const defaultTime = ref(new Date())
@@ -135,8 +146,12 @@
                 ]
 
                 const selectList = ref([])
-                
-                function page(){
+                const retongbuDialogVisible = ref(false)
+                const retongbuForm = ref({
+                    fauxqty: 0
+                })
+
+                function page() {
                     let data = JSON.parse(JSON.stringify(tableSearchParam.value))
                     data.curr = currentPage.value
                     data.limit = pageSize.value
@@ -144,8 +159,13 @@
                         data.datetime = null
                         data.create_time = tableSearchParam.value.datetime[0] + " - " + tableSearchParam.value.datetime[1]
                     }
+                    const loading = ElementPlus.ElLoading.service({
+                        lock: true,
+                        text: 'Loading',
+                        background: 'rgba(0, 0, 0, 0.7)',
+                    })
                     $.ajax({
-                        url: "http://127.0.0.1:9090/mo/materialreceive/getList",
+                        url: "http://127.0.0.1:8133/mo/materialreceive/getList",
                         headers: {
                             'token': localStorage.getItem('token')
                         },
@@ -153,10 +173,14 @@
                         dataType: 'json',
                         contentType: 'application/json;charset=UTF-8',
                         method: 'GET',
-                        success: function(res) {
+                        success: function (res) {
+                            loading.close()
                             if (res.code == 200) {
                                 tableData.value = res.data
-
+                                ElementPlus.ElMessage({
+                                    message: "鎷夊彇鏁版嵁瀹屾垚",
+                                    type: 'success'
+                                });
                             } else if (res.code === 403) {
                                 top.location.href = baseUrl + "/";
                             } else {
@@ -169,14 +193,21 @@
                     });
                 }
 
-                function tongbu(){
+                function tongbu() {
+                    if (selectList.value.length === 0) {
+                        ElementPlus.ElMessage({
+                            message: "璇峰厛閫夋嫨",
+                            type: 'error'
+                        });
+                        return;
+                    }
                     const loading = ElementPlus.ElLoading.service({
                         lock: true,
                         text: 'Loading',
                         background: 'rgba(0, 0, 0, 0.7)',
                     })
                     $.ajax({
-                        url:"http://127.0.0.1:9090/mo/materialreceive/tongbu",
+                        url: "http://127.0.0.1:8133/mo/materialreceive/tongbu",
                         headers: {
                             'token': localStorage.getItem('token')
                         },
@@ -184,13 +215,14 @@
                         dataType: 'json',
                         contentType: 'application/json;charset=UTF-8',
                         method: 'POST',
-                        success: function(res) {
+                        success: function (res) {
                             loading.close();
                             if (res.code == 200) {
                                 ElementPlus.ElMessage({
                                     message: "鍚屾瀹屾垚",
                                     type: 'success'
                                 });
+                                page()
                             } else if (res.code === 403) {
                                 top.location.href = baseUrl + "/";
                             } else {
@@ -203,14 +235,30 @@
                     });
                 }
 
-                function caneltongbu1(){
+                function caneltongbu1() {
+                    if (selectList.value.length === 0) {
+                        ElementPlus.ElMessage({
+                            message: "璇峰厛閫夋嫨",
+                            type: 'error'
+                        });
+                        return;
+                    }
+                    // 妫�鏌ユ槸鍚︽湁宸查��鏂欑殑璁板綍
+                    const hasReturned = selectList.value.some(item => item.izSyncReceiveReturn === '鏄�');
+                    if (hasReturned) {
+                        ElementPlus.ElMessage({
+                            message: "閫変腑鐨勬暟鎹腑瀛樺湪宸查��鏂欑殑璁板綍锛屼笉鍏佽鎾ら攢鍚屾",
+                            type: 'error'
+                        });
+                        return;
+                    }
                     const loading = ElementPlus.ElLoading.service({
                         lock: true,
                         text: 'Loading',
                         background: 'rgba(0, 0, 0, 0.7)',
                     })
                     $.ajax({
-                        url: "http://127.0.0.1:9090/mo/materialreceive/caneltongbu1",
+                        url: "http://127.0.0.1:8133/mo/materialreceive/caneltongbu1",
                         headers: {
                             'token': localStorage.getItem('token')
                         },
@@ -218,13 +266,14 @@
                         dataType: 'json',
                         contentType: 'application/json;charset=UTF-8',
                         method: 'POST',
-                        success: function(res) {
+                        success: function (res) {
                             loading.close();
                             if (res.code == 200) {
                                 ElementPlus.ElMessage({
                                     message: "鎾ら攢鍚屾瀹屾垚",
                                     type: 'success'
                                 });
+                                page()
                             } else if (res.code === 403) {
                                 top.location.href = baseUrl + "/";
                             } else {
@@ -237,14 +286,30 @@
                     });
                 }
 
-                function tongbureturn(){
+                function tongbureturn() {
+                    if (selectList.value.length === 0) {
+                        ElementPlus.ElMessage({
+                            message: "璇峰厛閫夋嫨",
+                            type: 'error'
+                        });
+                        return;
+                    }
+                    // 妫�鏌ユ槸鍚︽湁宸查��鏂欑殑璁板綍
+                    const hasReturned = selectList.value.some(item => item.izSyncReceive !== '鏄�');
+                    if (hasReturned) {
+                        ElementPlus.ElMessage({
+                            message: "閫変腑鐨勬暟鎹腑瀛樺湪鏈悓姝ョ殑璁板綍锛屼笉鍏佽鐢熸垚閫�鏂�",
+                            type: 'error'
+                        });
+                        return;
+                    }
                     const loading = ElementPlus.ElLoading.service({
                         lock: true,
                         text: 'Loading',
                         background: 'rgba(0, 0, 0, 0.7)',
                     })
                     $.ajax({
-                        url: "http://127.0.0.1:9090/mo/materialreceive/tongbureturn",
+                        url: "http://127.0.0.1:8133/mo/materialreceive/tongbureturn",
                         headers: {
                             'token': localStorage.getItem('token')
                         },
@@ -252,13 +317,14 @@
                         dataType: 'json',
                         contentType: 'application/json;charset=UTF-8',
                         method: 'POST',
-                        success: function(res) {
+                        success: function (res) {
                             loading.close();
                             if (res.code == 200) {
                                 ElementPlus.ElMessage({
                                     message: "閫�鏂欏畬鎴�",
                                     type: 'success'
                                 });
+                                page()
                             } else if (res.code === 403) {
                                 top.location.href = baseUrl + "/";
                             } else {
@@ -271,14 +337,21 @@
                     });
                 }
 
-                function caneltongbureturn(){
+                function caneltongbureturn() {
+                    if (selectList.value.length === 0) {
+                        ElementPlus.ElMessage({
+                            message: "璇峰厛閫夋嫨",
+                            type: 'error'
+                        });
+                        return;
+                    }
                     const loading = ElementPlus.ElLoading.service({
                         lock: true,
                         text: 'Loading',
                         background: 'rgba(0, 0, 0, 0.7)',
                     })
                     $.ajax({
-                        url: "http://127.0.0.1:9090/mo/materialreceive/caneltongbureturn",
+                        url: "http://127.0.0.1:8133/mo/materialreceive/caneltongbureturn",
                         headers: {
                             'token': localStorage.getItem('token')
                         },
@@ -286,13 +359,14 @@
                         dataType: 'json',
                         contentType: 'application/json;charset=UTF-8',
                         method: 'POST',
-                        success: function(res) {
+                        success: function (res) {
                             loading.close();
                             if (res.code == 200) {
                                 ElementPlus.ElMessage({
                                     message: "鎾ら攢閫�鏂欏畬鎴�",
                                     type: 'success'
                                 });
+                                page()
                             } else if (res.code === 403) {
                                 top.location.href = baseUrl + "/";
                             } else {
@@ -304,18 +378,84 @@
                         }
                     });
                 }
-                
+
+                function retongbu() {
+                    if (selectList.value.length === 0) {
+                        ElementPlus.ElMessage({
+                            message: "璇峰厛閫夋嫨",
+                            type: 'error'
+                        });
+                        return;
+                    }
+                    // 榛樿鏁伴噺涓虹涓�涓�変腑椤圭殑褰撳墠鏁伴噺
+                    if (selectList.value.length > 0 && selectList.value[0].fauxqty) {
+                        retongbuForm.value.fauxqty = selectList.value[0].fauxqty;
+                    } else {
+                        retongbuForm.value.fauxqty = 0;
+                    }
+                    retongbuDialogVisible.value = true;
+                }
+
+                function submitRetongbu() {
+                    if (!retongbuForm.value.fauxqty || retongbuForm.value.fauxqty <= 0) {
+                        ElementPlus.ElMessage({
+                            message: "璇疯緭鍏ユ湁鏁堢殑鏁伴噺",
+                            type: 'error'
+                        });
+                        return;
+                    }
+                    retongbuDialogVisible.value = false;
+                    const loading = ElementPlus.ElLoading.service({
+                        lock: true,
+                        text: 'Loading',
+                        background: 'rgba(0, 0, 0, 0.7)',
+                    })
+                    // 鏇存柊閫変腑椤圭殑鏁伴噺
+                    const dataList = selectList.value.map(item => {
+                        const newItem = JSON.parse(JSON.stringify(item));
+                        newItem.fauxqty = retongbuForm.value.fauxqty;
+                        return newItem;
+                    });
+                    $.ajax({
+                        url: "http://127.0.0.1:8133/mo/materialreceive/retongbu",
+                        headers: {
+                            'token': localStorage.getItem('token')
+                        },
+                        data: JSON.stringify(dataList),
+                        dataType: 'json',
+                        contentType: 'application/json;charset=UTF-8',
+                        method: 'POST',
+                        success: function (res) {
+                            loading.close();
+                            if (res.code == 200) {
+                                ElementPlus.ElMessage({
+                                    message: "閲嶆柊鍚屾瀹屾垚",
+                                    type: 'success'
+                                });
+                                page()
+                            } else if (res.code === 403) {
+                                top.location.href = baseUrl + "/";
+                            } else {
+                                ElementPlus.ElMessage({
+                                    message: res.msg,
+                                    type: 'error'
+                                });
+                            }
+                        }
+                    });
+                }
+
                 function handleSizeChange(val) {
                     pageSize.value = val
                     currentPage.value = 1 // 閲嶇疆鍒扮涓�椤�
                     page()
                 }
-                
+
                 function handleCurrentChange(val) {
                     currentPage.value = val
                     page()
                 }
-                function handleSelectionChange(val) {                    
+                function handleSelectionChange(val) {
                     console.log(val)
                     selectList.value = val
                 }
@@ -333,19 +473,23 @@
                     tableSearchParam,
                     defaultTime,
                     options,
+                    retongbuDialogVisible,
+                    retongbuForm,
                     page,
                     tongbu,
                     caneltongbu1,
                     tongbureturn,
                     caneltongbureturn,
+                    retongbu,
+                    submitRetongbu,
                     handleSizeChange,
                     handleCurrentChange,
                     handleSelectionChange
-                    
+
                 }
             }
         });
-        
+
         app.use(ElementPlus, {
             locale: zhCn.default || zhCn
         });

--
Gitblit v1.9.1