From 07fcaec39d580896b7c4779e48f4c8aa79d22812 Mon Sep 17 00:00:00 2001 From: lsh <lsh@163.com> Date: 星期四, 29 五月 2025 17:49:13 +0800 Subject: [PATCH] 新增PDA并板操作 --- src/main/java/com/zy/asrs/service/impl/LocMastServiceImpl.java | 10 + src/main/webapp/views/deviceOperate/errorTaskOperate.html | 492 +++++++++++++++++++++++++++++++++++++++++++++++++ src/main/java/com/zy/asrs/controller/BasErrorDeviceController.java | 50 +++++ src/main/resources/mapper/LocMastMapper.xml | 21 ++ src/main/java/com/zy/asrs/mapper/LocMastMapper.java | 2 src/main/java/com/zy/asrs/entity/param/ErrorDeviceParam.java | 16 + src/main/java/com/zy/asrs/service/LocMastService.java | 2 7 files changed, 593 insertions(+), 0 deletions(-) diff --git a/src/main/java/com/zy/asrs/controller/BasErrorDeviceController.java b/src/main/java/com/zy/asrs/controller/BasErrorDeviceController.java new file mode 100644 index 0000000..8f30756 --- /dev/null +++ b/src/main/java/com/zy/asrs/controller/BasErrorDeviceController.java @@ -0,0 +1,50 @@ +package com.zy.asrs.controller; + +import com.core.annotations.ManagerAuth; +import com.core.common.R; +import com.zy.asrs.entity.LocMast; +import com.zy.asrs.entity.param.ErrorDeviceParam; +import com.zy.asrs.service.LocMastService; +import com.zy.common.web.BaseController; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.util.ArrayList; +import java.util.List; + +@Slf4j +@RestController +@RequestMapping("error/device") +public class BasErrorDeviceController extends BaseController { + + @Autowired + private LocMastService locMastService; + + @RequestMapping(value = "/task/depthAndShallowness") + @ManagerAuth + public R taskDepthAndShallowness() { + ArrayList<ErrorDeviceParam> errorDeviceParamList = new ArrayList<>(); + List<LocMast> locMastList1 = locMastService.asrLocMastNotInDetl1(); + + for (LocMast locMast : locMastList1){ + ErrorDeviceParam errorDeviceParam = new ErrorDeviceParam(); + errorDeviceParam.setErrorM("搴撲綅涓篎浣嗘病鏈夋槑缁�"); + errorDeviceParam.setCategory("搴撲綅"); + errorDeviceParam.setEquipmentNo(locMast.getLocNo()); + errorDeviceParamList.add(errorDeviceParam); + } + + List<LocMast> locMastList2 = locMastService.asrLocMastNotInDetl2(); + + for (LocMast locMast : locMastList2){ + ErrorDeviceParam errorDeviceParam = new ErrorDeviceParam(); + errorDeviceParam.setErrorM("搴撲綅涓篠RQP浣嗘病鏈夊伐浣滄。妗�"); + errorDeviceParam.setCategory("搴撲綅"); + errorDeviceParam.setEquipmentNo(locMast.getLocNo()); + errorDeviceParamList.add(errorDeviceParam); + } + return R.ok(errorDeviceParamList); + } + +} diff --git a/src/main/java/com/zy/asrs/entity/param/ErrorDeviceParam.java b/src/main/java/com/zy/asrs/entity/param/ErrorDeviceParam.java new file mode 100644 index 0000000..105eace --- /dev/null +++ b/src/main/java/com/zy/asrs/entity/param/ErrorDeviceParam.java @@ -0,0 +1,16 @@ +package com.zy.asrs.entity.param; + +import lombok.Data; +/** + * Created by vincent on 2020/6/28 + */ +@Data +public class ErrorDeviceParam { + + private String category = "-";// 瀛楃涓� 绫诲埆 + private String equipmentNo = "-";// 鏄� 瀛楃涓� 璁惧鍙� + private String categoryOther = "-";// 瀛楃涓� 鐩稿叧璁惧绫诲埆 + private String equipmentNoOther = "-";// 瀛楃涓� 鐩稿叧璁惧鍙� + private String errorM = "-";// 瀛楃涓� 寮傚父鎻忚堪 + +} diff --git a/src/main/java/com/zy/asrs/mapper/LocMastMapper.java b/src/main/java/com/zy/asrs/mapper/LocMastMapper.java index d348646..9350973 100644 --- a/src/main/java/com/zy/asrs/mapper/LocMastMapper.java +++ b/src/main/java/com/zy/asrs/mapper/LocMastMapper.java @@ -14,6 +14,8 @@ public interface LocMastMapper extends BaseMapper<LocMast> { LocMast queryFreeLocMast(@Param("row") Integer row, @Param("locType1") Short locType1); + List<LocMast> asrLocMastNotInDetl1(); + List<LocMast> asrLocMastNotInDetl2(); @Select("select loc_no from asr_loc_mast where 1=1 and loc_sts = 'O' and crn_no = #{crnNo}") List<String> queryGroupEmptyStock(Integer crnNo); diff --git a/src/main/java/com/zy/asrs/service/LocMastService.java b/src/main/java/com/zy/asrs/service/LocMastService.java index b8d24c5..d5fc919 100644 --- a/src/main/java/com/zy/asrs/service/LocMastService.java +++ b/src/main/java/com/zy/asrs/service/LocMastService.java @@ -12,6 +12,8 @@ * 妫�绱㈠彲鐢ㄥ簱浣� */ LocMast queryFreeLocMast(Integer row, Short locType1); + List<LocMast> asrLocMastNotInDetl1(); + List<LocMast> asrLocMastNotInDetl2(); /** * 鑾峰彇鍚岀粍璐ф灦鐨勭┖搴撲綅 diff --git a/src/main/java/com/zy/asrs/service/impl/LocMastServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/LocMastServiceImpl.java index 11c5c07..bebbb96 100644 --- a/src/main/java/com/zy/asrs/service/impl/LocMastServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/LocMastServiceImpl.java @@ -25,6 +25,16 @@ } @Override + public List<LocMast> asrLocMastNotInDetl1() { + return this.baseMapper.asrLocMastNotInDetl1(); + } + + @Override + public List<LocMast> asrLocMastNotInDetl2() { + return this.baseMapper.asrLocMastNotInDetl2(); + } + + @Override public List<String> queryGroupEmptyStock(String sourceLocNo) { if (Cools.isEmpty(sourceLocNo)) { return null; diff --git a/src/main/resources/mapper/LocMastMapper.xml b/src/main/resources/mapper/LocMastMapper.xml index 82aa34b..622df9b 100644 --- a/src/main/resources/mapper/LocMastMapper.xml +++ b/src/main/resources/mapper/LocMastMapper.xml @@ -48,6 +48,27 @@ order by loc_sts desc ,lev1 asc,bay1 asc </select> +<!-- 搴撲綅涓篎浣嗘病鏈夋槑缁�--> + <select id="asrLocMastNotInDetl1" resultMap="BaseResultMap"> + SELECT a.* + FROM asr_loc_mast AS a + LEFT JOIN asr_loc_detl AS b ON a.loc_no = b.loc_no + WHERE a.loc_sts = 'F' + AND b.loc_no IS NULL + </select> + +<!-- 搴撲綅涓篠RQP浣嗘病鏈夊伐浣滄。妗�--> + <select id="asrLocMastNotInDetl2" resultMap="BaseResultMap"> + SELECT a.* + FROM asr_loc_mast AS a + WHERE a.loc_sts IN ('S','R','Q','P') + AND NOT EXISTS ( + SELECT 1 + FROM asr_wrk_mast AS d + WHERE a.loc_no = d.loc_no OR a.loc_no = d.source_loc_no + ) + </select> + <select id="queryShallowLocFMast" resultMap="BaseResultMap"> select * from asr_loc_mast where 1=1 diff --git a/src/main/webapp/views/deviceOperate/errorTaskOperate.html b/src/main/webapp/views/deviceOperate/errorTaskOperate.html new file mode 100644 index 0000000..faf33d4 --- /dev/null +++ b/src/main/webapp/views/deviceOperate/errorTaskOperate.html @@ -0,0 +1,492 @@ +<!DOCTYPE html> +<html lang="en"> + +<head> + <meta charset="UTF-8"> + <title>纭寲缃愯澶�</title> + <link rel="stylesheet" href="../../static/css/element.css"> + <link rel="stylesheet" href="../../static/css/element-ui.css"> + <link rel="icon" href="../../static/images/favicon.ico" type="image/x-icon"> + <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> +<style scoped> + +</style> + +<body> + <div id="app" style="display: flex;justify-content: center;flex-wrap: wrap;"> + <div style="width: 100%;"> + <el-table border ref="singleTable" :data="tableData" highlight-current-row @row-click="handleRowClick" + max-height="350" style="width: 100%"> + <el-table-column property="category" label="绫诲埆"> + </el-table-column> + <el-table-column property="equipmentNo" label="璁惧鍙�"> + </el-table-column> + <el-table-column property="categoryOther" label="鐩稿叧璁惧绫诲埆"> + </el-table-column> + <el-table-column property="equipmentNoOther" label="鐩稿叧璁惧鍙�"> + </el-table-column> + <el-table-column property="errorM" label="寮傚父鎻忚堪"> + </el-table-column> + </el-table> + </div> + + </div> + <script> + var app = new Vue({ + el: '#app', + data: { + showLayer: false, + valueUpdate: false, + selectedOption: null, + updateJarNo: null, + optionsUpdate: [ + { id: '1', value: '1', text: '1鎵�' }, + { id: '2', value: '2', text: '2鎵�' }, + { id: '3', value: '3', text: '3鎵�' }, + { id: '4', value: '4', text: '4鎵�' }, + { id: '5', value: '5', text: '5鎵�' }, + { id: '6', value: '6', text: '6鎵�' }, + { id: '7', value: '7', text: '7鎵�' }, + { id: '999', value: '999', text: '鍙栨秷' }, + ], + tableData: [], + currentRow: null, + currentTitle: "鏈�夋嫨璁惧", + currentIndex: null, + formParam: { + rgvNo: null, + sourceStaNo: null, + sourceRow: 1, + sourceBay: 0, + sourceLev: 1, + staNo: null, + row: 1, + bay: 0, + lev: 1, + barcode:null, + barcodeType:null, + emptyContainer:null + }, + formParamD: { + rgvNo: null, + sourceStaNo: null, + sourceRow: 1, + sourceBay: 0, + sourceLev: 1, + staNo: null, + row: 1, + bay: 0, + lev: 1, + barcode:null, + barcodeType:null, + emptyContainer:null + }, + enableIn: false, + enableOut: false, + options:[ + { + value:'1', + label:'鏄�' + }, + { + value:'0', + label:'鍚�' + } + ], + demo: 'X', + rgvMode: 0, + itemMast: [] + }, + created() { + this.init() + }, + watch: { + valueUpdate(newVal) { + if (newVal) { + this.showLayer = true; + // 鍙互鍦ㄨ繖閲屾坊鍔犲欢鏃跺叧闂眰鎴栧叾浠栭�昏緫 + } + }, + }, + methods: { + historicalTasks(){ + let that = this + that.selectedOption = 0; + that.valueUpdate = false; + if (that.currentIndex != null){ + $.ajax({ + url: baseUrl + "/basJarMastLog/historicalTasks/auth", + headers: { + 'token': localStorage.getItem('token') + }, + data:{ + id: that.tableData[that.currentIndex].jarNo + }, + success: function (res) { + that.itemMast = res.data + // console.log(that.itemMast) + } + }); + } + + }, + staTova(sta,end){ + let that = this + that.$confirm('姝ゆ搷浣滃瓨鍦ㄩ闄╋紝鏄惁缁х画','鎻愮ず',{ + confirmButtonText: '纭畾', + cancelButtonText: '鍙栨秷', + type: 'warning' + }).then(()=>{ + $.ajax({ + url: baseUrl + "/rgv/rgvDemoTask", + headers: { + 'token': localStorage.getItem('token') + }, + data:{ + rgvNo : this.formParam.rgvNo, + sta : sta, + end : end + }, + method: 'Get', + success: function (res) { + if (res.code == 200) { + that.$message({ + message: res.msg, + type: 'success' + }); + } else { + that.$message({ + message: res.msg, + type: 'error' + }); + } + } + }); + }) + }, + init() { + this.getTableData() + + setInterval(() => { + this.getTableData() + // this.demoStatus() + }, 1000) + }, + confirmEvent() { + var that = this + that.valueUpdate = true; + }, + cancelEvent() { + var that = this + that.valueUpdate = false; + }, + handleSubmit() { + if ( this.selectedOption > 998 ){ + this.selectedOption = 0; + this.valueUpdate = false; + } else if ( this.selectedOption > 0 ){ + var that = this + if (that.updateJarNo == null){ + console.log("this.updateJarNo;null;null;null;null;null") + } else { + $.ajax({ + url: baseUrl + "/basJar/update/uodate/jar/count/auth", + headers: { + 'token': localStorage.getItem('token') + }, + data: { + jarCount: that.selectedOption, + jarNo: that.updateJarNo + }, + success: function (res) { + if (res.code == 200) { + that.$message({ + message: res.msg, + type: 'success' + }); + } else { + that.$message({ + message: res.msg, + type: 'error' + }); + } + } + }); + } + this.selectedOption = 0; + this.valueUpdate = false; + } + }, + handleRowClick(row, col, event) { + var that = this + const index = that.tableData.indexOf(row) + that.currentRow = row; + that.currentIndex = index + this.updateJarNo = row.jarNo + that.currentTitle = row.jarNo + "鍙风~鍖栫綈" + that.formParam.rgvNo = row.rgvNo + that.enableIn = row.inEnable == "Y" ? true : false + that.enableOut = row.outEnable == "Y" ? true : false + this.selectedOption = 0; + this.valueUpdate = false; + + $.ajax({ + url: baseUrl + "/basJarMast/JatId/auth", + headers: { + 'token': localStorage.getItem('token') + }, + data: { + id: row.jarNo + }, + success: function (res) { + that.itemMast = res.data + // console.log(that.itemMast) + } + }); + }, + getTableData() { + let that = this; + $.ajax({ + url: baseUrl + "/error/device/task/depthAndShallowness", + headers: { + 'token': localStorage.getItem('token') + }, + data: {}, + dataType: 'json', + contentType: 'application/json;charset=UTF-8', + method: 'post', + success: function (res) { + that.tableData = res.data + } + }); + }, + demoStatus() { + let that = this; + $.ajax({ + url: baseUrl + "/rgv/demo/status", + data:{ + rgvNo : this.formParam.rgvNo + }, + headers: { + 'token': localStorage.getItem('token') + }, + contentType: 'application/json;charset=UTF-8', + method: 'get', + success: function (res) { + // console.log(res) + that.demo = res.data.demo + that.rgvMode = res.data.rgvMode + } + }); + }, + initiate(){ + let that = this + that.$confirm('姝ゆ搷浣滃瓨鍦ㄩ闄╋紝鏄惁缁х画','鎻愮ず',{ + confirmButtonText: '纭畾', + cancelButtonText: '鍙栨秷', + type: 'warning' + }).then(()=>{ + $.ajax({ + url: baseUrl + "/rgv/operator/put", + 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' + }); + } + } + }); + }) + }, + initiateD(method){ + let urlS = "/rgv/operator/single/step/three/put"; + if (method===1){ + urlS = "/rgv/operator/single/step/one/put"; + }else if (method === 2){ + urlS = "/rgv/operator/single/step/two/put"; + }else if (method === 3){ + urlS = "/rgv/operator/single/step/three/put"; + } + let that = this + that.$confirm('姝ゆ搷浣滃瓨鍦ㄩ闄╋紝鏄惁缁х画','鎻愮ず',{ + confirmButtonText: '纭畾', + cancelButtonText: '鍙栨秷', + type: 'warning' + }).then(()=>{ + $.ajax({ + url: baseUrl + urlS, + 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' + }); + } + } + }); + }) + }, + demos(method){ + let that = this + that.$confirm('姝ゆ搷浣滃瓨鍦ㄩ闄╋紝鏄惁缁х画','鎻愮ず',{ + confirmButtonText: '纭畾', + cancelButtonText: '鍙栨秷', + type: 'warning' + }).then(()=>{ + $.ajax({ + url: baseUrl + "/rgv/demo/status/" + method, + headers: { + 'token': localStorage.getItem('token') + }, + data:{ + rgvNo : this.formParam.rgvNo + }, + method: 'Get', + success: function (res) { + if (res.code == 200) { + that.$message({ + message: res.msg, + type: 'success' + }); + } else { + that.$message({ + message: res.msg, + type: 'error' + }); + } + } + }); + }) + }, + rgvStatus(method){ + let that = this + that.$confirm('姝ゆ搷浣滃瓨鍦ㄩ闄╋紝鏄惁缁х画','鎻愮ず',{ + confirmButtonText: '纭畾', + cancelButtonText: '鍙栨秷', + type: 'warning' + }).then(()=>{ + $.ajax({ + url: baseUrl + "/rgv/demo/status/rgvStatus", + headers: { + 'token': localStorage.getItem('token') + }, + data:{ + rgvNo : this.formParam.rgvNo, + status : Number(method) + }, + method: 'Get', + success: function (res) { + if (res.code == 200) { + that.$message({ + message: res.msg, + type: 'success' + }); + } else { + that.$message({ + message: res.msg, + type: 'error' + }); + } + } + }); + }) + }, + requestOperate(method) { + let that = this + that.$confirm('姝ゆ搷浣滃瓨鍦ㄩ闄╋紝鏄惁缁х画','鎻愮ず',{ + confirmButtonText: '纭畾', + cancelButtonText: '鍙栨秷', + type: 'warning' + }).then(()=>{ + $.ajax({ + url: baseUrl + "/rgv/operator/" + 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' + }); + } + } + }); + }) + + }, + updateEnableInOut(type) { + let that = this + let param = {} + if (type == "in") { + param = { + inEnable: this.enableIn ? "Y" : "N", + rgvNo: this.formParam.rgvNo + } + } else { + param = { + outEnable: this.enableOut ? "Y" : "N", + rgvNo: this.formParam.rgvNo + } + } + + $.ajax({ + url: baseUrl + "/basCrnp/update/auth", + headers: { + 'token': localStorage.getItem('token') + }, + data: param, + 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