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