From b293a0710a4a43ca574d3897241a140a465f2b7d Mon Sep 17 00:00:00 2001
From: ZengTao <2773468879@qq.com>
Date: 星期四, 07 九月 2023 17:09:06 +0800
Subject: [PATCH] 更新代码(主页面报警信息,按订单出片时显示订单相关信息再确认)

---
 CanadaMes-ui/src/views/home/index.vue                                               |  190 ++++++++++++++++++++++++++++++--------
 CanadaMes-ui/src/api/home.js                                                        |   12 ++
 springboot-vue3/src/main/java/com/example/springboot/component/Plchome.java         |    5 
 springboot-vue3/src/main/java/com/example/springboot/mapper/HomeMapper.java         |   18 +++
 springboot-vue3/src/main/java/com/example/springboot/controller/HomeController.java |   19 +++
 5 files changed, 196 insertions(+), 48 deletions(-)

diff --git a/CanadaMes-ui/src/api/home.js b/CanadaMes-ui/src/api/home.js
index 7d62fb2..0f4e344 100644
--- a/CanadaMes-ui/src/api/home.js
+++ b/CanadaMes-ui/src/api/home.js
@@ -43,9 +43,17 @@
     })
 }
 
-export function UpdateTask(types,shelf_rack) {
+export function UpdateTask(types,shelfrack) {
     return request({
-        url: '/home/UpdateTask?types=' + types + '&shelf_rack'+shelf_rack,
+        url: '/home/UpdateTask?types=' + types + '&shelfrack='+shelfrack,
+        method: 'get',
+        data :""
+    })
+}
+
+export function SelectAlarmmgInfo() {
+    return request({
+        url: '/home/SelectAlarmmgInfo',
         method: 'get',
         data :""
     })
diff --git a/CanadaMes-ui/src/views/home/index.vue b/CanadaMes-ui/src/views/home/index.vue
index f5ca385..7900d17 100644
--- a/CanadaMes-ui/src/views/home/index.vue
+++ b/CanadaMes-ui/src/views/home/index.vue
@@ -73,7 +73,7 @@
 
 
 .blocks {
-    min-height: 50vh;
+    min-height: 49vh;
     max-width: 100vw;
     background-image: url('../../img/xmjc.png');
     margin: 0 auto;
@@ -110,36 +110,74 @@
 .el-table__empty-text {
     line-height: 41px;
 }
+
+.box {
+    width: 90%;
+    margin-left: 5%;
+    height: 35px;
+    color: red;
+    font-size: 12px;
+    overflow: hidden;
+}
+
+.text {
+    width: auto;
+    line-height: 35px;
+    white-space: nowrap;
+    animation: textScroll 20s linear infinite;
+    margin: 0 auto;
+}
+
+@keyframes textScroll {
+    0% {
+        transform: translateX(100%);
+    }
+
+    100% {
+        transform: translateX(-150%);
+    }
+}
 </style>
 <template>
     <el-container>
         <!-- <el-header style="padding: 10px;"></el-header> -->
         <el-main>
+            <div class="box">
+                <div class="text">
+                    Alarm:
+                    <label v-for="item in this.alarm" :key="item['id']">
+                        {{ item['content'] }}
+                    </label>
+                </div>
+            </div>
+
             <div style="display:flex;justify-content: space-around;width: 95%;margin: 0 auto;">
                 <el-input style="width:15%;" placeholder="Enter the glass lD" v-model="glassid"></el-input>
                 <el-button type="primary" @click="showform()">Manually feed the glass</el-button>
                 <el-input style="width:15%;" placeholder="Enter the order number" v-model="order"></el-input>
-                <el-button type="warning" @click="getOrder()">Exit the glass by order number</el-button>
+                <el-button type="warning" @click="showform1();">Exit the glass by order number</el-button>
             </div>
             <div>
-                <el-table :data="this.tasklist1" border style="width: 100%" >
+                <el-table :data="this.tasklist1" border style="width: 100%">
                     <el-table-column prop="glassId" label="Coming out glass ID"></el-table-column>
-                    <el-table-column :width="250" prop="cage" label="The Grille number being used"></el-table-column>
+                    <el-table-column :width="250" prop="cell" label="The Grille number being used"></el-table-column>
                     <el-table-column prop="orderId" label="Order Nmuber"></el-table-column>
                     <el-table-column prop="lengthwidth" label="Length and width"></el-table-column>
                     <el-table-column prop="coating" label="coating"></el-table-column>
                     <el-table-column label="Operate">
-                        <el-button type="primary" style="padding: 4px 10px;font-size: 12px;">end task</el-button>
+                        <el-button type="primary" style="padding: 4px 10px;font-size: 12px;" @click="endtask(0)">end
+                            task</el-button>
                     </el-table-column>
                 </el-table>
                 <el-table :data="this.tasklist2" border style="width: 100%">
                     <el-table-column prop="glassId" label="Incoming glass ID"></el-table-column>
-                    <el-table-column :width="250" prop="cage" label="The Grille number being used"></el-table-column>
+                    <el-table-column :width="250" prop="cell" label="The Grille number being used"></el-table-column>
                     <el-table-column prop="orderId" label="Order Nmuber"></el-table-column>
                     <el-table-column prop="lengthwidth" label="Length and width"></el-table-column>
                     <el-table-column prop="coating" label="coating"></el-table-column>
                     <el-table-column label="Operate">
-                        <el-button type="primary" style="padding: 4px 10px;font-size: 12px;">end task</el-button>
+                        <el-button type="primary" style="padding: 4px 10px;font-size: 12px;" @click="endtask(1)">end
+                            task</el-button>
                     </el-table-column>
                 </el-table>
             </div>
@@ -180,7 +218,7 @@
         </el-footer>
         <el-dialog :visible.sync="dialogFormVisible" title="Please confirm the information">
             <el-form :model="form" label-width="100px" style="padding-right: 30px">
-                <el-form-item label="Order">
+                <el-form-item label="order">
                     <el-input v-model="form.orderno" autocomplete="off" />
                 </el-form-item>
                 <el-form-item label="length">
@@ -200,12 +238,28 @@
                 </span>
             </template>
         </el-dialog>
+        <el-dialog :visible.sync="dialogFormVisible1" title="Ordering Information">
+            <el-form :model="form1" label-width="100px" style="padding-right: 30px">
+                <el-form-item label="order">
+                    <el-input v-model="form1.order" autocomplete="off" />
+                </el-form-item>
+                <el-form-item label="number">
+                    <el-input v-model="form1.number" autocomplete="off" />
+                </el-form-item>
+            </el-form>
+            <template #footer>
+                <span class="dialog-footer">
+                    <el-button @click="cancal1()">cancal</el-button>
+                    <el-button @click="getOrder();" type="primary">confirm</el-button>
+                </span>
+            </template>
+        </el-dialog>
     </el-container>
 </template>
   
 <script>
 
-import { home, home2, loadtask, InsertOrder, Addglassid } from "../../api/home";
+import { home, home2, loadtask, InsertOrder, Addglassid, UpdateTask, SelectAlarmmgInfo } from "../../api/home";
 
 let socket;
 export default {
@@ -213,12 +267,18 @@
     data() {
         return {
             dialogFormVisible: false,
+            dialogFormVisible1: false,
             form: {
                 orderno: "NG2210210",
                 length: 800,
                 width: 1000,
                 coating: "red",
             },
+            form1: {
+                order: "NG2210210",
+                number: 800,
+            },
+            alarm: [],
             tableData: [],
             cagelist1: [],
             cagelist2: [],
@@ -232,7 +292,9 @@
             glassid: "",
             url: "../../img/bigcar01.png",
             car1: 116,
-            car2: 187
+            car2: 187,
+            incell: "",
+            outcell: ""
         };
     },
     created() {
@@ -268,14 +330,20 @@
 
                     this.car1 = 116 + 18.88 * obj.params[0][0];
                     this.car2 = 187 + 18.8 * obj.params[0][1];
-                    this.tableData=obj.tableData[0];
-                    this.cagelist1=obj.cagelist1[0];
-                    this.cagelist2=obj.cagelist2[0];
-                    this.cagelist3=obj.cagelist3[0];
-                    this.cagelist4=obj.cagelist4[0];
-                    this.tasklist1=obj.tasklist1[0];
-                    this.tasklist2=obj.tasklist2[0];
-                
+                    this.tableData = obj.tableData[0];
+                    this.cagelist1 = obj.cagelist1[0];
+                    this.cagelist2 = obj.cagelist2[0];
+                    this.cagelist3 = obj.cagelist3[0];
+                    this.cagelist4 = obj.cagelist4[0];
+                    this.tasklist1 = obj.tasklist1[0];
+                    this.tasklist2 = obj.tasklist2[0];
+                    if (this.tasklist1.length > 0) {
+                        this.incell = this.tasklist1[0]['cell'];
+                    }
+                    if (this.tasklist1.length > 0) {
+                        this.outcell = this.tasklist2[0]['cell'];
+                    }
+                    this.alarm = obj.alarmmg[0];
                     // for (let a = 0; a <= this.record.params.length - 1; a++) {
                     //     // this.record.xyData[a] = [this.record.canshu[a], this.record.params[0][a]];
                     //     // this.record.xyData[a] = { name: this.record.canshu[a], value: this.record.params[0][a] };
@@ -311,14 +379,23 @@
             });
             loadtask(this.task1).then(res => {
                 this.tasklist1 = res.data.list;
-                console.log(this.tasklist1);
+                if (res.data.list.length > 0) {
+                    this.incell = this.tasklist1[0]['cell'];
+                }
             });
             loadtask(this.task2).then(res => {
                 this.tasklist2 = res.data.list;
+                if (res.data.list.length > 0) {
+                    this.outcell = this.tasklist2[0]['cell'];
+                }
+
             });
             loadtask(this.task2).then(res => {
                 this.tasklist2 = res.data.list;
-                
+
+            });
+            SelectAlarmmgInfo().then(res => {
+                this.alarm = res.data.alarmmg;
             });
         },
         //鏍规嵁鏍煎瓙鐘舵�佷慨鏀归鑹�
@@ -337,7 +414,7 @@
         },
         //鎸夎鍗曞嚭鐗�
         getOrder() {
-            if (this.order != "") {
+            if (this.form1.order != "") {
                 InsertOrder(this.order).then(res => {
                     if (res.data.message == 200) {
                         this.$message.success("Operation successful");
@@ -349,23 +426,9 @@
             }
 
         },
-        showform() {
-            this.form =
-            {
-                orderno: "NG2210210",
-                length: 800,
-                width: 1000,
-                coating: "red",
-            };
-            this.dialogFormVisible = true;
-        },
-        cancal() {
-            this.dialogFormVisible = false;
-            this.form = {};
-        },
         //鎵嬪姩涓婄墖
         sbumitglassid() {
-            if (this.glassid != "") {
+            if (this.form.order != "") {
                 Addglassid(this.glassid).then(res => {
                     if (res.data.message2 == 200) {
                         this.$message.success("Operation successful");
@@ -376,12 +439,59 @@
                 });
             }
         },
-        endtask(type,shelfrack) {
-            alert(type);
-            alert(shelfrack);
+        showform() {
+            if (this.glassid != "") {
+                this.form =
+                {
+                    orderno: "NG2210210",
+                    length: 800,
+                    width: 1000,
+                    coating: "red",
+                };
+                this.dialogFormVisible = true;
+            }
+        },
+        showform1() {
+            if (this.order != "") {
+                this.form1 =
+                {
+                    order: "NG2210210",
+                    number: 800,
+                };
+                this.dialogFormVisible1 = true;
+            }
+
+
+        },
+        cancal() {
+            this.dialogFormVisible = false;
+            this.form = {};
+        },
+        cancal1() {
+            this.dialogFormVisible1 = false;
+            this.form1 = {};
+        },
+        endtask(type) {
+            if (type == 0) {
+                UpdateTask(type, this.incell).then(res => {
+                    if (res.data.message3 == 200) {
+                        this.$message.success("Operation successful");
+                    }
+                });
+            } else {
+                UpdateTask(type, this.outcell).then(res => {
+                    if (res.data.message3 == 200) {
+                        this.$message.success("Operation successful");
+                    }
+                });
+            }
+
+
         }
+
     }
-};
+}
+
 
 
 </script>
\ No newline at end of file
diff --git a/springboot-vue3/src/main/java/com/example/springboot/component/Plchome.java b/springboot-vue3/src/main/java/com/example/springboot/component/Plchome.java
index 6450dc5..c6ce249 100644
--- a/springboot-vue3/src/main/java/com/example/springboot/component/Plchome.java
+++ b/springboot-vue3/src/main/java/com/example/springboot/component/Plchome.java
@@ -7,6 +7,7 @@
 import org.springframework.context.ConfigurableApplicationContext;
 
 import com.example.springboot.entity.StorageCage;
+import com.example.springboot.entity.alarmmg;
 import com.example.springboot.mapper.HomeMapper;
 
 public class Plchome extends Thread {
@@ -42,7 +43,9 @@
             List<StorageCage> tasklist2=homeMapper.selectinout(3);
             jsonObject.append("tasklist1", tasklist1);
             jsonObject.append("tasklist2", tasklist2);
-
+            //鏌ヨ鎶ヨ淇℃伅
+            List<alarmmg> alarmmg=homeMapper.SelectAlarmmgInfo();
+            jsonObject.append("alarmmg", alarmmg);
             //璇诲幓Plc杩涚墖杞︿笌鍑虹墖杞︿綅缃�
             // List<String> addressList = new ArrayList<>();
             // addressList.add("DB100.DBW0");
diff --git a/springboot-vue3/src/main/java/com/example/springboot/controller/HomeController.java b/springboot-vue3/src/main/java/com/example/springboot/controller/HomeController.java
index f21eb5f..4216a59 100644
--- a/springboot-vue3/src/main/java/com/example/springboot/controller/HomeController.java
+++ b/springboot-vue3/src/main/java/com/example/springboot/controller/HomeController.java
@@ -10,6 +10,7 @@
 import com.example.springboot.service.HomeService;
 import com.example.springboot.common.Result;
 import com.example.springboot.entity.StorageCage;
+import com.example.springboot.entity.alarmmg;
 
 import org.springframework.web.bind.annotation.*;
 
@@ -81,12 +82,24 @@
     }
 
     @GetMapping("/UpdateTask")
-    public Result UpdateTask(Integer types,Integer shelf_rack){
+    public Result UpdateTask(Integer types,Integer shelfrack){
         Map<String, Object> map = new HashMap<>();
-        homeMapper.UpdateTask(types,shelf_rack);
-        map.put("message2","200");
+        homeMapper.UpdateTask(types,shelfrack);
+        if(types==0){
+            homeMapper.UpdateCageTask1(shelfrack);
+        }else{
+            homeMapper.UpdateCageTask2(shelfrack);
+        }
+        map.put("message3","200");
         return Result.success(map);
     }
 
+    @GetMapping("/SelectAlarmmgInfo")    
+    public Result SelectAlarmmgInfo(){
+        List<alarmmg> alarmmg=homeMapper.SelectAlarmmgInfo();
+        Map<String, Object> map = new HashMap<>();
+        map.put("alarmmg",alarmmg);
+        return Result.success(map);
+    }
     
 }
diff --git a/springboot-vue3/src/main/java/com/example/springboot/mapper/HomeMapper.java b/springboot-vue3/src/main/java/com/example/springboot/mapper/HomeMapper.java
index fd4f6b4..c0ea329 100644
--- a/springboot-vue3/src/main/java/com/example/springboot/mapper/HomeMapper.java
+++ b/springboot-vue3/src/main/java/com/example/springboot/mapper/HomeMapper.java
@@ -3,11 +3,13 @@
 import org.apache.ibatis.annotations.*;
 
 import com.example.springboot.entity.StorageCage;
+import com.example.springboot.entity.alarmmg;
 
 import java.util.List;
 
 @Mapper
 public interface HomeMapper {
+  //鏌ヨ姣忎釜绗煎瓙鐨勪娇鐢ㄦ儏鍐�
   @Select("SELECT cage,round(round(sum(state)/42,2)*100) as cell,42-sum(state) as state FROM storage_cage group by cage")
   List<StorageCage> selectAll();
 
@@ -48,6 +50,18 @@
   short SelectOutTask();
 
   // 鎵嬪姩瀹屾垚浠诲姟
-  @Select("update storage_task set state=1 where shelf_rack=#{shelf_rack} and task_type=#{task_type} and task_state=0")
-  short UpdateTask(@Param("task_type") Integer task_type, @Param("shelf_rack") Integer shelf_rack);
+  @Update("update storage_task set task_state=1 where shelf_rack=#{shelf_rack} and task_type=#{task_type} and task_state=0")
+  void UpdateTask(@Param("task_type") Integer task_type, @Param("shelf_rack") Integer shelf_rack);
+
+  // 鎵嬪姩瀹屾垚杩涚墖浠诲姟淇敼绗煎瓙鏁版嵁
+  @Update("update storage_cage set state=1 where cell=#{cell} and state=2")
+  void UpdateCageTask1(@Param("cell") Integer cell);
+
+  // 鎵嬪姩瀹屾垚鍑虹墖浠诲姟淇敼绗煎瓙鏁版嵁
+  @Update("update storage_cage set state=0,glass_id=null,order_id=null,glasswidth=null,glassheight=null,coating=null where cell=#{cell} and state=2")
+  void UpdateCageTask2(@Param("cell") Integer cell);
+
+  //鑾峰彇鎶ヨ淇℃伅
+  @Select("select * from alarmmg where endTime is null")
+  List<alarmmg> SelectAlarmmgInfo();
 }

--
Gitblit v1.8.0