From 94e971bad93246e5e6730d3a8bb009a7d0595a5e Mon Sep 17 00:00:00 2001
From: ZengTao <2773468879@qq.com>
Date: 星期一, 11 九月 2023 17:32:47 +0800
Subject: [PATCH] 系统主界面添加点击理片笼显示玻璃信息,进行玻璃,出片操作
---
CanadaMes-ui/src/views/home/index.vue | 104 +++++++---
springboot-vue3/src/main/java/com/example/springboot/component/PlcHold.java | 53 ++---
CanadaMes-ui/src/api/home.js | 24 ++
springboot-vue3/src/main/java/com/example/springboot/mapper/SpianMapper.java | 27 ++
springboot-vue3/src/main/java/com/example/springboot/entity/Glass.java | 48 ++++
springboot-vue3/src/main/java/com/example/springboot/entity/StorageCage.java | 9
springboot-vue3/src/main/java/com/example/springboot/service/SpianService.java | 176 +++++++++++++++--
springboot-vue3/src/main/java/com/example/springboot/component/Plchome.java | 2
springboot-vue3/src/main/java/com/example/springboot/mapper/HomeMapper.java | 16 +
springboot-vue3/src/main/java/com/example/springboot/controller/HomeController.java | 110 ++++++----
10 files changed, 428 insertions(+), 141 deletions(-)
diff --git a/CanadaMes-ui/src/api/home.js b/CanadaMes-ui/src/api/home.js
index 0f4e344..224c6c9 100644
--- a/CanadaMes-ui/src/api/home.js
+++ b/CanadaMes-ui/src/api/home.js
@@ -58,3 +58,27 @@
data :""
})
}
+
+export function SelectCageInfo(cage) {
+ return request({
+ url: '/home/SelectCageInfo?cage='+cage,
+ method: 'get',
+ data :""
+ })
+}
+
+export function DeleteByGlassID(glassid) {
+ return request({
+ url: '/home/DeleteByGlassID?glassid='+glassid,
+ method: 'get',
+ data :""
+ })
+}
+
+export function OutByGlassID(glassid) {
+ return request({
+ url: '/home/OutByGlassID?glassid='+glassid,
+ method: 'get',
+ data :""
+ })
+}
diff --git a/CanadaMes-ui/src/views/home/index.vue b/CanadaMes-ui/src/views/home/index.vue
index 6695ee4..4fcd763 100644
--- a/CanadaMes-ui/src/views/home/index.vue
+++ b/CanadaMes-ui/src/views/home/index.vue
@@ -150,7 +150,6 @@
</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>
@@ -197,23 +196,23 @@
<el-footer>
<div class="blocks" style="position: relative;">
<div style="display:flex;position: absolute;float:left;z-index: 999;top:112px;left:328px;">
- <div :class="getStatusClass(item.state)" v-for="item in cagelist1" :key="item['date']"></div>
+ <div :class="getStatusClass(item.state)" v-for="item in cagelist1" :key="item['date']"
+ @click="showcageinfo(item['cage'])"></div>
</div>
<div style="display:flex;position: absolute;float:left;z-index: 999;top:112px;left:885px;">
- <div :class="getStatusClass(item.state)" v-for="item in cagelist2" :key="item['date']"></div>
+ <div :class="getStatusClass(item.state)" v-for="item in cagelist2" :key="item['date']"
+ @click="showcageinfo(item['cage'])"></div>
</div>
<div style="display:flex;position: absolute;float:left;z-index: 999;top:154px;left:328px;">
- <div :class="getStatusClass(item.state)" v-for="item in cagelist3" :key="item['date']"></div>
+ <div :class="getStatusClass(item.state)" v-for="item in cagelist3" :key="item['date']"
+ @click="showcageinfo(item['cage'])"></div>
</div>
<div style="display:flex;position: absolute;float:left;z-index: 999;top:154px;left:885px;">
- <div :class="getStatusClass(item.state)" v-for="item in cagelist4" :key="item['date']"></div>
+ <div :class="getStatusClass(item.state)" v-for="item in cagelist4" :key="item['date']"
+ @click="showcageinfo(item['cage'])"></div>
</div>
- <div class="blocks-img" :style="{ left: car1 + 'px', top: '16px' }">
-
- </div>
- <div class="blocks-img" :style="{ left: car2 + 'px', top: '194px' }">
-
- </div>
+ <div class="blocks-img" :style="{ left: car1 + 'px', top: '16px' }"></div>
+ <div class="blocks-img" :style="{ left: car2 + 'px', top: '194px' }"></div>
</div>
</el-footer>
<el-dialog :visible.sync="dialogFormVisible" title="Please confirm the information">
@@ -263,12 +262,31 @@
<el-table-column prop="endTime" label="endTime"></el-table-column>
</el-table>
</el-dialog>
+ <el-dialog :visible.sync="dialogFormVisible3" title="Ordering Information">
+ <el-table :data="this.cageinfo" border style="width: 100%;height: 700px;overflow: auto;">
+ <el-table-column :width="150" prop="cage" label="the grille number"></el-table-column>
+ <el-table-column prop="cell" label="cell"></el-table-column>
+ <el-table-column prop="tier" label="tier"></el-table-column>
+ <el-table-column prop="glassId" label="glassid"></el-table-column>
+ <el-table-column :width="130" prop="orderId" label="order number"></el-table-column>
+ <el-table-column :width="150" prop="lengthWidth" label="length and width"></el-table-column>
+ <el-table-column prop="coating" label="coating"></el-table-column>
+ <el-table-column :width="150" label="operate">
+ <template slot-scope='scope'>
+ <el-button type="primary" style="padding: 4px 10px;font-size: 12px;"
+ @click="deleteglass(scope.row.glassId, scope.row.state)">delete</el-button>
+ <el-button type="primary" style="padding: 4px 10px;font-size: 12px;"
+ @click="outglass(scope.row.glassId,scope.row.state)">out</el-button>
+ </template>
+ </el-table-column>
+ </el-table>
+ </el-dialog>
</el-container>
</template>
-
<script>
-import { home, home2, loadtask, InsertOrder, Addglassid, UpdateTask, SelectAlarmmgInfo } from "../../api/home";
+import { home, home2, loadtask, InsertOrder, Addglassid, UpdateTask, SelectAlarmmgInfo, SelectCageInfo, DeleteByGlassID, OutByGlassID } from "../../api/home";
+
import LanguageMixin from '../../lang/LanguageMixin'
let socket;
@@ -280,6 +298,7 @@
dialogFormVisible: false,
dialogFormVisible1: false,
dialogFormVisible2: false,
+ dialogFormVisible3: false,
form: {
orderno: "NG2210210",
length: 800,
@@ -306,7 +325,9 @@
car1: 150,
car2: 242,
incell: "",
- outcell: ""
+ outcell: "",
+ cageinfo: [],
+ cage: 0
};
},
created() {
@@ -337,9 +358,11 @@
//console.log("鏀跺埌鏁版嵁====" + msg.data);
let obj = JSON.parse(msg.data);
+ if (obj.params != null) {
+ this.car1 = 150 + 24.6 * obj.params[0][0];
+ this.car2 = 242 + 24.6 * obj.params[0][1];
+ }
- this.car1 = 150 + 24.6 * obj.params[0][0];
- this.car2 = 242 + 24.6 * obj.params[0][1];
this.tableData = obj.tableData[0];
this.cagelist1 = obj.cagelist1[0];
this.cagelist2 = obj.cagelist2[0];
@@ -354,16 +377,11 @@
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] };
- // // this.record.xyData[a].value = this.record.params[0][a];
- // this.car1=this.record.params[0][a];
- // console.log(this.record.params[0][a]);
+ SelectCageInfo(this.cage).then(res => {
+ this.cageinfo = res.data.cageinfo;
+ });
-
- // }
this.$forceUpdate();
}.bind(this);
@@ -496,17 +514,35 @@
});
}
-
},
- formatDate(timestamp) {
- const date = new Date(timestamp);
- const year = date.getFullYear();
- const month = date.getMonth() + 1;
- const day = date.getDate();
- const hours = date.getHours();
- const minutes = date.getMinutes();
- const seconds = date.getSeconds();
- return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
+ showcageinfo(cage) {
+ this.cage = cage;
+ SelectCageInfo(cage).then(res => {
+ this.cageinfo = res.data.cageinfo;
+ this.dialogFormVisible3 = true;
+ });
+ },
+ deleteglass(glassid, state) {
+ if (state == 1) {
+ DeleteByGlassID(glassid).then(res=>{
+ if (res.data.message3 == 200) {
+ this.$message.success("Operation successful");
+ }
+ });
+ } else {
+ this.$message.success("No out allowed");
+ }
+ },
+ outglass(glassid,state){
+ if (state == 1) {
+ OutByGlassID(glassid).then(res=>{
+ if (res.data.message3 == 200) {
+ this.$message.success("Operation successful");
+ }
+ });
+ } else {
+ this.$message.success("No out allowed");
+ }
}
}
diff --git a/springboot-vue3/src/main/java/com/example/springboot/component/PlcHold.java b/springboot-vue3/src/main/java/com/example/springboot/component/PlcHold.java
index f007033..c2a74e1 100644
--- a/springboot-vue3/src/main/java/com/example/springboot/component/PlcHold.java
+++ b/springboot-vue3/src/main/java/com/example/springboot/component/PlcHold.java
@@ -1,17 +1,9 @@
package com.example.springboot.component;
-import java.util.ArrayList;
import java.util.List;
-
-import javax.websocket.Session;
-
-import com.example.springboot.controller.SpianController;
import com.example.springboot.service.SpianService;
import com.example.springboot.mapper.AlarmMapper;
-import com.example.springboot.mapper.HomeMapper;
-import cn.hutool.json.JSONArray;
-import cn.hutool.json.JSONObject;
public class PlcHold extends Thread {
@@ -30,38 +22,37 @@
// TODO Auto-generated catch block
e.printStackTrace();
}
- List<Boolean> bitlist = S7control.getinstance().ReadBits("DB2.0.0", 100);
- List<Short> paramlist = S7control.getinstance().ReadWord("DB100.6", 1);
-
+ spianService = WebSocketServer.applicationContext.getBean(SpianService.class);
+ //spianService.selectout("112");
//鍒ゆ柇杩涚墖璇锋眰
- // List<Short> datas1List=S7control.getinstance().ReadWord("DB106.24", 1);
- // List<Short> datas1ListState=S7control.getinstance().ReadWord("DB106.8", 1);
- SpianController spianController=new SpianController();
- List<Short> datas1List1=new ArrayList<>();
- List<Short> datas1List2=new ArrayList<>();
- datas1List1.add((short)1);
- datas1List2.add((short)0);
- //鑾峰彇prc杩涚墖璇锋眰鏁版嵁
- boolean exist = datas1List1.contains((short)1);
- boolean exist1 = datas1List2.contains((short)0);
+ List<Short> datas1List=S7control.getinstance().ReadWord("DB106.24", 1);
+ List<Short> datas1ListState=S7control.getinstance().ReadWord("DB106.8", 1);
+ if(datas1List!=null &&datas1ListState!=null){
+ //鑾峰彇prc杩涚墖璇锋眰鏁版嵁
+ boolean exist = datas1List.contains((short)1);
+ //鑾峰彇杩涚墖杞︾姸鎬�
+ boolean exist1 = datas1ListState.contains((short)0);
//杩涚墖璇锋眰涓�1鏃�
- if(exist=true){
+ if(exist=true){
//褰撹繘鐗囪溅绌洪棽鏃�
- if(exist=true){
- //List<Short> datas1ListID=S7control.getinstance().ReadWord("DB106.26", 13);
- List<Short> datas1ListID=new ArrayList<>();
- datas1ListID.add((short)001);
- spianService = WebSocketServer.applicationContext.getBean(SpianService.class);
- //鑾峰彇鐜荤拑id
+ if(exist1=true){
+ //鑾峰彇杩涚墖id
+ List<Short> datas1ListID=S7control.getinstance().ReadWord("DB106.26", 13);
+ //鑾峰彇鐜荤拑id
for(Short list1:datas1ListID){
- spianService.selectAll(list1);
+ spianService.selectAll((short)list1);
}
+ }
+
+
+
+
//System.out.println(exist);
}
}
- //鑾峰彇杩涚墖id
- // List<Short> datas1ListID=S7control.getinstance().ReadWord("DB106.26", 13);
+
+
// 鏌ヨ鏁版嵁搴�
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 026cace..258556f 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
@@ -18,7 +18,7 @@
public void run() {
while (this != null) {
try {
- Thread.sleep(10000);
+ Thread.sleep(5000);
} catch (InterruptedException e) {
e.printStackTrace();
}
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 aea9709..5970b54 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
@@ -27,84 +27,108 @@
@Autowired
SpianService spianService;
- @GetMapping("/load")
- public Result selectAll(){
- List<StorageCage> storageCagelist=homeMapper.selectAll();
+ @GetMapping("/load")
+ public Result selectAll() {
+ List<StorageCage> storageCagelist = homeMapper.selectAll();
Map<String, Object> map = new HashMap<>();
- map.put("list",storageCagelist);
+ map.put("list", storageCagelist);
return Result.success(map);
}
- @GetMapping("/loads")
- public Result selectRack(){
- List<StorageCage> storageCagelist1=homeMapper.selectRack1();
- List<StorageCage> storageCagelist2=homeMapper.selectRack2();
- List<StorageCage> storageCagelist3=homeMapper.selectRack3();
- List<StorageCage> storageCagelist4=homeMapper.selectRack4();
+ @GetMapping("/loads")
+ public Result selectRack() {
+ List<StorageCage> storageCagelist1 = homeMapper.selectRack1();
+ List<StorageCage> storageCagelist2 = homeMapper.selectRack2();
+ List<StorageCage> storageCagelist3 = homeMapper.selectRack3();
+ List<StorageCage> storageCagelist4 = homeMapper.selectRack4();
Map<String, Object> map = new HashMap<>();
- map.put("list1",storageCagelist1);
- map.put("list2",storageCagelist2);
- map.put("list3",storageCagelist3);
- map.put("list4",storageCagelist4);
+ map.put("list1", storageCagelist1);
+ map.put("list2", storageCagelist2);
+ map.put("list3", storageCagelist3);
+ map.put("list4", storageCagelist4);
return Result.success(map);
}
-
-
- @GetMapping("/loadinout")
- public Result selectinout(Integer types){
- List<StorageCage> storageCageinout=homeMapper.selectinout(types);
+
+ @GetMapping("/loadinout")
+ public Result selectinout(Integer types) {
+ List<StorageCage> storageCageinout = homeMapper.selectinout(types);
Map<String, Object> map = new HashMap<>();
- map.put("list",storageCageinout);
+ map.put("list", storageCageinout);
return Result.success(map);
}
@GetMapping("/InsertOrder")
- public Result InsertOrder(String orderid){
- short result=homeMapper.SelectOrder(orderid);
+ public Result InsertOrder(String orderid) {
+ short result = homeMapper.SelectOrder(orderid);
Map<String, Object> map = new HashMap<>();
- if(result>0){
+ if (result > 0) {
homeMapper.updateOrder();
homeMapper.InsertOrder(orderid);
- map.put("message","200");
- }else{
- map.put("message","500");
+ map.put("message", "200");
+ } else {
+ map.put("message", "500");
}
return Result.success(map);
}
@GetMapping("/Addglassid")
- public Result Addglassid(short glassid){
+ public Result Addglassid(short glassid) {
Map<String, Object> map = new HashMap<>();
- short taskno=homeMapper.SelectOutTask();
- if(taskno>0){
- map.put("message2","500");
- }else{
- map.put("message2","200");
- //璋冪敤浼嶄笂鐗囧嚱鏁�
+ short taskno = homeMapper.SelectOutTask();
+ if (taskno > 0) {
+ map.put("message2", "500");
+ } else {
+ map.put("message2", "200");
+ // 璋冪敤浼嶄笂鐗囧嚱鏁�
spianService.selectAll(glassid);
}
return Result.success(map);
}
@GetMapping("/UpdateTask")
- public Result UpdateTask(Integer types,Integer shelfrack){
+ public Result UpdateTask(Integer types, Integer shelfrack) {
Map<String, Object> map = new HashMap<>();
- homeMapper.UpdateTask(types,shelfrack);
- if(types==0){
+ homeMapper.UpdateTask(types, shelfrack);
+ if (types == 0) {
homeMapper.UpdateCageTask1(shelfrack);
- }else{
+ } else {
homeMapper.UpdateCageTask2(shelfrack);
}
- map.put("message3","200");
+ map.put("message3", "200");
return Result.success(map);
}
- @GetMapping("/SelectAlarmmgInfo")
- public Result SelectAlarmmgInfo(){
- List<alarmmg> alarmmg=homeMapper.SelectAlarmmgInfo();
+ @GetMapping("/SelectAlarmmgInfo")
+ public Result SelectAlarmmgInfo() {
+ List<alarmmg> alarmmg = homeMapper.SelectAlarmmgInfo();
Map<String, Object> map = new HashMap<>();
- map.put("alarmmg",alarmmg);
+ map.put("alarmmg", alarmmg);
return Result.success(map);
}
-
+
+ @GetMapping("/SelectCageInfo")
+ public Result SelectCageInfo(short cage) {
+ List<StorageCage> cageinfo = homeMapper.SelectCageInfo(cage);
+ Map<String, Object> map = new HashMap<>();
+ map.put("cageinfo", cageinfo);
+ return Result.success(map);
+ }
+
+ @GetMapping("/DeleteByGlassID")
+ public Result DeleteByGlassID(short glassid) {
+ homeMapper.DeleteByGlassID(glassid);
+ Map<String, Object> map = new HashMap<>();
+ map.put("message3", "200");
+ return Result.success(map);
+ }
+
+ @GetMapping("/OutByGlassID")
+ public Result OutByGlassID(String glassid) {
+ spianService.selectout2(glassid);
+
+ Map<String, Object> map = new HashMap<>();
+ map.put("message3", "200");
+ return Result.success(map);
+ }
+
}
diff --git a/springboot-vue3/src/main/java/com/example/springboot/entity/Glass.java b/springboot-vue3/src/main/java/com/example/springboot/entity/Glass.java
new file mode 100644
index 0000000..9ab999d
--- /dev/null
+++ b/springboot-vue3/src/main/java/com/example/springboot/entity/Glass.java
@@ -0,0 +1,48 @@
+package com.example.springboot.entity;
+
+public class Glass{
+ private Integer id;
+ private Short orderId;
+ private double glassWidth;
+ private Short glassId;
+
+
+
+ public Integer id() {
+ return id;
+ }
+ public void setId(Integer id) {
+ this.id = id;
+ }
+ public Integer getId() {
+ return id;
+ }
+
+ public Short getOrderId() {
+ return orderId;
+ }
+
+ public void setOrderId(Short orderId) {
+ this.orderId = orderId;
+ }
+
+ public double getWidth() {
+ return glassWidth;
+ }
+
+ public void setWidth(double glassWidth) {
+ this.glassWidth = glassWidth;
+ }
+
+ public Short getGlassId() {
+ return glassId;
+ }
+
+ public void setGlassId(Short glassId) {
+ this.glassId = glassId;
+ }
+
+
+
+
+}
\ No newline at end of file
diff --git a/springboot-vue3/src/main/java/com/example/springboot/entity/StorageCage.java b/springboot-vue3/src/main/java/com/example/springboot/entity/StorageCage.java
index 15321e2..24fd64c 100644
--- a/springboot-vue3/src/main/java/com/example/springboot/entity/StorageCage.java
+++ b/springboot-vue3/src/main/java/com/example/springboot/entity/StorageCage.java
@@ -2,6 +2,7 @@
public class StorageCage {
private Integer id;
+ private Integer prcId;
private String glassId;
private Integer cage;
private Integer cell;
@@ -25,6 +26,14 @@
public Integer getId() {
return id;
}
+ public Integer getPrcId() {
+ return prcId;
+ }
+
+ public void setPrcId(Integer prcId) {
+ this.prcId = prcId;
+ }
+
public String getGlassId() {
return glassId;
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 c7ec473..384b18c 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
@@ -14,19 +14,19 @@
List<StorageCage> selectAll();
// 鏌ヨ1-5绗煎唴灞傛牸瀛愮姸鎬�
- @Select("SELECT state from storage_cage where cage<=5 and tier=1")
+ @Select("SELECT cage,state from storage_cage where cage<=5 and tier=1")
List<StorageCage> selectRack1();
// 鏌ヨ6-10绗煎唴灞傛牸瀛愮姸鎬�
- @Select("SELECT state from storage_cage where cage>5 and tier=1")
+ @Select("SELECT cage,state from storage_cage where cage>5 and tier=1")
List<StorageCage> selectRack2();
// 鏌ヨ1-5绗煎灞傛牸瀛愮姸鎬�
- @Select("SELECT state from storage_cage where cage<=5 and tier=2")
+ @Select("SELECT cage,state from storage_cage where cage<=5 and tier=2")
List<StorageCage> selectRack3();
// 鏌ヨ6-10绗煎灞傛牸瀛愮姸鎬�
- @Select("SELECT state from storage_cage where cage>5 and tier=2")
+ @Select("SELECT cage,state from storage_cage where cage>5 and tier=2")
List<StorageCage> selectRack4();
// 鏍规嵁浠诲姟绫诲瀷鏌ヨ褰撳墠姝e湪鍑虹墖锛岃繘鐗囩殑鐜荤拑淇℃伅
@@ -64,4 +64,12 @@
//鑾峰彇鎶ヨ淇℃伅
@Select("select id,content,timeon as timeons,endTime from alarmmg where endTime is null")
List<alarmmg> SelectAlarmmgInfo();
+
+ //鑾峰彇鐞嗙墖绗煎唴鐜荤拑淇℃伅
+ @Select("select *,concat(glasswidth,' x ',glassheight) as lengthwidth from storage_cage where cage=#{cage} ")
+ List<StorageCage> SelectCageInfo(short cage);
+
+ @Update("update storage_cage set state=0,glass_id=null,order_id=null,glasswidth=null,glassheight=null,coating=null where glass_id=#{glassid}")
+ void DeleteByGlassID(short glassid);
+
}
diff --git a/springboot-vue3/src/main/java/com/example/springboot/mapper/SpianMapper.java b/springboot-vue3/src/main/java/com/example/springboot/mapper/SpianMapper.java
index 6ee7fbf..76b6d90 100644
--- a/springboot-vue3/src/main/java/com/example/springboot/mapper/SpianMapper.java
+++ b/springboot-vue3/src/main/java/com/example/springboot/mapper/SpianMapper.java
@@ -2,6 +2,7 @@
import org.apache.ibatis.annotations.*;
import com.example.springboot.common.Result;
+import com.example.springboot.entity.Glass;
import com.example.springboot.entity.StorageCage;
import com.example.springboot.entity.StorageTask;
import com.example.springboot.entity.StorageCage;
@@ -12,7 +13,7 @@
public interface SpianMapper {
//鍒ゆ柇鐩搁偦绗煎瓙鏄惁鏈夌┖鏍�
- @Select("select COUNT(if(a.state1=0,cell,null))as cell,ROUND(id/2)as id from (select *,max(state)as state1 from storage_cage a GROUP BY cage,cell)as a where (a.cage=#{cage1}-1 or a.cage=#{cage1}+1)and if(#{cage1}<6,a.cage>0 and a.cage<6,a.cage>5) GROUP BY cage ORDER BY cell desc LIMIT 1")
+ @Select("select COUNT(if(a.state1=0,cell,null))as cell,ROUND(id/2)as id from (select *,max(state)as state1 from storage_cage a GROUP BY cage,cell)as a where (a.cage=#{cage1}-1 or a.cage=#{cage1}+1)and if(a.cage<6,a.cage>0 and a.cage<6,a.cage>5) GROUP BY cage ORDER BY cell desc LIMIT 1")
int selectCage(int cage1);
//@Select("(select*from storage_cage as a where a.state=0 and cage%2=0 ORDER BY id LIMIT 1)union (select a.* from storage_cage a inner join (select cage,if(shu2=1,shu3,shu5) as gezi from ( select cage, count(case when state1=1 and state2=0 then cell else null end)as shu1, count(case when state1=0 then cell else null end) as shu2, min(case when state1=1 and state2=0 then cell else null end) as shu3, min(case when state1=0 then cell else null end) as shu4, min(case when state1=0 or state2=0 then cell else null end) as shu5 from (select *,max(state) as state1,min(state) as state2 from storage_cage group by cage,cell) as a where cage%2!=0 GROUP BY cage HAVING shu2>1 or (shu2=1 and shu1>0) ) as sss limit 1)as b on a.cage=b.cage and a.cell=b.gezi and a.state=0 order by tier limit 1) ORDER BY id LIMIT 1;")
@@ -21,35 +22,47 @@
List<StorageCage> selectAll(Short glassid);
//鍒ゆ柇璇ョ瀛愭槸鍚︽湁鍚堥�傚搴︾┖鏍�
- @Select("select COUNT(*),cage,cell,IF(tier=1,0,1)as tier,ROUND(id/2)as id from storage_cage where cage=#{cage1} and state=0 and width>=#{width} ORDER BY cell,tier")
+ @Select("select cage,cell,tier,id,ROUND(id/2)as prcId from storage_cage where cage=#{cage1} and state=0 and width>=#{width} ORDER BY cell,tier LIMIT 1")
StorageCage selectCage1(int cage1,double width);
+ //鍒ゆ柇绗煎瓙鍐呯幓鐠冩暟
+ @Select("select COUNT(tier)as tier from storage_cage where cage=#{cage} and cell=#{cell} and state=1;")
+ int selectsum(int cage,int cell);
//@Update("update longzi set glass_id = #{glass_id}, width = #{width}, state = #{state} where cell = #{cell}")
@Update("update longzi set glass_id =123, width =1600, state =1 where cell =24")
void update();
+ //鑾峰彇鐜荤拑淇℃伅
+ @Select("select orderid,width from glass where glassid=#{glassid}")
+ Glass selectGlass(Short glassid);
@Insert("insert into storage_task(task_type,task_state,shelf_rack,load_rack)values(#{storage_task},#{task_state},#{shelf_rack},#{load_rack})")
void insert(StorageTask storageTask);
//鍑虹墖浠诲姟鏌ヨ
- @Select("select cage,cell,tier,glasswidth,ROUND(id/2)as id from storage_cage as a where a.order_id=#{orderId} and state=1 order by cage desc,tier desc,cell desc LIMIT 1")
+ @Select("select cage,cell,tier,glasswidth,ROUND(id/2)as prcId,id from storage_cage as a where a.order_id=#{orderId} and state=1 order by cage desc,tier desc,cell desc LIMIT 1")
StorageCage selectOut(String orderId);
+ //鎸夌幓鐠僆D鍑虹墖浠诲姟鏌ヨ
+ @Select("select cage,cell,tier,glasswidth,ROUND(id/2)as prcId,id from storage_cage as a where a.order_id=#{orderId} and state=1 order by cage desc,tier desc,cell desc LIMIT 1")
+ StorageCage selectOut2(String glassid);
//鍒ゆ柇鍑虹墖涓�1鏃讹紝鏄惁鍙洿鎺ュ嚭鐗�
@Select("select state from storage_cage where cage=#{cage} and cell=#{cell} and tier=2;")
int selectGlassState(int cage,int cell);
//鍒ゆ柇璇ヨ皟鎷ㄧ殑绗煎瓙
- @Select("select cage,cell,max(state)as shu,ROUND(id/2)as id from storage_cage where width>=#{width} and cage>#{cage1} and cage<#{cage2} GROUP BY cage,cell HAVING shu=0 order by abs(#{cage} - cage) limit 1;")
+ @Select("select cage,cell,max(state)as shu,ROUND(id/2)as prcid,id from storage_cage where width>=#{width} and cage>#{cage1} and cage<#{cage2} GROUP BY cage,cell HAVING shu=0 order by abs(#{cage} - cage) limit 1;")
StorageCage selectGlassCage(int cage,double width,int cage1,int cage2);
- //淇敼绗煎瓙淇℃伅(鍑虹墖)
+ //鍒犻櫎绗煎瓙淇℃伅(鍑虹墖)
@Update("update storage_cage set state=#{state},width=width+#{width},glass_id=#{glassid},order_id=#{orderid},glasswidth=0 where cage=#{cage} and cell=#{cell} and tier=#{tier};")
void UpdataGlassCage(String orderid,String glassid,double width,int cage,int cell,int tier,int state);
//淇敼绗煎瓙淇℃伅(杩涚墖)
- @Update("update storage_cage set state=#{state},width=width-#{width},glass_id=#{glassid},order_id=#{orderid},glasswidth=#{width} where cage=#{cage} and cell=#{cell} and tier=#{tier};")
- void UpdataAddCage(String orderid,Short glassid,double width,int cage,int cell,int tier,int state);
+ @Update("update storage_cage set state=#{state},width=width-#{width},glass_id=#{glassid},order_id=#{orderid},glasswidth=#{width} where id=#{id};")
+ void UpdataAddCage(Short orderid,Short glassid,double width,int cage,int cell,int id,int state);
+ //璋冩嫧鏇存崲绗煎瓙淇℃伅
+ @Update("update storage_cage as a,(select*from storage_cage b where b.cage=#{cage} and b.cell=#{cell} and b.tier=2)as b set a.glass_id=b.glass_id,a.order_id=b.order_id,a.glasswidth=b.glasswidth,a.width=a.width-b.glasswidth,a.state=1 where a.id=#{id1}")
+ void UpdateDBCage(int id1,int cage,int cell);
// @Insert("insert into user(name, date, address, user_no) values (#{name}, #{date}, #{address}, #{userNo})")
// void insert (Spian spian);
diff --git a/springboot-vue3/src/main/java/com/example/springboot/service/SpianService.java b/springboot-vue3/src/main/java/com/example/springboot/service/SpianService.java
index 09c3df4..951216b 100644
--- a/springboot-vue3/src/main/java/com/example/springboot/service/SpianService.java
+++ b/springboot-vue3/src/main/java/com/example/springboot/service/SpianService.java
@@ -9,6 +9,7 @@
import com.example.springboot.common.Result;
import com.example.springboot.component.S7control;
+import com.example.springboot.entity.Glass;
import com.example.springboot.entity.StorageCage;
import com.example.springboot.mapper.SpianMapper;
@@ -17,7 +18,7 @@
@Autowired
private SpianMapper spianMapper;
@GetMapping("/all2")
- public Result selectadd(String orderid){
+ public Result selectout(String orderid){
//瀹氫箟PRC鏁版嵁浼犻�佹暟缁�
List<String> adddresslist=new ArrayList<>();
adddresslist.add("DB105.6");//鍑虹墖杞﹁捣濮嬩綅缃�
@@ -28,9 +29,10 @@
//鑾峰彇浼樺厛鍑虹墖鐨勪綅缃�
StorageCage cageout=spianMapper.selectOut(orderid);
int cage =cageout.getCage(); //鍌ㄥ瓨鍑虹墖浣嶇疆锛岀瀛愭牸瀛愬嚑鍙风幓鐠�
- int cell =cageout.getCell();
- int tier =cageout.getTier();
- int id=cageout.getId();
+ int cell =cageout.getCell();//鍑虹墖鏍煎彿
+ int tier =cageout.getTier();//鍑虹墖鍐呭鐗�
+ int prcid=cageout.getPrcId();//prcid
+ int prcid2;
int ids;
double glasswidth=cageout.getGlassWidth();
//鍒ゆ柇鐜荤拑鍐呭鐗�
@@ -38,7 +40,8 @@
//鍒ゆ柇鐜荤拑鍙洿鎺ュ嚭鐗囨椂
//淇敼鏁版嵁搴撶瀛愯〃(鍑虹墖)
spianMapper.UpdataGlassCage("","",glasswidth, cage, cell, tier, 0);
- datas.add((short)id);
+
+ datas.add((short)prcid);
datas.add((short)1000);
datas.add((short)1);
datas.add((short)1);
@@ -55,42 +58,55 @@
//鐜荤拑闇�瑕佽皟鎷ㄦ椂锛屽垽鏂睘浜庡摢涓崐鍖虹殑绗煎瓙
if(cage<6){
StorageCage cagecell= spianMapper.selectGlassCage(cage,glasswidth,0,6);
+ if(cagecell==null){
+ return Result.success(cagecell);
+ }
//鑾峰彇璋冩嫧浣嶇疆杩涜璋冩嫧
+ prcid2=cagecell.getPrcId();//璋冩嫧鐩爣浣峆RCID
ids=cagecell.getId();//璋冩嫧鐩爣浣岻D
+ //鏇存崲鐜荤拑鐨勭瀛�
+ spianMapper.UpdateDBCage(ids, cage, cell);//灏嗗師鏍煎瓙鏁版嵁鏇存柊鍒版柊鏍煎瓙閲�
+ spianMapper.UpdataGlassCage("", "", glasswidth, cage, cell, 2, 0);//娓呴櫎鍘熸牸瀛愭暟鎹�
//濉叆璋冩嫧鏁版嵁
- datas.add((short)id);
- datas.add((short)ids);
+ datas.add((short)prcid);//璋冩嫧澶栫墖璧峰浣嶇疆
+ datas.add((short)prcid2);
datas.add((short)2);
datas.add((short)1);
//浼犺緭mes鏁版嵁,鍧愭爣锛屾暟鎹�
S7control.getinstance().WriteWord(adddresslist, datas);
- //鏇存崲鐜荤拑鐨勭瀛�
datas.clear(); // 娓呯┖鏁翠釜鍒楄〃
//鍒ゆ柇璋冩嫧缁撴潫鍚庡啀娆″嚭鐗�,濉叆鍑虹墖鏁版嵁
- datas.add((short)id);
+ datas.add((short)prcid);
datas.add((short)1000);
datas.add((short)1);
datas.add((short)1);
S7control.getinstance().WriteWord(adddresslist, datas);
//淇敼鏁版嵁搴撶瀛愯〃(鍑虹墖)
- spianMapper.UpdataGlassCage("","",glasswidth, cage, cell, tier, 0);
+
return Result.success(cagecell); //璋冩嫧浣嶇疆鐨勫弬鏁板唴瀹�
- }else{
+ }else{//绗煎瓙鍙峰ぇ浜�5鏃�
StorageCage cagecell= spianMapper.selectGlassCage(cage,glasswidth,5,11);
+ if(cagecell==null){
+ return Result.success(cagecell);
+ }
//鑾峰彇璋冩嫧浣嶇疆杩涜璋冩嫧
+ prcid2=cagecell.getPrcId();//璋冩嫧鐩爣浣峱rcID
ids=cagecell.getId();//璋冩嫧鐩爣浣岻D
//濉叆璋冩嫧鏁版嵁
- datas.add((short)id);
- datas.add((short)ids);
+ datas.add((short)prcid);
+ datas.add((short)prcid2);
datas.add((short)2);
datas.add((short)1);
+ //杞Щ鍘熻皟鎷ㄦ牸瀛愭暟鎹�
+ spianMapper.UpdateDBCage(ids, cage, cell);//灏嗗師鏍煎瓙鏁版嵁鏇存柊鍒版柊鏍煎瓙閲�
+ spianMapper.UpdataGlassCage("", "", glasswidth, cage, cell, 2, 0);//娓呴櫎鍘熸牸瀛愭暟鎹�
//浼犺緭mes鏁版嵁,鍧愭爣锛屾暟鎹�
S7control.getinstance().WriteWord(adddresslist, datas);
datas.clear(); // 娓呯┖鏁翠釜鍒楄〃
//鍒ゆ柇璋冩嫧缁撴潫鍚庡啀娆″嚭鐗�
//濉叆鍑虹墖鏁版嵁
- datas.add((short)id);
+ datas.add((short)prcid);
datas.add((short)1000);
datas.add((short)1);
datas.add((short)1);
@@ -110,18 +126,29 @@
public Result selectAll(Short glassid){
//return spianMapper.selectAll();
int cage1;
+ int cells;
int ids;
- int tier;
- double widths=1500;
+ int prcid;
+ int tiers;
+ int prctier;
+
+ Glass glasslist=spianMapper.selectGlass(glassid);
+ double widths=glasslist.getWidth();
+ Short orderids=glasslist.getOrderId();
+
List<String> adddresslist=new ArrayList<>();
adddresslist.add("DB105.0");//杩涚墖杞﹁捣濮嬩綅缃�
adddresslist.add("DB105.2");//杩涚墖杞︾洰鏍囦綅缃�
adddresslist.add("DB105.4");//杩涚墖绗肩幓鐠冩暟
adddresslist.add("DB105.12");//杩涚墖杞﹀惎鍔� 1涓哄惎鍔�
List<Short> datas=new ArrayList<>();
+
//String orderid="A001";
//鑾峰彇璁㈠崟鐩稿叧搴︽渶楂樼殑绗煎瓙鎺掑簭
List<StorageCage> storageCage=spianMapper.selectAll(glassid);
+ if(storageCage==null){
+ return Result.success(storageCage);
+ }
for (StorageCage storageCage2 : storageCage) {
//淇濆瓨璁㈠崟浼樺厛椤哄簭绗煎瓙鍙�
cage1=storageCage2.getCage();
@@ -129,18 +156,22 @@
int cages=spianMapper.selectCage(cage1);
//鍒ゆ柇閫変腑绗煎瓙鏄惁鏈夊悎閫傚搴︾┖鏍�
StorageCage cages1=spianMapper.selectCage1(cage1,widths);
- ids=cages1.getId();
- tier=cages1.getTier();
+ ids=cages1.getId();//鏁版嵁搴揑D
+ tiers=cages1.getTier();//鍐呭鐗�
+ cells=cages1.getCell();//鏍煎瓙鍙�
+ prcid=cages1.getPrcId();//浼犵粰prc鐨勭洰鏍囧湴id
+ prctier=spianMapper.selectsum(cage1, cells);//浼犵粰prc鐨勬牸瀛愬唴鐜荤拑鏁�
//鏈夊悎閫傜┖鏍兼椂杩涚墖
if(cages>1 &&cages1.getTier()!=null){
//鎵ц杩涚墖
datas.add((short)1000);
- datas.add((short)ids);
- datas.add((short)tier);
+ datas.add((short)prcid);
+ datas.add((short)prctier);
datas.add((short)1);
S7control.getinstance().WriteWord(adddresslist, datas);
//鏁版嵁搴撲慨鏀圭瀛愯〃鏂板涓�鏉$幓鐠�
- spianMapper.UpdataAddCage("glassid", glassid, widths, cages, ids, tier, 1);//杩樻湭鑾峰彇鐜荤拑id
+
+ spianMapper.UpdataAddCage(orderids, glassid, widths, cage1, cells, ids, 1);
return Result.success(cages1);
}
@@ -149,5 +180,108 @@
return Result.success("涓嶅彲杩涚墖");
}
+
+ @GetMapping("/all2")
+ public Result selectout2(String glassid){
+ //瀹氫箟PRC鏁版嵁浼犻�佹暟缁�
+ List<String> adddresslist=new ArrayList<>();
+ adddresslist.add("DB105.6");//鍑虹墖杞﹁捣濮嬩綅缃�
+ adddresslist.add("DB105.8");//鍑虹墖杞︾洰鏍囦綅缃�
+ adddresslist.add("DB105.10");//鍑虹墖绗肩幓鐠冩暟
+ adddresslist.add("DB105.14");//鍑虹墖杞﹀惎鍔� 1涓哄惎鍔�
+ List<Short> datas=new ArrayList<>();
+ //鑾峰彇浼樺厛鍑虹墖鐨勪綅缃�
+ StorageCage cageout=spianMapper.selectOut2(glassid);
+ int cage =cageout.getCage(); //鍌ㄥ瓨鍑虹墖浣嶇疆锛岀瀛愭牸瀛愬嚑鍙风幓鐠�
+ int cell =cageout.getCell();//鍑虹墖鏍煎彿
+ int tier =cageout.getTier();//鍑虹墖鍐呭鐗�
+ int prcid=cageout.getPrcId();//prcid
+ int prcid2;
+ int ids;
+ double glasswidth=cageout.getGlassWidth();
+ //鍒ゆ柇鐜荤拑鍐呭鐗�
+ if(tier==2){
+ //鍒ゆ柇鐜荤拑鍙洿鎺ュ嚭鐗囨椂
+ //淇敼鏁版嵁搴撶瀛愯〃(鍑虹墖)
+ spianMapper.UpdataGlassCage("","",glasswidth, cage, cell, tier, 0);
+
+ datas.add((short)prcid);
+ datas.add((short)1000);
+ datas.add((short)1);
+ datas.add((short)1);
+ S7control.getinstance().WriteWord(adddresslist, datas);
+ return Result.success(datas);
+ }
+ else{
+ //鑾峰彇鏍煎瓙鐨勭幓鐠冩暟閲�
+ int state= spianMapper.selectGlassState(cage,cell);
+ //鍒ゆ柇鍐呯墖鏄惁闇�瑕佽皟鎷�
+ if(state==0){
+ return Result.success("鐘舵�佷负0,鐩存帴鍑虹墖");
+ }else{
+ //鐜荤拑闇�瑕佽皟鎷ㄦ椂锛屽垽鏂睘浜庡摢涓崐鍖虹殑绗煎瓙
+ if(cage<6){
+ StorageCage cagecell= spianMapper.selectGlassCage(cage,glasswidth,0,6);
+ if(cagecell==null){
+ return Result.success(cagecell);
+ }
+ //鑾峰彇璋冩嫧浣嶇疆杩涜璋冩嫧
+ prcid2=cagecell.getPrcId();//璋冩嫧鐩爣浣峆RCID
+ ids=cagecell.getId();//璋冩嫧鐩爣浣岻D
+ //鏇存崲鐜荤拑鐨勭瀛�
+ spianMapper.UpdateDBCage(ids, cage, cell);//灏嗗師鏍煎瓙鏁版嵁鏇存柊鍒版柊鏍煎瓙閲�
+ spianMapper.UpdataGlassCage("", "", glasswidth, cage, cell, 2, 0);//娓呴櫎鍘熸牸瀛愭暟鎹�
+ //濉叆璋冩嫧鏁版嵁
+ datas.add((short)prcid);//璋冩嫧澶栫墖璧峰浣嶇疆
+ datas.add((short)prcid2);
+ datas.add((short)2);
+ datas.add((short)1);
+ //浼犺緭mes鏁版嵁,鍧愭爣锛屾暟鎹�
+ S7control.getinstance().WriteWord(adddresslist, datas);
+ datas.clear(); // 娓呯┖鏁翠釜鍒楄〃
+ //鍒ゆ柇璋冩嫧缁撴潫鍚庡啀娆″嚭鐗�,濉叆鍑虹墖鏁版嵁
+ datas.add((short)prcid);
+ datas.add((short)1000);
+ datas.add((short)1);
+ datas.add((short)1);
+ S7control.getinstance().WriteWord(adddresslist, datas);
+ //淇敼鏁版嵁搴撶瀛愯〃(鍑虹墖)
+
+ return Result.success(cagecell); //璋冩嫧浣嶇疆鐨勫弬鏁板唴瀹�
+
+ }else{//绗煎瓙鍙峰ぇ浜�5鏃�
+ StorageCage cagecell= spianMapper.selectGlassCage(cage,glasswidth,5,11);
+ if(cagecell==null){
+ return Result.success(cagecell);
+ }
+ //鑾峰彇璋冩嫧浣嶇疆杩涜璋冩嫧
+ prcid2=cagecell.getPrcId();//璋冩嫧鐩爣浣峱rcID
+ ids=cagecell.getId();//璋冩嫧鐩爣浣岻D
+ //濉叆璋冩嫧鏁版嵁
+ datas.add((short)prcid);
+ datas.add((short)prcid2);
+ datas.add((short)2);
+ datas.add((short)1);
+ //杞Щ鍘熻皟鎷ㄦ牸瀛愭暟鎹�
+ spianMapper.UpdateDBCage(ids, cage, cell);//灏嗗師鏍煎瓙鏁版嵁鏇存柊鍒版柊鏍煎瓙閲�
+ spianMapper.UpdataGlassCage("", "", glasswidth, cage, cell, 2, 0);//娓呴櫎鍘熸牸瀛愭暟鎹�
+ //浼犺緭mes鏁版嵁,鍧愭爣锛屾暟鎹�
+ S7control.getinstance().WriteWord(adddresslist, datas);
+ datas.clear(); // 娓呯┖鏁翠釜鍒楄〃
+ //鍒ゆ柇璋冩嫧缁撴潫鍚庡啀娆″嚭鐗�
+ //濉叆鍑虹墖鏁版嵁
+ datas.add((short)prcid);
+ datas.add((short)1000);
+ datas.add((short)1);
+ datas.add((short)1);
+ S7control.getinstance().WriteWord(adddresslist, datas);
+ return Result.success(cagecell); //璋冩嫧浣嶇疆鐨勫弬鏁板唴瀹�
+
+ }
+
+ }
+ }
+
+}
}
--
Gitblit v1.8.0