From 4efbf695ce0e0e6565e75305a57ea4c4bbc2c45d Mon Sep 17 00:00:00 2001
From: lty <876263681@qq.com>
Date: 星期一, 16 三月 2026 13:56:38 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/controller/OrderPakinController.java          |   36 +++++++++++
 src/main/java/com/zy/asrs/service/OrderDetlPakinService.java            |    2 
 src/main/java/com/zy/asrs/service/impl/OrderDetlPakinServiceImpl.java   |    5 +
 src/main/java/com/zy/asrs/mapper/OrderDetlPakinMapper.java              |    3 +
 src/main/java/com/zy/asrs/entity/OrderPakin.java                        |    3 +
 src/main/webapp/views/orderCargoGrouping/orderCargoGroupingOperate.html |   91 ++++++++++++++++++++++++++++++
 6 files changed, 138 insertions(+), 2 deletions(-)

diff --git a/src/main/java/com/zy/asrs/controller/OrderPakinController.java b/src/main/java/com/zy/asrs/controller/OrderPakinController.java
index e3222c9..540790e 100644
--- a/src/main/java/com/zy/asrs/controller/OrderPakinController.java
+++ b/src/main/java/com/zy/asrs/controller/OrderPakinController.java
@@ -90,7 +90,27 @@
         }
         wrapper.eq("status", 1);
         wrapper.eq("move_status", 0);
-        return R.ok(orderService.selectPage(new Page<>(curr, limit), wrapper));
+        Page<OrderPakin> page = orderService.selectPage(new Page<>(curr, limit), wrapper);
+        if (page != null && page.getRecords() != null) {
+            for (OrderPakin order : page.getRecords()) {
+                if (order == null || Cools.isEmpty(order.getOrderNo())) {
+                    continue;
+                }
+                int total = orderDetlPakinService.selectCount(new EntityWrapper<OrderDetlPakin>()
+                        .eq("order_no", order.getOrderNo())
+                        .eq("status", 1));
+                if (total <= 0) {
+                    order.setIssueComplete(0);
+                    continue;
+                }
+                int notComplete = orderDetlPakinService.selectCount(new EntityWrapper<OrderDetlPakin>()
+                        .eq("order_no", order.getOrderNo())
+                        .eq("status", 1)
+                        .where("be_batch is null or be_batch < anfme"));
+                order.setIssueComplete(notComplete <= 0 ? 1 : 0);
+            }
+        }
+        return R.ok(page);
     }
 
     @RequestMapping(value = "/actual/shipment/order/report/auth")
@@ -103,6 +123,20 @@
         return R.error("澶辫触").add("澶辫触");
     }
 
+    @RequestMapping(value = "/order/oneKey/issue/auth")
+    @ManagerAuth(memo = "涓�閿笅鍙�")
+    @Transactional
+    public R oneKeyIssue(@RequestParam String orderNo) {
+        if (Cools.isEmpty(orderNo)) {
+            return R.error("璁㈠崟鍙蜂笉鑳戒负绌�");
+        }
+        if (!orderDetlPakinService.issueAll(orderNo)) {
+            return R.error("涓嬪彂鏄庣粏鏇存柊澶辫触");
+        }
+        orderService.updateOrderStatus(orderNo);
+        return R.ok("鎴愬姛").add("鎴愬姛");
+    }
+
     @RequestMapping(value = "/order/detl/all/auth")
     @ManagerAuth
     public R head(@RequestParam Long orderId){
diff --git a/src/main/java/com/zy/asrs/entity/OrderPakin.java b/src/main/java/com/zy/asrs/entity/OrderPakin.java
index 8d853de..fd840ea 100644
--- a/src/main/java/com/zy/asrs/entity/OrderPakin.java
+++ b/src/main/java/com/zy/asrs/entity/OrderPakin.java
@@ -262,6 +262,9 @@
     @ApiModelProperty(value= "澶囨敞")
     private String memo;
 
+    @TableField(exist = false)
+    private Integer issueComplete;
+
     /**
      * 鐘舵�� 1: 杩涜涓�  0: 鍒濆  2:宸插畬鎴�
      */
diff --git a/src/main/java/com/zy/asrs/mapper/OrderDetlPakinMapper.java b/src/main/java/com/zy/asrs/mapper/OrderDetlPakinMapper.java
index edb4907..262ef56 100644
--- a/src/main/java/com/zy/asrs/mapper/OrderDetlPakinMapper.java
+++ b/src/main/java/com/zy/asrs/mapper/OrderDetlPakinMapper.java
@@ -65,4 +65,7 @@
 
     @Update("update man_order_detl_pakin set be_batch = #{beBatch} where id = #{id}")
     int updateBeBatch(@Param("id") Long id, @Param("beBatch") Integer beBatch);
+
+    @Update("update man_order_detl_pakin set inspect = 1, sorting_anfme = anfme, be_batch = cast(anfme as int) where order_no = #{orderNo} and status = 1")
+    int issueAll(@Param("orderNo") String orderNo);
 }
diff --git a/src/main/java/com/zy/asrs/service/OrderDetlPakinService.java b/src/main/java/com/zy/asrs/service/OrderDetlPakinService.java
index 890832b..bf474dd 100644
--- a/src/main/java/com/zy/asrs/service/OrderDetlPakinService.java
+++ b/src/main/java/com/zy/asrs/service/OrderDetlPakinService.java
@@ -52,4 +52,6 @@
 
     boolean updateBeBatch(Long id, Integer beBatch);
 
+    boolean issueAll(String orderNo);
+
 }
diff --git a/src/main/java/com/zy/asrs/service/impl/OrderDetlPakinServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/OrderDetlPakinServiceImpl.java
index e2be990..33d0d30 100644
--- a/src/main/java/com/zy/asrs/service/impl/OrderDetlPakinServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/OrderDetlPakinServiceImpl.java
@@ -124,6 +124,11 @@
     public boolean updateBeBatch(Long id, Integer beBatch) {
         return this.baseMapper.updateBeBatch(id, beBatch) > 0;
     }
+
+    @Override
+    public boolean issueAll(String orderNo) {
+        return this.baseMapper.issueAll(orderNo) > 0;
+    }
     
     @Override
     public boolean morpt(String orderNo,String orderNo1){
diff --git a/src/main/webapp/views/orderCargoGrouping/orderCargoGroupingOperate.html b/src/main/webapp/views/orderCargoGrouping/orderCargoGroupingOperate.html
index d71cd92..56912ad 100644
--- a/src/main/webapp/views/orderCargoGrouping/orderCargoGroupingOperate.html
+++ b/src/main/webapp/views/orderCargoGrouping/orderCargoGroupingOperate.html
@@ -157,6 +157,18 @@
 					<el-option label="閲嶆柊涓嬪彂" value="99"></el-option>
 				</el-select>
 			</div>
+			<div class="search-item">
+				<span class="search-label">鍒涘缓鏃ユ湡:</span>
+				<el-date-picker
+						v-model="selectedDate"
+						type="date"
+						value-format="yyyy-MM-dd"
+						placeholder="閫夋嫨鏃ユ湡"
+						clearable
+						style="width: 150px;"
+						@change="handleDateChange"
+				></el-date-picker>
+			</div>
 			<div class="search-actions">
 				<el-button type="primary" icon="el-icon-search" @click="handleSearch">鎼滅储</el-button>
 				<el-button icon="el-icon-refresh" @click="handleReset">閲嶇疆</el-button>
@@ -178,11 +190,24 @@
 <!--			<el-table-column prop="itemName" label="缁勮揣鍗曞彿" width="120" align="center" sortable="custom"></el-table-column>-->
 			<el-table-column prop="cstmrName" label="璐т富" min-width="120" align="center"></el-table-column>
 			<el-table-column prop="settle$" label="鐘舵��" min-width="100" align="center" :formatter="formatStatus"></el-table-column>
+			<el-table-column prop="issueComplete" label="涓嬪彂瀹屾垚" width="100" align="center">
+				<template slot-scope="scope">
+					<el-tag v-if="scope.row.issueComplete === 1" type="success">宸插叏涓嬪彂</el-tag>
+					<el-tag v-else type="info">鏈畬鎴�</el-tag>
+				</template>
+			</el-table-column>
 			<el-table-column prop="createTime" label="鍒涘缓鏃堕棿" min-width="100" align="center" :formatter="formatDateColumn"></el-table-column>
 			<el-table-column prop="updateTime" label="鏇存柊鏃ユ湡" min-width="100" align="center" :formatter="formatDateColumn"></el-table-column>
-			<el-table-column label="鎿嶄綔" width="150" align="center" fixed="right">
+			<el-table-column label="鎿嶄綔" width="220" align="center" fixed="right">
 				<template slot-scope="scope">
 					<div class="operation-cell">
+						<el-button
+								type="warning"
+								size="mini"
+								:disabled="scope.row.issueComplete === 1"
+								@click="oneKeyIssue(scope.row)">
+							涓�閿笅鍙�
+						</el-button>
 						<el-button
 								type="primary"
 								size="mini"
@@ -357,6 +382,7 @@
 				cstmrName: '',
 				settle: ''
 			},
+			selectedDate: '',
 			detailSearch: {
 				standby3: '',
 				boxType3: ''
@@ -456,6 +482,10 @@
 				if (that.orderByField) {
 					params.orderByField = that.orderByField;
 					params.orderByType = that.orderByType;
+				}
+
+				if (that.selectedDate) {
+					params['create_time'] = that.selectedDate + ' 00:00:00 - ' + that.selectedDate + ' 23:59:59';
 				}
 
 				Object.keys(that.searchForm).forEach(key => {
@@ -956,6 +986,11 @@
 				this.getTableDataA();
 			},
 
+			handleDateChange() {
+				this.currentPage = 1;
+				this.getTableDataA();
+			},
+
 			// 閲嶇疆鎼滅储鏉′欢
 			handleReset() {
 				this.searchForm = {
@@ -963,12 +998,66 @@
 					cstmrName: '',
 					settle: ''
 				};
+				this.selectedDate = '';
 				this.orderByField = '';
 				this.orderByType = 'asc';
 				this.currentPage = 1;
 				this.getTableDataA();
 			},
 
+			oneKeyIssue(row) {
+				if (!row || !row.orderNo) {
+					this.$message.error('璁㈠崟鍙蜂负绌�');
+					return;
+				}
+				const orderNo = row.orderNo;
+				this.$confirm(
+						`纭涓�閿笅鍙戣鍗曞彿 <strong style="color: #F56C6C; font-size: 16px;">${orderNo}</strong> 鐨勫叏閮ㄦ槑缁嗗悧锛焋,
+						'涓�閿笅鍙�',
+						{
+							confirmButtonText: '纭涓嬪彂',
+							cancelButtonText: '鍙栨秷',
+							type: 'warning',
+							dangerouslyUseHTMLString: true
+						}
+				).then(() => {
+					const loadingInstance = this.$loading({
+						lock: true,
+						text: '涓嬪彂涓�...',
+						spinner: 'el-icon-loading',
+						background: 'rgba(0, 0, 0, 0.7)'
+					});
+					$.ajax({
+						url: baseUrl + "/order/pakin/order/oneKey/issue/auth",
+						headers: {'token': localStorage.getItem('token')},
+						data: { orderNo: orderNo },
+						method: 'POST',
+						success: (res) => {
+							loadingInstance.close();
+							if (res.code === 200 || res.success) {
+								this.$message({
+									message: `璁㈠崟鍙� ${orderNo} 涓嬪彂鎴愬姛`,
+									type: 'success',
+									duration: 3000
+								});
+								this.getTableDataA();
+							} else {
+								this.$message.error(res.msg || '涓嬪彂澶辫触');
+							}
+						},
+						error: () => {
+							loadingInstance.close();
+							this.$message.error('涓嬪彂澶辫触锛岃妫�鏌ョ綉缁滆繛鎺�');
+						}
+					});
+				}).catch(() => {
+					this.$message({
+						type: 'info',
+						message: '宸插彇娑堟搷浣�'
+					});
+				});
+			},
+
 			// 鏄剧ず璇︽儏寮圭獥
 			showDetail(row) {
 				this.currentRow = row;

--
Gitblit v1.9.1