From 2b1c858126f9c059bd6e308923eabfc71b1b4e7a Mon Sep 17 00:00:00 2001
From: pjb <pjb123456>
Date: 星期一, 11 八月 2025 17:03:53 +0800
Subject: [PATCH] *

---
 src/main/webapp/views/deviceOperate/devpOperate.html        |  145 ++++++++++++++++++++++++++++++++++++
 src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java |   19 ++++
 src/main/resources/mapper/WrkMastMapper.xml                 |    2 
 src/main/java/com/zy/asrs/task/handler/WorkLogHandler.java  |   11 ++
 src/main/java/com/zy/asrs/controller/WrkMastController.java |   51 ++++++++++++
 5 files changed, 225 insertions(+), 3 deletions(-)

diff --git a/src/main/java/com/zy/asrs/controller/WrkMastController.java b/src/main/java/com/zy/asrs/controller/WrkMastController.java
index 3a6a9c5..b9b0e58 100644
--- a/src/main/java/com/zy/asrs/controller/WrkMastController.java
+++ b/src/main/java/com/zy/asrs/controller/WrkMastController.java
@@ -12,6 +12,7 @@
 import com.core.common.R;
 import com.zy.asrs.entity.WrkMast;
 import com.zy.asrs.service.WrkMastService;
+import com.zy.common.service.CommonService;
 import com.zy.common.web.BaseController;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
@@ -23,6 +24,8 @@
 
     @Autowired
     private WrkMastService wrkMastService;
+    @Autowired
+    private CommonService commonService;
 
     @RequestMapping(value = "/wrkMast/{id}/auth")
     @ManagerAuth
@@ -166,4 +169,52 @@
     }
 
 
+
+    @GetMapping("/wrkMast/ioType120/list/auth")
+    @ManagerAuth(memo = "绔欎綅杞Щ浠诲姟鏁版嵁")
+    public R wrkMastIoType120Select(){
+        List<WrkMast> wrkMastList = wrkMastService.selectList(new EntityWrapper<WrkMast>().eq("io_type", 120));
+        return R.ok().add(wrkMastList);
+    }
+
+
+
+    @PostMapping("/wrkMast/ioType120/add")
+    @ManagerAuth(memo = "淇敼绔欑偣鏁版嵁")
+    public R wrkMastIoType120Add(@RequestParam Integer sourceStaNo,
+                            @RequestParam Integer staNo
+    ) {
+        // 鐢熸垚宸ヤ綔鍙�
+        int workNo = commonService.getWorkNo(4);
+        Date now = new Date();
+        // 鐢熸垚宸ヤ綔妗�
+        WrkMast wrkMast = new WrkMast();
+        wrkMast.setWrkNo(workNo);
+        wrkMast.setIoTime(now);
+        wrkMast.setWrkSts(51L); // 宸ヤ綔鐘舵�侊細鐢熸垚鍏ュ簱ID
+        wrkMast.setIoType(120); // 鍏ュ嚭搴撶姸鎬侊細1.鍏ュ簱
+        wrkMast.setIoPri(13D); // 浼樺厛绾э細13
+        wrkMast.setCrnNo(0);
+        wrkMast.setSourceStaNo(sourceStaNo);
+        wrkMast.setStaNo(staNo);
+        wrkMast.setLocNo("");
+        wrkMast.setBarcode(""); // 鎵樼洏鐮�
+        wrkMast.setFullPlt("Y"); // 婊℃澘锛歒
+        wrkMast.setPicking("N"); // 鎷f枡
+        wrkMast.setExitMk("N"); // 閫�鍑�
+        wrkMast.setEmptyMk("N"); // 绌烘澘
+        wrkMast.setLinkMis("N");
+//        wrkMast.setCtnType(sourceStaNo.getCtnType()); // 瀹瑰櫒绫诲瀷
+        wrkMast.setAppeUser(getUserId());
+        wrkMast.setAppeTime(now);
+        wrkMast.setModiUser(getUserId());
+        wrkMast.setModiTime(now);
+        if (!wrkMastService.insert(wrkMast)) {
+//            throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�");
+            return R.error().add("娣诲姞澶辫触");
+        }
+        return R.ok().add("娣诲姞鎴愬姛");
+    }
+
+
 }
diff --git a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
index eb267a2..b6df9d2 100644
--- a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -823,7 +823,7 @@
         if (wrkMast.getStaNo() == 1090 && wrkMast.getLocNo() == null) {
             throw new CoolException(workNo+"宸ヤ綔妗f棤娉曞畬鎴�,搴撲綅鍙蜂负绌猴紒");
         }
-        if (wrkMast.getWrkSts() == 4 || wrkMast.getWrkSts() == 14) {
+        if (wrkMast.getWrkSts() == 4L || wrkMast.getWrkSts() == 14L || wrkMast.getWrkSts() == 54L) {
             throw new CoolException("褰撳墠宸ヤ綔妗e凡瀹屾垚");
         }
         // 瀹屾垚绌烘《搴撳叆鍑哄簱浠诲姟鍙︿竴涓换鍔�
@@ -843,6 +843,9 @@
             workNoOther = wrkMast.getWorkNoOther();
         } else if(wrkMast.getIoType() == 1 && wrkMast.getWrkSts() == 10) {
             wrkMast.setWrkSts(2L);
+            wrkMast.setRgvFinishTime(new Date());
+        } else if(wrkMast.getIoType() == 120) {
+            wrkMast.setWrkSts(54L);
             wrkMast.setRgvFinishTime(new Date());
         }
         Date now = new Date();
@@ -1101,7 +1104,7 @@
         String locNo = ""; // 寰呬慨鏀圭洰鏍囧簱浣�
         String locSts = ""; // 寰呬慨鏀圭洰鏍囧簱浣嶇姸鎬�
         // 鍏ュ簱鍙栨秷锛堜慨鏀圭洰鏍囧簱浣嶏級
-        if (wrkMast.getWrkSts() <= 10) {
+        if (wrkMast.getWrkSts() <= 10  && wrkMast.getIoType()!=120) {
             locNo = wrkMast.getLocNo();
             locSts = "O";
 
@@ -1118,7 +1121,7 @@
                 locMastService.updateById(locMast);
             }
         // 鍑哄簱鍙栨秷锛堜慨鏀规簮搴撲綅锛�
-        } else if (wrkMast.getWrkSts() > 10 && wrkMast.getWrkSts() != 14) {
+        } else if (wrkMast.getWrkSts() > 10 && wrkMast.getWrkSts() != 14 && wrkMast.getIoType()!=120) {
             locNo = wrkMast.getSourceLocNo();
             if (wrkMast.getIoType() == 110) {
                 if(wrkMast.getStaNo() == 1035) { // 瀛愭媶鐩樻満绔欑偣
@@ -1143,6 +1146,16 @@
                 locMast.setModiUser(userId);
                 locMastService.updateById(locMast);
             }
+        } else if (wrkMast.getIoType()==120){
+            // 鍙栨秷鎿嶄綔浜哄憳璁板綍
+            wrkMast.setWrkSts(54L);
+            wrkMast.setManuType("鎵嬪姩鍙栨秷");
+            wrkMast.setModiUser(userId);
+            wrkMast.setModiTime(now);
+            if (!wrkMastService.updateById(wrkMast)) {
+                throw new CoolException("鍙栨秷宸ヤ綔妗eけ璐�");
+            }
+            return;
         } else {
             throw new CoolException("褰撳墠宸ヤ綔鐘舵�佹棤娉曞彇娑�");
         }
diff --git a/src/main/java/com/zy/asrs/task/handler/WorkLogHandler.java b/src/main/java/com/zy/asrs/task/handler/WorkLogHandler.java
index b8b099e..24b0928 100644
--- a/src/main/java/com/zy/asrs/task/handler/WorkLogHandler.java
+++ b/src/main/java/com/zy/asrs/task/handler/WorkLogHandler.java
@@ -99,6 +99,17 @@
 //                    }
 //                }
             }
+            if (wrkMast.getIoType()==120){
+                // 淇濆瓨宸ヤ綔涓绘。鍘嗗彶妗�
+                if (!wrkMastLogService.save(wrkMast.getWrkNo())) {
+                    exceptionHandle("淇濆瓨宸ヤ綔鍘嗗彶妗workNo={0}]澶辫触", wrkMast.getWrkNo());
+                }
+                // 鍒犻櫎宸ヤ綔涓绘。
+                if (!wrkMastService.deleteById(wrkMast)) {
+                    exceptionHandle("鍒犻櫎宸ヤ綔涓绘。[workNo={0}]澶辫触", wrkMast.getWrkNo());
+                }
+                return SUCCESS;
+            }
 
             // 淇濆瓨宸ヤ綔涓绘。鍘嗗彶妗�
             if (!wrkMastLogService.save(wrkMast.getWrkNo())) {
diff --git a/src/main/resources/mapper/WrkMastMapper.xml b/src/main/resources/mapper/WrkMastMapper.xml
index 890883e..4172273 100644
--- a/src/main/resources/mapper/WrkMastMapper.xml
+++ b/src/main/resources/mapper/WrkMastMapper.xml
@@ -86,6 +86,8 @@
         a.modi_time &lt;= DATEADD(s, -10, GETDATE()) OR
         a.crn_end_time IS NULL
         ))
+        OR
+        (a.wrk_sts = 54 AND a.io_type = 120)
         ) OPTION (RECOMPILE)
     </select>
 
diff --git a/src/main/webapp/views/deviceOperate/devpOperate.html b/src/main/webapp/views/deviceOperate/devpOperate.html
new file mode 100644
index 0000000..b5e219f
--- /dev/null
+++ b/src/main/webapp/views/deviceOperate/devpOperate.html
@@ -0,0 +1,145 @@
+<!DOCTYPE html>
+<html lang="en">
+
+<head>
+	<meta charset="UTF-8">
+	<title>鎵嬪姩绔欎綅杞Щ</title>
+	<link rel="stylesheet" href="../../static/css/element.css">
+	<script type="text/javascript" src="../../static/js/jquery/jquery-3.3.1.min.js"></script>
+	<script type="text/javascript" src="../../static/js/common.js"></script>
+	<script type="text/javascript" src="../../static/js/vue.min.js"></script>
+	<script type="text/javascript" src="../../static/js/element.js"></script>
+</head>
+
+<body>
+	<div id="app" style="display: flex;justify-content: center;flex-wrap: wrap;">
+		<div style="width: 100%;display: flex;justify-content: center;">
+			<div style="width: 100%;margin-right: 10px;">
+				<el-card class="box-card">
+					<div slot="header" class="clearfix">
+						<span>鎵嬪姩绔欎綅杞Щ</span>
+					</div>
+					<div>
+						<el-form :model="formParam" label-position="top" :inline="true" class="demo-form-inline">
+							<el-form-item label="婧愮珯">
+								<el-input v-model="formParam.sourceStaNo" placeholder="婧愮珯"></el-input>
+							</el-form-item>
+							<el-form-item label="鐩爣绔�">
+								<el-input v-model="formParam.staNo" placeholder="鐩爣绔�"></el-input>
+							</el-form-item>
+						</el-form>
+						<div>
+							<el-button @click="requestOperate('add')" type="primary">娣诲姞</el-button>
+						</div>
+					</div>
+				</el-card>
+			</div>
+		</div>
+
+		<div style="width: 100%;margin-top: 10px;">
+			<el-table ref="singleTable" :data="tableData" highlight-current-row @row-click="handleRowClick"
+				max-height="450" style="width: 100%">
+				<el-table-column property="wrkNo" label="宸ヤ綔鍙�">
+				</el-table-column>
+				<el-table-column property="wrkSts$" label="宸ヤ綔鐘舵��">
+				</el-table-column>
+				<el-table-column property="ioType$" label="鍏ュ嚭搴撶被鍨�">
+				</el-table-column>
+				<el-table-column property="sourceStaNo" label="婧愮珯">
+				</el-table-column>
+				<el-table-column property="staNo" label="鐩爣绔�">
+				</el-table-column>
+			</el-table>
+		</div>
+
+	</div>
+	<script>
+		var app = new Vue({
+			el: '#app',
+			data: {
+				tableData: [],
+				currentRow: null,
+				currentTitle: "鏈�夋嫨璁惧",
+				currentIndex: null,
+				formParam: {
+					sourceStaNo: null,
+					staNo: null
+				}
+			},
+			created() {
+				this.init()
+			},
+			watch: {
+
+			},
+			methods: {
+				init() {
+					this.getTableData()
+
+					setInterval(() => {
+						this.getTableData()
+					}, 1000)
+				},
+				handleRowClick(row, col, event) {
+					const index = this.tableData.indexOf(row)
+					this.currentRow = row;
+					this.currentIndex = index
+					this.currentTitle = row.devNo + "绔欑偣"
+					
+					this.formParam.devNo = row.devNo
+					this.formParam.workNo = row.workNo
+					this.formParam.staNo = row.staNo
+				},
+				getTableData() {
+					let that = this;
+					$.ajax({
+						url: baseUrl + "/wrkMast/ioType120/list/auth",
+						headers: {
+							'token': localStorage.getItem('token')
+						},
+						data: {},
+						dataType: 'json',
+						contentType: 'application/json;charset=UTF-8',
+						method: 'GET',
+						success: function (res) {
+							that.tableData = res.data
+						}
+					});
+				},
+				requestOperate(method) {
+					let that = this
+					that.$confirm('姝ゆ搷浣滃瓨鍦ㄩ闄╋紝鏄惁缁х画','鎻愮ず',{
+						confirmButtonText: '纭畾',
+						cancelButtonText: '鍙栨秷',
+						type: 'warning'
+					}).then(()=>{
+						$.ajax({
+							url: baseUrl + "/wrkMast/ioType120/"+method,
+							headers: {
+								'token': localStorage.getItem('token')
+							},
+							data: this.formParam,
+							method: 'POST',
+							success: function (res) {
+								if (res.code == 200) {
+									that.$message({
+										message: res.msg,
+										type: 'success'
+									});
+								} else {
+									that.$message({
+										message: res.msg,
+										type: 'error'
+									});
+								}
+							}
+						});
+					})
+
+				}
+			}
+		})
+	</script>
+</body>
+
+</html>
\ No newline at end of file

--
Gitblit v1.9.1