From ca1ae93196be366e707647c42e3039512a2cf45f Mon Sep 17 00:00:00 2001
From: wu <731351411@qq.com>
Date: 星期二, 12 十一月 2024 14:00:24 +0800
Subject: [PATCH] 字段显示,结束任务功能更新,界面调整,测量显示
---
springboot-vue3/src/main/java/com/example/springboot/mapper/AlbaniaMapper.java | 10
springboot-vue3/src/main/java/com/example/springboot/mapper/QueueMapper.java | 3
Albania_Mes-ui/src/lang/locales/en-US.json | 1
Albania_Mes-ui/src/views/home/index.vue | 152 ++++++++++++++--
springboot-vue3/src/main/java/com/example/springboot/component/PlcHoldNew.java | 36 ++-
springboot-vue3/src/main/java/com/example/springboot/component/Plchome.java | 11
springboot-vue3/src/main/java/com/example/springboot/mapper/HomeMapper.java | 20 +
springboot-vue3/src/main/java/com/example/springboot/controller/HomeController.java | 5
springboot-vue3/src/main/java/com/example/springboot/mapper/GlassInfoMapper.java | 2
springboot-vue3/src/main/java/com/example/springboot/service/StorageCageService.java | 94 +++++++---
Albania_Mes-ui/src/api/home.js | 7
Albania_Mes-ui/src/lang/locales/zh-CN.json | 1
springboot-vue3/src/main/java/com/example/springboot/component/PLCAutoMes.java | 2
springboot-vue3/src/main/java/com/example/springboot/service/SpianServiceNew.java | 188 ++++++++++++++------
14 files changed, 400 insertions(+), 132 deletions(-)
diff --git a/Albania_Mes-ui/src/api/home.js b/Albania_Mes-ui/src/api/home.js
index 440cffd..2cdcf17 100644
--- a/Albania_Mes-ui/src/api/home.js
+++ b/Albania_Mes-ui/src/api/home.js
@@ -332,6 +332,13 @@
data:""
})
}
+export function TerminateTask(id) {
+ return request({
+ url: '/home/TerminateTask?id='+id,
+ method: 'post',
+ data:""
+ })
+}
export function SelectGlassInfo(width,height,thickness,films) {
return request({
diff --git a/Albania_Mes-ui/src/lang/locales/en-US.json b/Albania_Mes-ui/src/lang/locales/en-US.json
index 3989053..aa863fe 100644
--- a/Albania_Mes-ui/src/lang/locales/en-US.json
+++ b/Albania_Mes-ui/src/lang/locales/en-US.json
@@ -302,6 +302,7 @@
"Width":"Width",
"Operate":"Operate",
"Terminate Task":"Terminate Task",
+ "Terminate":"Terminate",
"cancel":"cancel",
"confirm":"confirm",
"Number":"Number",
diff --git a/Albania_Mes-ui/src/lang/locales/zh-CN.json b/Albania_Mes-ui/src/lang/locales/zh-CN.json
index 559a1bb..5484d3f 100644
--- a/Albania_Mes-ui/src/lang/locales/zh-CN.json
+++ b/Albania_Mes-ui/src/lang/locales/zh-CN.json
@@ -286,6 +286,7 @@
"Width": "瀹�",
"Operate": "鎿嶄綔",
"Terminate Task":"缁撴潫浠诲姟",
+ "Terminate":"缁撴潫",
"end task": "瀹屾垚浠诲姟",
"Number": "鏁伴噺",
"Outfeed glass barcode": "鍑虹墖鐜荤拑id",
diff --git a/Albania_Mes-ui/src/views/home/index.vue b/Albania_Mes-ui/src/views/home/index.vue
index c873062..c7389e0 100644
--- a/Albania_Mes-ui/src/views/home/index.vue
+++ b/Albania_Mes-ui/src/views/home/index.vue
@@ -220,6 +220,8 @@
.el-table .cell {
display: flex;
+ /* height: 30px;
+ line-height: 30px; */
}
.device {
@@ -332,6 +334,14 @@
font-weight: bold;
text-align: center;
}
+.el-table .el-table__body-wrapper tr {
+ height: 40px; /* 璁剧疆姣忚鐨勯珮搴︿负 30px */
+ line-height: 30px;
+}
+
+.el-table .el-table__body-wrapper td {
+ /* 纭繚鍗曞厓鏍煎唴瀹瑰瀭鐩村眳涓� */
+}
</style>
<template>
<el-container>
@@ -368,6 +378,9 @@
<el-button type="primary" @click="showform(4)" :disabled="SoftEmergencyStopState" style="z-index: 999;"
:class="SoftEmergencyStopState == true ? 'hide' : ''">
{{ $t('Task queue') }}</el-button>
+ <el-button type="primary" @click="showform(5)" :disabled="SoftEmergencyStopState" style="z-index: 999;"
+ :class="SoftEmergencyStopState == true ? 'hide' : ''">
+ {{ $t('Outing Queue') }}</el-button>
</div>
<div style="display: flex;align-items: center;overflow: hidden;">
@@ -444,10 +457,12 @@
<el-table-column prop="storageCage.glassHeight" :label="$t('Height')"></el-table-column>
<el-table-column prop="storageCage.thickness" :label="$t('Thickness')"></el-table-column>
<el-table-column prop="storageCage.films" :label="$t('Films')"></el-table-column>
- <el-table-column :min-width="100" :label="$t('Terminate Task')">
+ <el-table-column :min-width="120" :label="$t('Terminate Task')">
<template slot-scope='scope'>
<el-button type="primary" style="padding: 4px 10px;font-size: 12px;"
@click="FinishTask(scope.row.id)">{{ $t('Complete') }}</el-button>
+ <el-button type="primary" style="padding: 4px 10px;font-size: 12px;"
+ @click="TerminateTask(scope.row.id)">{{ $t('Terminate') }}</el-button>
</template>
</el-table-column>
</el-table>
@@ -460,10 +475,12 @@
<el-table-column prop="storageCage.thickness" :label="$t('Thickness')"></el-table-column>
<el-table-column prop="storageCage.films" :label="$t('Films')"></el-table-column>
- <el-table-column :min-width="100" :label="$t('Terminate Task')">
+ <el-table-column :min-width="120" :label="$t('Terminate Task')">
<template slot-scope='scope'>
<el-button type="primary" style="padding: 4px 10px;font-size: 12px;"
@click="FinishTask(scope.row.id)">{{ $t('Complete') }}</el-button>
+ <el-button type="primary" style="padding: 4px 10px;font-size: 12px;"
+ @click="TerminateTask(scope.row.id)">{{ $t('Terminate') }}</el-button>
</template>
</el-table-column>
</el-table>
@@ -509,12 +526,12 @@
<el-dialog :visible.sync="Measure" :title="$t('Measure')" top="5vh"><!--娴嬮噺椤甸潰-->
<!--娴嬮噺椤甸潰涓讳綋-->
- <div style="height: 800px;">
+ <div style="height: 760px;">
<!--鍔熻兘-->
<div>
- <el-button type="primary" @click="ManualMatching()" :disabled="(this.LastQueue.state > 1)"
+ <el-button type="primary" @click="ManualMatching()" :disabled="(this.LastQueue.state > 0)"
style="z-index: 999;">{{ $t('Manual matching') }}</el-button>
- <el-button type="primary" @click="ManualTake()" :disabled="(this.LastQueue.state > 1)"
+ <el-button type="primary" @click="ManualTake()" :disabled="(this.LastQueue.state > 0)"
style="z-index: 999;">{{
$t('Manual removal') }}</el-button>
<el-button type="primary" @click="AnewMeasure()"
@@ -541,21 +558,20 @@
</div>
<br>
<!--鏄剧ず-->
- <div style="width:1000px;height: 720px;border: 2px solid #d1d1d1;float: left;">
+ <div style="width:900px;height: 720px;border: 2px solid #d1d1d1;float: left;">
<!--鐜荤拑鍥� #81b337-->
- <div
- :style="'top:10px;bottom: 10px;left: 10px;right: 10px;margin:' + ((720 - (this.LastQueue.glassheight / 25 * 7)) / 2) + 'px auto;width:'
+ <div :style="'top:10px;bottom: 10px;left: 10px;right: 10px;margin:'
+ + ((720 - (this.LastQueue.glassheight / 25 * 7)) / 2) + 'px auto;width:'
+ (this.LastQueue.glasswidth / 25 * 7) + 'px;height:'
+ (this.LastQueue.glassheight / 25 * 7) + 'px;line-height: '
+ (this.LastQueue.glassheight / 25 * 7 / 3) + 'px; background-color: '
- + (this.LastQueue.state > 0 ? '#4CCCE4' : (this.LastQueue.state == 0 ? '#E4CA4C' : '#E4CA4C')) + ';text-align: center;font-size:50px'">
+ + (this.LastQueue.state > 0 ? '#4CCCE4' : (this.LastQueue.state == 0 ? '#E4CA4C' : 'red')) + ';text-align: center;font-size:50px'">
<div>
{{ $t('Measure') }}
</div>
<div>
- {{ $t('Width') + "*" + $t('Height') }}:{{ (this.LastQueue.glasswidth +
- this.LastQueue.glassheight) != 0 ? (this.LastQueue.glasswidth +
- "*" + this.LastQueue.glassheight) + "" : "" }}
+ {{ $t('Width') + "*" + $t('Height') }}:{{ (this.LastQueue.glasswidth +this.LastQueue.glassheight) != 0 ?
+ (this.LastQueue.glasswidth +"*" + this.LastQueue.glassheight) + "" : "" }}
</div>
<div>
@@ -699,19 +715,105 @@
:value="item.value">
</el-option>
</el-select>
- <el-button type="primary" style="padding: 4px 10px;font-size: 12px;margin-left: 6px;"
- v-show="scope.row.state >= 0 ? true : false"
- @click="ClaimTasks(scope.row.flowcard, scope.row.state, selected[scope.$index], scope.row.line)">
- {{ scope.row.state > 0 ? $t('Stop Task') : $t('Start Task') }}</el-button>
+ <el-button type="primary" style="padding: 4px 10px;font-size: 12px;"
+ v-show="scope.row.state >= 0 ? true : false" @click="StartChange(scope.row.flowcard, scope.row.orderstate)">
+ {{ scope.row.orderstate > 0 ? $t('stop work') : $t('start work') }}</el-button>
+
<el-button type="primary" style="padding: 4px 10px;font-size: 12px;"
v-show="scope.row.state >= 0 ? true : false"
@click="ModeChange(scope.row.flowcard, scope.row.method)">
{{ $t('Mode Change') }}</el-button>
+ <el-button type="primary" style="padding: 4px 10px;font-size: 12px;margin-left: 6px;"
+ v-show="scope.row.state >= 0 ? true : false"
+ @click="ClaimTasks(scope.row.flowcard, scope.row.state, selected[scope.$index], scope.row.line)">
+ {{ scope.row.state > 0 ? $t('Stop Task') : $t('Start Task') }}</el-button>
+
+ <el-button type="primary" style="padding: 4px 10px;font-size: 12px;"
+ v-show="scope.row.state >= 0 ? true : false" @click="deleteTasks(scope.row.flowcard)">
+ {{ $t('langDelete') }}</el-button>
+
+ </template>
+ </el-table-column>
+ </el-table>
+ </el-dialog>
+ <!-- 鍑虹墖闃熷垪鏄剧ず琛� -->
+ <el-dialog :visible.sync="Outqueue" :title="$t('Outing Queue')" top="5vh">
+ <el-table :data="tableData2" style="width: 100%;margin-bottom: 20px;" row-key="id" border lazy
+ :tree-props="{ children: 'glassinfo', hasChildren: 'hasChildren' }">
+ <el-table-column prop="flowcard" :label="$t('Order')" width="150" align="center">
+ <template slot-scope='scope'>
+ <div>
+ {{ scope.row.flowcard }}
+ </div>
+ </template>
+ </el-table-column>
+ <el-table-column prop="mateid" :label="$t('Mateid')" align="center">
+ </el-table-column>
+ <el-table-column prop="tier" :label="$t('Tier')" align="center">
+ </el-table-column>
+ <el-table-column prop="number" :label="$t('Number')" align="center">
+ </el-table-column>
+ <el-table-column prop="cageno" :label="$t('Cage GlassNumber')" align="center">
+ </el-table-column>
+ <el-table-column prop="finishnumber" :label="$t('Finish No')" align="center">
+ </el-table-column>
+ <el-table-column prop="mateid" :label="$t('Mate No')" align="center">
+ </el-table-column>
+ <el-table-column prop="films" :label="$t('Films')" align="center">
+ </el-table-column>
+ <el-table-column prop="thickness" :label="$t('Thickness')" align="center">
+ </el-table-column>
+ <el-table-column prop="width" :label="$t('Width')" align="center">
+ </el-table-column>
+ <el-table-column prop="height" :label="$t('Height')" align="center">
+ </el-table-column>
+ <el-table-column prop="state" :label="$t('Task State')" align="center">
+ <template slot-scope='scope'>
+ <div
+ :style="{ backgroundColor: scope.row.state === 0 ? '' : '#00FFFF', width: '105%', height: '125%', lineHeight: '50px' }">
+ {{ scope.row.state >= 0 ? scope.row.state == 0 ? $t('Stop') : $t('Start') : "" }}
+ </div>
+ </template>
+ </el-table-column>
+ <!-- <el-table-column prop="state" :label="$t('Task State')" align="center">
+ <template slot-scope='scope'>
+ {{ scope.row.state >= 0 ? scope.row.state == 0 ? $t('Stop') : $t('Start') : "" }}
+ </template>
+ </el-table-column> -->
+ <el-table-column prop="method" :label="$t('Task Method')" align="center">
+ <template slot-scope='scope'>
+ <div style="text-align: center;width: 105%;">
+ {{ scope.row.state >= 0 ? (scope.row.method == 0 ? $t('Out') : $t('All Out')) : "" }}
+ </div>
+ </template>
+ </el-table-column>
+ <el-table-column prop="line" :label="$t('Task Line')">
+ </el-table-column>
+ <el-table-column width="380" :label="$t('Operate')">
+
+ <template slot-scope='scope'>
+ <el-select v-model="selected[scope.$index]" :placeholder="$t('Line')"
+ v-show="scope.row.state >= 0 ? true : false">
+ <el-option v-for="item in options" :key="item.value" :label="item.label"
+ :value="item.value">
+ </el-option>
+ </el-select>
<el-button type="primary" style="padding: 4px 10px;font-size: 12px;"
v-show="scope.row.state >= 0 ? true : false" @click="StartChange(scope.row.flowcard, scope.row.orderstate)">
{{ scope.row.orderstate > 0 ? $t('stop work') : $t('start work') }}</el-button>
+
+
+ <el-button type="primary" style="padding: 4px 10px;font-size: 12px;"
+ v-show="scope.row.state >= 0 ? true : false"
+ @click="ModeChange(scope.row.flowcard, scope.row.method)">
+ {{ $t('Mode Change') }}</el-button>
+
+ <el-button type="primary" style="padding: 4px 10px;font-size: 12px;margin-left: 6px;"
+ v-show="scope.row.state >= 0 ? true : false"
+ @click="ClaimTasks(scope.row.flowcard, scope.row.state, selected[scope.$index], scope.row.line)">
+ {{ scope.row.state > 0 ? $t('Stop Task') : $t('Start Task') }}</el-button>
<el-button type="primary" style="padding: 4px 10px;font-size: 12px;"
v-show="scope.row.state >= 0 ? true : false" @click="deleteTasks(scope.row.flowcard)">
@@ -738,11 +840,11 @@
<el-table :data="this.StorageCageAddInfo" :height="700" border style="width: 100%;overflow: auto;">
<el-table-column prop="flowcard" :label="$t('Flowcard')"></el-table-column>
<el-table-column prop="tier" :label="$t('Tier')"></el-table-column>
- <el-table-column prop="mateid" :label="$t('Mateid')"></el-table-column>
<el-table-column prop="width" :label="$t('Width')"></el-table-column>
<el-table-column prop="height" :label="$t('Height')"></el-table-column>
<el-table-column prop="thickness" :label="$t('Thickness')"></el-table-column>
<el-table-column prop="films" :label="$t('Films')"></el-table-column>
+ <el-table-column prop="mateid" :label="$t('Mateid')"></el-table-column>
<el-table-column :label="$t('Operate')">
<template slot-scope='scope'>
<el-button type="primary" style="padding: 4px 10px;font-size: 12px;"
@@ -762,7 +864,7 @@
Disabled, SelectPermissionByUserName, currentUsername, CompleteQueue,
isAllowReorderings,
- UpdateStroageCageByCell, FinishTask, SelectGlassInfo, StorageCageAddGlass, ClaimTasks, ModeChange, UpdateQueue, importData, ManualTake, AnewMeasure, StartChange, deleteTasks,SaveMeasure
+ UpdateStroageCageByCell, FinishTask,TerminateTask, SelectGlassInfo, StorageCageAddGlass, ClaimTasks, ModeChange, UpdateQueue, importData, ManualTake, AnewMeasure, StartChange, deleteTasks,SaveMeasure
} from "../../api/home";
@@ -800,6 +902,7 @@
dataList: [],
tableData1: [],
+ tableData2: [],
Measuermode: false,
confirm1: false,
confirm2: false,
@@ -815,6 +918,7 @@
Measure: false,
StorageCage: false,
Taskqueue: false,
+ Outqueue: false,
StorageCageAdd: false,
StorageCageInfo: [],
StorageCageForm: {
@@ -921,6 +1025,8 @@
this.StorageCage = true;
} else if (i == 4) {
this.Taskqueue = true;
+ }else if (i == 5) {
+ this.Outqueue = true;
}
},
init() {
@@ -992,6 +1098,7 @@
}
this.tableData1 = obj.OrderTask[0];
+ this.tableData2 = obj.OrderTask[0];
this.LastQueue = obj.LastQueue[0];
//鏄惁鍏佽鍑虹墖
@@ -1174,6 +1281,15 @@
}
});
},
+ //缁撴潫杩�/鍑虹墖浠诲姟
+ TerminateTask(id) {
+ TerminateTask(id).then(res => {
+ if (res.data.message == 200) {
+ this.$message.success(this.$t('Operation successful'));
+ }
+ });
+ },
+
//淇敼鐞嗙墖绗肩幓鐠冧俊鎭�
UpdateStroageCageByCell(cell, nownum, num) {
if (nownum == null && num == 1) {
diff --git a/springboot-vue3/src/main/java/com/example/springboot/component/PLCAutoMes.java b/springboot-vue3/src/main/java/com/example/springboot/component/PLCAutoMes.java
index 302156c..667d179 100644
--- a/springboot-vue3/src/main/java/com/example/springboot/component/PLCAutoMes.java
+++ b/springboot-vue3/src/main/java/com/example/springboot/component/PLCAutoMes.java
@@ -46,7 +46,7 @@
public void run() {
while (this != null) {
try {
- Thread.sleep(100);
+ Thread.sleep(50);
} catch (InterruptedException e) {
e.printStackTrace();
diff --git a/springboot-vue3/src/main/java/com/example/springboot/component/PlcHoldNew.java b/springboot-vue3/src/main/java/com/example/springboot/component/PlcHoldNew.java
index 8756fe9..dbf369f 100644
--- a/springboot-vue3/src/main/java/com/example/springboot/component/PlcHoldNew.java
+++ b/springboot-vue3/src/main/java/com/example/springboot/component/PlcHoldNew.java
@@ -17,7 +17,7 @@
private StorageCageService storageCageService;
int aaa;
String huibao = "";
-
+ String qidong = "";
@Override
public void run() {
@@ -32,7 +32,8 @@
storageCageService = WebSocketServer.applicationContext.getBean(StorageCageService.class);
spianService = WebSocketServer.applicationContext.getBean(SpianServiceNew.class);
albaniaMapper = WebSocketServer.applicationContext.getBean(AlbaniaMapper.class);
- spianService.selectout(1);
+ // spianService.selectout(1);
+ // spianService.mateOut();
// 璇诲彇DB14鍖烘枃浠�
PlcParameterObject plcmes = PLCAutoMes.PlcMesObject;
if (plcmes.getPlcParameter("PLCToMES").getValue() != null) {
@@ -42,11 +43,16 @@
String IDStatus1 = plcmes.getPlcParameter("IDStatus1").getValue();// 1鍙蜂换鍔″畬鎴�
String MESToPLCStatus1 = plcmes.getPlcParameter("MESToPLCStatus1").getValue();// 1鍙风‘璁ゅ瓧
String MESToPLC = plcmes.getPlcParameter("MESToPLC").getValue();// 鍙戦�佷换鍔″瓧
+
int taskcont = albaniaMapper.SelectTaskcount(); // 姝e湪杩涜鐨勪换鍔℃暟閲�
int outtask = albaniaMapper.SelectOutTaskCount(); // 绛夊緟琛ュ彂鐨勫嚭鐗囦换鍔℃暟閲�
- if(outtask>0){
- spianService.mateOut();
+ if (ExportTOMES1 != null && MESToPLC != null && taskcont == 0) {
+ //褰撳彲浠ュ彂浠诲姟骞朵笖鍑虹墖闃熷垪鏈変换鍔℃椂
+ if (ExportTOMES1.equals("1") == true && MESToPLC.equals("0") == true && PLCToMES.equals("1") == true&&outtask>0 && MESToPLCStatus1.equals("0")) {
+ spianService.mateOut();
+ }
}
+
// String scan=plcmes.getPlcParameter("scan").getValue();//鍙戦�佹壂鐮佷俊鎭�
// if(scan.equals("1")==true){
// spianService.scan(scan);
@@ -57,12 +63,22 @@
System.out.println("姹囨姤璁板綍:" + IDStatus1 + "鏃堕棿" + currentTime);
}
huibao = IDStatus1;
+ if (!qidong.equals(MESToPLC)) {
+ System.out.println("鍚姩璁板綍:" + MESToPLC + "鏃堕棿" + currentTime);
+ }
+ qidong = MESToPLC;
+
+ PLCToMES = plcmes.getPlcParameter("PLCToMES").getValue();// 杩愰�佽溅璇锋眰
+ IDStatus1 = plcmes.getPlcParameter("IDStatus1").getValue();// 1鍙蜂换鍔″畬鎴�
+ MESToPLCStatus1 = plcmes.getPlcParameter("MESToPLCStatus1").getValue();// 1鍙风‘璁ゅ瓧
+ MESToPLC = plcmes.getPlcParameter("MESToPLC").getValue();// 鍙戦�佷换鍔″瓧
+
// 涓�鍙风嚎璇锋眰
if (ExportTOMES1 != null && MESToPLC != null && taskcont == 0) {
if (ExportTOMES1.equals("1") == true && MESToPLC.equals("0") == true && PLCToMES.equals("1") == true
- && MESToPLCStatus1.equals("0") == true) {
- System.out
- .println("鍑虹墖鐘舵��:MESToPLC:" + MESToPLC + "PLCToMES:" + PLCToMES + "MESToPLCStatus1:" + MESToPLCStatus1);
+ && MESToPLCStatus1.equals("0") == true&&outtask == 0) {
+ // System.out
+ // .println("鍑虹墖鐘舵��:MESToPLC:" + MESToPLC + "PLCToMES:" + PLCToMES + "MESToPLCStatus1:" + MESToPLCStatus1);
spianService.selectout(1);
try {
Thread.sleep(200); // 姣�100姣妫�鏌ヤ竴娆�
@@ -79,14 +95,14 @@
// 杩愰�佽溅璇锋眰鍜屾祴閲忓畬鎴愯姹�
GlassInfo glass = albaniaMapper.SelectGlass();
if (PLCToMES != null && glass != null && MESToPLC != null && taskcont == 0) {
- if (PLCToMES.equals("1") == true && MESToPLC.equals("0") == true && MESToPLCStatus1.equals("0") == true) {
+ if (PLCToMES.equals("1") == true && MESToPLC.equals("0") == true && MESToPLCStatus1.equals("0") == true&&outtask == 0) {
try {
Thread.sleep(100); // 姣�100姣妫�鏌ヤ竴娆�
} catch (InterruptedException e) {
Thread.currentThread().interrupt(); // 澶勭悊绾跨▼涓柇
}
- System.out
- .println("杩涚墖鐘舵��:MESToPLC:" + MESToPLC + "PLCToMES:" + PLCToMES + "MESToPLCStatus1:" + MESToPLCStatus1);
+ // System.out
+ // .println("杩涚墖鐘舵��:MESToPLC:" + MESToPLC + "PLCToMES:" + PLCToMES + "MESToPLCStatus1:" + MESToPLCStatus1);
spianService.selectAll(glass);
}
}
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 20a2049..0c83048 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
@@ -158,8 +158,9 @@
S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToGaStatus").getAddress(),
(short) 1);
- } else if (istest) {
- // 閲嶆柊娴嬮噺
+ }
+ else if (istest) {
+ // 鍖归厤澶辫触
S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToGaStatus").getAddress(),
(short) 4);
@@ -173,7 +174,7 @@
List<GlassInfo> glassInfoFlowCard = glassInfoMapper.selectOrderState(1);
jsonObject.append("glassInfoFlowCard", glassInfoFlowCard);
- Queue LastQueue = QueueMapper.selectLastQueue();
+ Queue LastQueue = QueueMapper.selectLastQueue2();
if (LastQueue == null) {
Queue nullQueue = new Queue();
nullQueue.setglassId("");
@@ -185,8 +186,8 @@
jsonObject.append("LastQueue", nullQueue);
} else {
if (LastQueue.getstate() < 1) {
- LastQueue.setglasswidth(0);
- LastQueue.setglassheight(0);
+ LastQueue.setglasswidth(LastQueue.getglasswidthmm());
+ LastQueue.setglassheight(LastQueue.getglassheightmm());
}
jsonObject.append("LastQueue", LastQueue);
}
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 9f6a8d9..8d9154f 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
@@ -502,6 +502,11 @@
public Result FinishTask(Integer id) {
return storageCageService.FinishTask();
}
+ // 鎵嬪姩缁撴潫浠诲姟
+ @PostMapping("/TerminateTask")
+ public Result TerminateTask(Integer id) {
+ return storageCageService.TerminateTask(id);
+ }
// 鏌ヨ鐜荤拑淇℃伅
@PostMapping("/SelectGlassInfo")
diff --git a/springboot-vue3/src/main/java/com/example/springboot/mapper/AlbaniaMapper.java b/springboot-vue3/src/main/java/com/example/springboot/mapper/AlbaniaMapper.java
index a0f59c0..68a6fb8 100644
--- a/springboot-vue3/src/main/java/com/example/springboot/mapper/AlbaniaMapper.java
+++ b/springboot-vue3/src/main/java/com/example/springboot/mapper/AlbaniaMapper.java
@@ -45,7 +45,7 @@
@Select("select * from v_cagerelease2 where mateid not in(select mateid from v_cagerelease2 where surplus=0 group by mateid)LIMIT 1;")
GlassInfo SelectOutGlass2();
//寰呭嚭鐗囦换鍔℃煡璇�
- @Select("select * from out_task where task_state=0")
+ @Select("select * from out_task where task_state=0 order by id asc;")
List<StorageTask> SelectOutTask();
//娴佺▼鍗′换鍔℃煡璇�
@Select("select G.flowcard,G.glasstype,G.number,G.mateid,G.tier,G.starttime,G.finishnumber,IF((G.number-G.finishnumber-ku.KuCount)<0,G.number,IFNULL(ku.KuCount,0)) as 'surplus',G.totaltier as id,G.width,G.glassid from (select Gfd.flowcard,Ggf.glasstype,Ggf.number,Ggf.mateid,Ggf.tier,Ggf.finishnumber,Gfd.starttime,Gfd.totaltier,Ggf.width,Ggf.glassid from flowcard as Gfd LEFT JOIN glassinfo as Ggf on Gfd.flowcard=Ggf.flowcard where Gfd.state=1 and Gfd.line=1) as G left join (select glasstype,sum(number) AS KuCount from storage_cage where glasstype is not null and disabled=0 group by glasstype) as ku on G.glasstype=ku.glasstype where G.mateid not in(select mateid from v_cagerelease1 where surplus=0 group by mateid) HAVING surplus>0 order by `g`.`starttime`,`g`.`mateid`,`g`.`finishnumber`,`g`.`tier`LIMIT 1;")
@@ -74,7 +74,7 @@
@Select("select method,flowcard from flowcard where state=1 and line=#{line} ORDER BY starttime LIMIT 1;")
GlassInfo SelectMethod(int line);
//鐩村嚭妯″紡浠诲姟鏌ヨ
- @Select("select b.flowcard,b.glassid,b.glasstype,b.mateid,b.width,b.tier,a.totaltier as id,IFNULL(c.number,0)as number,b.glassid from flowcard a left join glassinfo b on a.flowcard=b.flowcard left join(select sum(number)as number,glasstype from storage_cage GROUP BY glasstype)c on b.glasstype=c.glasstype where a.line=1 and c.number>0 and b.finishnumber<b.number ORDER BY b.finishnumber,b.tier asc limit 1")
+ @Select("select b.flowcard,b.glassid,b.glasstype,b.mateid,b.width,b.tier,a.totaltier as id,IFNULL(c.number,0)as number,b.glassid from flowcard a left join glassinfo b on a.flowcard=b.flowcard left join(select sum(number)as number,glasstype from storage_cage GROUP BY glasstype)c on b.glasstype=c.glasstype where a.line=1 and a.state=1 and c.number>0 and b.finishnumber<b.number ORDER BY b.finishnumber,b.tier asc limit 1")
GlassInfo SelectOutGlass2(int line);
//鏌ヨ鐩撮�氭ā寮忎笅鏈�鍚庝竴鍧�
@Select("select IFNULL(b.tier, 0) from flowcard a left join glassinfo b on a.flowcard=b.flowcard left join(select sum(number)as number,glasstype from storage_cage GROUP BY glasstype)c on b.glasstype=c.glasstype where a.line=#{line} and c.number>0 ORDER BY b.tier desc LIMIT 1")
@@ -106,4 +106,10 @@
//鏌ヨ姝ら厤鐗噄d鏄惁鏈夊彲鍑虹墖鏁伴噺
@Select("SELECT CASE WHEN number >finishnumber THEN '瓒冲' ELSE '涓嶈冻' END AS status FROM glassinfo a WHERE a.flowcard =#{flowcard} AND a.mateid =#{mateid}")
List<String> SelectOutGlass8(String flowcard,int mateid);
+ //鏌ヨ鐜荤拑淇℃伅
+ @Select("select * from glassinfo where glasstype=#{glasstype} limit 1")
+ GlassInfo SelectGlassInfo(int glasstype);
+ //瀹屾垚鍑虹墖闃熷垪鐨勪换鍔�
+ @Update("update out_task set task_state=1 where id=#{id};")
+ void UpdateOutTask(int id);
}
diff --git a/springboot-vue3/src/main/java/com/example/springboot/mapper/GlassInfoMapper.java b/springboot-vue3/src/main/java/com/example/springboot/mapper/GlassInfoMapper.java
index c974a6a..7ace4e6 100644
--- a/springboot-vue3/src/main/java/com/example/springboot/mapper/GlassInfoMapper.java
+++ b/springboot-vue3/src/main/java/com/example/springboot/mapper/GlassInfoMapper.java
@@ -24,6 +24,8 @@
@Update("UPDATE glassinfo SET measurenumber = measurenumber+1 WHERE id = #{id}")
void updatemeasurenumber(@Param("id") int roleId);
+ @Update("UPDATE glassinfo SET measurenumber = measurenumber-1 WHERE glasstype = #{glasstype}")
+ void updateGlassNumber(@Param("glasstype") int glasstype);
// @Insert("INSERT INTO role_permission (role_id, permission_id, state) VALUES (#{roleId}, #{permissionId}, #{state})")
// void insert(@Param("roleId") int roleId, @Param("permissionId") int permissionId, @Param("state") int state);
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 018e422..2164519 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
@@ -261,9 +261,12 @@
// 鏍规嵁鏍煎瓙鏌ヨ鐜荤拑淇℃伅
@Select("select * from storage_cage where cell=#{cell}")
StorageCage SelectStorageByCell(String cell);
+ //鏍规嵁鐜荤拑绫诲瀷鏌ヨ鐜荤拑淇℃伅
+ @Select("select a.shelf_rack as cage,a.load_rack as cell,b.mateid,b.width as glasswidth,b.height as glassheight,b.thickness,b.films from storage_task a left join glassinfo b on a.glasstype=b.glasstype where a.id=#{id} limit 1")
+ StorageCage SelectStorageByCellGlass(Integer id);
// 鎵嬪姩瀹屾垚浠诲姟
- @Select("update storage_task set task_state=1 where id=#{id}")
+ @Select("update storage_task set task_state=#{state} where id=#{id}")
void FinishTask(Integer id, int state);
//浜哄伐鍖归厤娴嬮噺鏌ヨ
@Select("select gi.* from glassinfo gi inner join flowcard fc on gi.flowcard=fc.flowcard where fc.state!=2 and fc.orderstate=1 and position(#{width} in gi.width) and position(#{height} in gi.height) and position(#{thickness} in gi.thickness) and position(#{films} in gi.films) group by gi.id")
@@ -280,7 +283,7 @@
// @Select("select gi.*,sum(sc.number) as cageno from glassinfo gi left join storage_cage sc on gi.glasstype=sc.glasstype where gi.flowcard=#{flowcard} group by gi.id order by gi.mateid,gi.tier")
// List<GlassInfo> SelectOrderView(String flowcard);
- @Select("select gi.id, gi.glasstype, gi.mateid, gi.glassid, gi.tier, gi.films, gi.width, gi.height, gi.thickness, gi.number, gi.finishnumber, gi.sumtier, gi.measurenumber,sum(sc.number) as cageno,IFNULL(c.orderstate,0) as orderstate from glassinfo gi left join storage_cage sc on gi.glasstype=sc.glasstype left join flowcard c on gi.flowcard=c.flowcard where gi.flowcard=#{flowcard} group by gi.id order by gi.mateid,gi.tier")
+ @Select("select gi.id, gi.glasstype, gi.mateid, gi.glassid, gi.tier, gi.films, gi.width, gi.height, gi.thickness, gi.number, gi.finishnumber, gi.sumtier, gi.measurenumber,sum(sc.number) as cageno,IFNULL(c.orderstate,0) as orderstate from glassinfo gi left join storage_cage sc on gi.glasstype=sc.glasstype left join flowcard c on gi.flowcard=c.flowcard where gi.flowcard=#{flowcard} group by gi.id,orderstate order by gi.mateid,gi.tier")
List<GlassInfo> SelectOrderView(String flowcard);
@@ -307,19 +310,24 @@
@Update("Update glassinfo set flowcard=CONCAT('宸插垹闄�', #{flowcard}) where flowcard=#{flowcard}")
int deleteGlassinfo(String flowcard);
-
+ //浜哄伐鍖归厤淇敼涓�鏉�
@Update("update queue set glassid=concat(#{flowcard},'-',#{tier}),flowcard=#{flowcard},glasswidth=#{width},glassheight=#{height},glasstype=#{glasstype},thickness=#{thickness},mateid=#{mateid},state=1 where state<=0")
void UpdateQueue(String flowcard, double width, double height, Integer glasstype, Double thickness, Integer tier,int mateid);
//浜哄伐鍖归厤鏂板涓�鏉�
@Insert("INSERT INTO queue (flowcard,glassid,glasswidth,glassheight,glasstype,thickness,mateid,state) VALUES (#{flowcard},concat(#{flowcard},'-',#{tier}),#{width},#{height},#{glasstype},#{thickness},#{mateid},1)")
int AddQueue(String flowcard, double width, double height, Integer glasstype, Double thickness, Integer tier,int mateid);
+ //鍒ゆ柇娴嬮噺琛ㄦ槸鍚︽湁鍙洿鏀圭殑鏁版嵁
+ @Select("select count(*) from queue where state<1")
+ int SelectQueue();
@Update("update glassinfo set finishnumber=ifnull(finishnumber,0)+1 where flowcard=#{flowcard} and mateid=#{mateid} and tier=#{geTier}")
void AddGlassNo(String flowcard, Integer mateid, Integer geTier);
+ @Update("update glassinfo set finishnumber=ifnull(finishnumber,0)-1 where glasstype=#{glasstype}")
+ void OutGlassNo(Integer glasstype);
// 娣诲姞鍑虹墖闃熷垪
@Insert("INSERT INTO glassinfo (`flowcard`, `glasstype`, `mateid`, `glassid`, `tier`, `films`, `width`, `height`, `thickness`, `number`, `finishnumber`, `sumtier`, `measurenumber`)"
+
- " VALUES (#{flowcard}, #{glasstype}, #{mateid}, #{glassid}, #{tier}, #{films}, #{width}, #{height}, #{thickness}, #{number}, 0, #{sumtier}, 0)")
+ " VALUES (#{flowcard}, #{glasstype}, #{mateid}, #{glassid}, #{tier}, #{films}, CASE WHEN #{width} > #{height} THEN #{width} ELSE #{height} END, CASE WHEN #{height} > #{width} THEN #{width} ELSE #{height} END, #{thickness}, #{number}, 0, #{sumtier}, 0)")
void AddGlassinfo(String flowcard, Integer glasstype, Integer mateid, String glassid, Integer tier, String films,
Double width, Double height, Double thickness, Integer number, Integer sumtier);
@@ -327,7 +335,7 @@
@Select("select max(glasstype)+1 from glassinfo")
Integer SelectMaxType();
// 鏈�澶х幓鐠冪被鍨�
- @Select("select glasstype from glassinfo where CONCAT(width,'_',height,'_',thickness,'_',films,'_',flowcard)=#{key} limit 1")
+ @Select("select glasstype from glassinfo where CONCAT(width,'_',height,'_',thickness,'_',films,'_',flowcard,'_',mateid)=#{key} limit 1")
Integer SelectMaxTypes(String key);
//鏌ヨ鎵�鏈夌幓鐠冭啘绯诲拰鍘氬害
@@ -356,7 +364,7 @@
+" select #{flowcard}, 0, #{number}, 0, 0, 0, now() where 0=( select count(*) from flowcard where flowcard=#{flowcard});")
void InsertFlowcard(String flowcard, Integer number);
- @Delete("DELETE FROM queue WHERE id = (SELECT id FROM ( SELECT id FROM queue WHERE glassid = #{glassId} ORDER BY time ASC LIMIT 1) AS temp);")
+ @Delete("DELETE FROM queue WHERE id = (SELECT id FROM ( SELECT id FROM queue WHERE glasstype = #{glassId} ORDER BY time ASC LIMIT 1) AS temp);")
void DeletequeueByGlassid(String glassId);
@Select("select count(*) from flowcard where line=#{line} and state=1 and flowcard!=#{flowcard}")
diff --git a/springboot-vue3/src/main/java/com/example/springboot/mapper/QueueMapper.java b/springboot-vue3/src/main/java/com/example/springboot/mapper/QueueMapper.java
index e2a4826..02da05f 100644
--- a/springboot-vue3/src/main/java/com/example/springboot/mapper/QueueMapper.java
+++ b/springboot-vue3/src/main/java/com/example/springboot/mapper/QueueMapper.java
@@ -20,6 +20,9 @@
@Select("SELECT * FROM queue order by time desc limit 1")
Queue selectLastQueue();
+ @Select("SELECT * FROM queue where state<2 order by time desc limit 1")
+ Queue selectLastQueue2();
+
@Select("SELECT * FROM queue where state<=0")
List<Queue> selectErrorQueues();
diff --git a/springboot-vue3/src/main/java/com/example/springboot/service/SpianServiceNew.java b/springboot-vue3/src/main/java/com/example/springboot/service/SpianServiceNew.java
index f2a2366..0641df8 100644
--- a/springboot-vue3/src/main/java/com/example/springboot/service/SpianServiceNew.java
+++ b/springboot-vue3/src/main/java/com/example/springboot/service/SpianServiceNew.java
@@ -9,6 +9,7 @@
import com.example.springboot.component.S7control;
import com.example.springboot.entity.GlassInfo;
import com.example.springboot.entity.StorageCage;
+import com.example.springboot.entity.StorageTask;
import com.example.springboot.entity.device.PlcParameterObject;
import com.example.springboot.mapper.AlbaniaMapper;
import com.google.common.primitives.Bytes;
@@ -48,7 +49,7 @@
} else {
// 鍒ゆ柇鐜荤拑鏄惁杩涘叆澶х墖绗�
- if (glassInfo.getThickness() >= 15) {
+ if (glassInfo.getThickness() > 4 &&glassInfo.getWidth()>= 1500) {
cage = albaniaMapper.SelectNewCell(3, 5);
} else {
cage = albaniaMapper.SelectNewCell(0, 4);
@@ -58,7 +59,7 @@
// 褰撹繑鍥炵殑鏍煎瓙鍙蜂负绌烘椂,杩斿洖400绗煎瓙宸叉弧
if (cage != null) {
albaniaMapper.AddCage(cage.getId(), glassid, width, height, 1, glasstype, 0, thickness,
- glassfilms.getFilms(),glassfilms.getFlowcard(),glassfilms.getMateid());
+ glassfilms.getFilms(), glassfilms.getFlowcard(), glassfilms.getMateid());
Mestast(glassid, 1001, cage.getId(), 1, "MESID1", 1);
System.out.println("浠诲姟鍙戦�佺幓鐠僫d:" + glassid + "璧峰浣嶇疆:" + 1001 + "鏍煎瓙鍙�:" + cage.getId() + "鍚姩:" + 1);
albaniaMapper.UpdateStorage(width, height, cage.getId());
@@ -72,12 +73,43 @@
return (200);
}
- //琛ュ厖鍑虹墖
+
+ // 琛ュ厖鍑虹墖
public Short mateOut() {
double carwidth = -300;
- list<StorageTask> glassmate = albaniaMapper.SelectMateOut();
+
+ List<StorageTask> glassmate = albaniaMapper.SelectOutTask();
+ String type=glassmate.get(0).getTaskType();
+ if (glassmate.size() == 0) {
+ return (400);
+ } else {
+ for (int i = 0; i < glassmate.size(); i++) {
+ GlassInfo glass = albaniaMapper.SelectGlassInfo(glassmate.get(i).getGlasstype());
+ carwidth = carwidth + glass.getWidth() + 300;
+ if (carwidth >= 4300&&type!=glassmate.get(i).getTaskType()) {
+ S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToPLC").getAddress(), (short) 1);// 鍑虹墖浠诲姟鍚姩
+ return (200);
+ } else {
+ //澧炲姞涓�鏉′换鍔¤褰�
+ albaniaMapper.Inserttask(1, 0, Integer.parseInt(glassmate.get(i).getShelfRack()), 2001,
+ glassmate.get(i).getGlassId(), glassmate.get(i).getGlasstype(),
+ glassmate.get(i).getFlowcard(), glassmate.get(i).getMateid(), glassmate.get(i).geTier());
+ //瀹屾垚鍑虹墖闃熷垪鐨勪换鍔�
+ albaniaMapper.UpdateOutTask(glassmate.get(i).getId());
+ //鍙戦�乸lc浠诲姟
+ Mestast(glassmate.get(i).getGlassId(),
+ Integer.parseInt(glassmate.get(i).getShelfRack()), 2001, 0, "MESID" + (i + 1),i + 1);
+ System.out.println("鍙戦�佸嚭鐗囬槦鍒楅厤鐗囦换鍔�:"+glassmate.get(i).getShelfRack());
+ }
+ }
+ // 鏈閰嶇墖瀹屾垚鍙戦�佸惎鍔ㄥ懡浠�
+ // S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToPLC").getAddress(), (short) 1);// 鍑虹墖浠诲姟鍚姩
+ MestoPlc();
+
+ }
return (200);
}
+
// 鍑虹墖
public Short selectout(int line) {
GlassInfo glassmate = new GlassInfo();
@@ -85,58 +117,69 @@
StorageCage glass = new StorageCage();
int glassend = 0;
double carwidth = -300;
- method = albaniaMapper.SelectMethod(line);
- if (method == null) {
- return (400);
- }
double width = 0;
for (int i = 1; i <= 7; i++) {
+ method = albaniaMapper.SelectMethod(line);
+ if (method == null) {
+ return (400);
+ }
// 濡傛灉涓嶆槸鐩撮�氭ā寮忓彧鍑烘湁瀹屾暣閰嶇墖鐨勬祦绋嬪崱
if (method.getMethod() == 0) {
// glassmate= albaniaMapper.SelectOutGlass(1);
- //鍒ゆ柇鏈夋暟閲忕殑閰嶇墖id
+ // 鍒ゆ柇鏈夋暟閲忕殑閰嶇墖id
List<GlassInfo> peipianid = albaniaMapper.SelectOutGlass3(method.getFlowcard());
if (peipianid.size() == 0) {
- System.out.println("peipianid:"+peipianid);
+ System.out.println("peipianid:" + peipianid);
return (400);
} else {
for (int j = 0; j < peipianid.size(); j++) {
// 鍒ゆ柇閰嶇墖瀹藉害鏄惁澶熶笂澶ц溅
- // GlassInfo glasswidth = albaniaMapper.SelectOutGlass6(peipianid.get(j).getFlowcard(),peipianid.get(j).getMateid());
+ // GlassInfo glasswidth =
+ // albaniaMapper.SelectOutGlass6(peipianid.get(j).getFlowcard(),peipianid.get(j).getMateid());
// if (glasswidth.getWidth() <= 4300) {
- //鏄惁鏈夎冻澶熺殑搴撳瓨鏁伴噺
- List<String> peipiancage = albaniaMapper.SelectOutGlass4(peipianid.get(j).getFlowcard(),peipianid.get(j).getMateid());
- //鏄惁鏈夎冻澶熺殑鍙嚭鐗囨暟閲�
- List<String> peipiancage2 = albaniaMapper.SelectOutGlass8(peipianid.get(j).getFlowcard(),peipianid.get(j).getMateid());
- // System.out.println("peipiancage:"+peipiancage+peipianid.get(j).getMateid());
- // System.out.println("peipiancage2:"+peipiancage2);
- if (!peipiancage.contains("涓嶈冻")&&!peipiancage2.contains("涓嶈冻")) {
- List<GlassInfo> chupian = albaniaMapper.SelectOutGlass7(peipianid.get(j).getFlowcard(),peipianid.get(j).getMateid());
- for (int k = 0; k < chupian.size(); k++) {
- glass = albaniaMapper.SelectCageGlass(chupian.get(k).getGlasstype());
- carwidth= carwidth+glass.getGlassWidth()+300;
- if (carwidth<=4300) {
- // 鍙戦�侀厤鐗囨暟鎹�
- // Mestast(chupian.get(k).getGlassid(), glass.getId(), 2001, 0, "MESID" + (k+1), k+1);
- albaniaMapper.AddFinishNumber(chupian.get(k).getFlowcard(), chupian.get(k).getMateid(), chupian.get(k).getTier());
- storageCageService.UpdateStroageCageByCell(glass.getId(), -1);// 鐜荤拑鏁伴噺-1
- albaniaMapper.Inserttask(1, 0, glass.getId(), 2001, chupian.get(k).getGlassid(),
- chupian.get(k).getGlasstype(), chupian.get(k).getFlowcard(), chupian.get(k).getMateid(), chupian.get(k).getTier());
- }else {
- albaniaMapper.AddFinishNumber(chupian.get(k).getFlowcard(), chupian.get(k).getMateid(), chupian.get(k).getTier());
- storageCageService.UpdateStroageCageByCell(glass.getId(), -1);// 鐜荤拑鏁伴噺-1
- albaniaMapper.InsertOutTask(1, 0, glass.getId(), 2001, chupian.get(k).getGlassid(),
- chupian.get(k).getGlasstype(), chupian.get(k).getFlowcard(), chupian.get(k).getMateid(), chupian.get(k).getTier());
- }
-
+ // 鏄惁鏈夎冻澶熺殑搴撳瓨鏁伴噺
+ List<String> peipiancage = albaniaMapper.SelectOutGlass4(peipianid.get(j).getFlowcard(),
+ peipianid.get(j).getMateid());
+ // 鏄惁鏈夎冻澶熺殑鍙嚭鐗囨暟閲�
+ List<String> peipiancage2 = albaniaMapper.SelectOutGlass8(peipianid.get(j).getFlowcard(),
+ peipianid.get(j).getMateid());
+ // System.out.println("peipiancage:"+peipiancage+peipianid.get(j).getMateid());
+ // System.out.println("peipiancage2:"+peipiancage2);
+ if (!peipiancage.contains("涓嶈冻") && !peipiancage2.contains("涓嶈冻")) {
+ List<GlassInfo> chupian = albaniaMapper.SelectOutGlass7(peipianid.get(j).getFlowcard(),
+ peipianid.get(j).getMateid());
+ for (int k = 0; k < chupian.size(); k++) {
+ glass = albaniaMapper.SelectCageGlass(chupian.get(k).getGlasstype());
+ carwidth = carwidth + glass.getGlassWidth() + 300;
+ if (carwidth <= 4300) {
+ // 鍙戦�侀厤鐗囨暟鎹�
+ Mestast(chupian.get(k).getGlassid(), glass.getId(), 2001, 0, "MESID" + (k + 1),
+ k + 1);
+ albaniaMapper.AddFinishNumber(chupian.get(k).getFlowcard(),
+ chupian.get(k).getMateid(), chupian.get(k).getTier());
+ storageCageService.UpdateStroageCageByCell(glass.getId(), -1);// 鐜荤拑鏁伴噺-1
+ albaniaMapper.Inserttask(1, 0, glass.getId(), 2001, chupian.get(k).getGlassid(),
+ chupian.get(k).getGlasstype(), chupian.get(k).getFlowcard(),
+ chupian.get(k).getMateid(), chupian.get(k).getTier());
+ } else {
+ albaniaMapper.AddFinishNumber(chupian.get(k).getFlowcard(),
+ chupian.get(k).getMateid(), chupian.get(k).getTier());
+ storageCageService.UpdateStroageCageByCell(glass.getId(), -1);// 鐜荤拑鏁伴噺-1
+ //澧炲姞鍑虹墖闃熷垪鐨勪换鍔�
+ albaniaMapper.InsertOutTask(1, 0, glass.getId(), 2001, chupian.get(k).getGlassid(),
+ chupian.get(k).getGlasstype(), chupian.get(k).getFlowcard(),
+ chupian.get(k).getMateid(), chupian.get(k).getTier());
}
- // 鏈閰嶇墖瀹屾垚鍙戦�佸惎鍔ㄥ懡浠�
- S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToPLC").getAddress(), (short) 1);// 鍑虹墖浠诲姟鍚姩
- return (200);// 缁撴潫
+
}
+ // 鏈閰嶇墖瀹屾垚鍙戦�佸惎鍔ㄥ懡浠�
+ // S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToPLC").getAddress(),(short) 1);// 鍑虹墖浠诲姟鍚姩
+ MestoPlc();
+ return (200);// 缁撴潫
+ }
// }
- // else {
- // continue;
+ // else {
+ // continue;
// }
}
System.out.println("鏈湁瀹屾暣閰嶇墖");
@@ -145,33 +188,39 @@
} else {
// 鐩撮�氭ā寮忔椂鎸夐『搴忕洿鍑�
- glassmate= albaniaMapper.SelectOutGlass(1);
- // glassmate = albaniaMapper.SelectOutGlass2(1);
+ // glassmate = albaniaMapper.SelectOutGlass(1);
+ glassmate = albaniaMapper.SelectOutGlass2(1);
+ System.out.println("glassmate:"+glassmate);
// // 鑾峰彇鐩撮�氭ā寮忔渶鍚庝竴鍧�
// glassend = albaniaMapper.SelectOutGlassend(1);
-
+
}
System.err.println("鍑虹墖:" + glassmate);
if (glassmate == null && i > 1) {
// 鏈閰嶇墖瀹屾垚鍙戦�佸惎鍔ㄥ懡浠�
- S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToPLC").getAddress(), (short) 1);// 鍑虹墖浠诲姟鍚姩
+ // 鍑虹墖浠诲姟鍚姩
+ MestoPlc();
System.out.println("鍑哄畬浠诲姟:1,浠诲姟鐘舵��:0,璧峰:" + glass.getId() + ",鐩爣" + "2001");
return (200);// 缁撴潫
}
if (glassmate == null) {
// 鏈鍙栦换鍔�
System.out.println("鏈鍙栦换鍔�:" + i);
- return (400);
+ glassmate = albaniaMapper.SelectOutGlass2(1);
+ if(glassmate==null){
+ System.out.println("glassmate绌�");
+ return (400);
+ }
} else {
glass = albaniaMapper.SelectCageGlass(glassmate.getGlasstype());
- System.out.println("glassmate:" + glassmate + "glass:" + glass);
+ System.out.println("glassmate:" + glassmate + "glass:" + glass);
if (glass != null) {
// 鍙戦�佷换鍔′箣鍓嶅垽鏂溅涓婄殑鍓╀綑瀹藉害鏄惁澶т簬姝ょ幓鐠�
width = width + glassmate.getWidth() + 300;
// 澶т簬杞︿笂绌轰綑瀹藉害鏃舵彁鍓嶅彂閫佸嚭鐗囧惎鍔�
if (width > 4300) {
// 鏈閰嶇墖瀹屾垚鍙戦�佸惎鍔ㄥ懡浠�
- S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToPLC").getAddress(), (short) 1);// 鍑虹墖浠诲姟鍚姩
+ MestoPlc();
return (200);// 缁撴潫
}
// 鍙戦�侀厤鐗囨暟鎹�
@@ -179,12 +228,14 @@
albaniaMapper.AddFinishNumber(glassmate.getFlowcard(), glassmate.getMateid(), glassmate.getTier());
storageCageService.UpdateStroageCageByCell(glass.getId(), -1);// 鐜荤拑鏁伴噺-1
albaniaMapper.Inserttask(1, 0, glass.getId(), 2001, glassmate.getGlassid(),
- glassmate.getGlasstype(), glass.getFlowcard(), glassmate.getMateid(), glassmate.getTier());
- // if (glassmate.getTier() == glassmate.getId() || glassmate.getTier() == glassend|| method.getMethod() == 1) {// 褰撻厤鐗囨暟閲忕瓑浜庢垚鍝佸皬鐗囨�荤墖鏁版椂
- // // 鏈閰嶇墖瀹屾垚鍙戦�佸惎鍔ㄥ懡浠�
- // S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToPLC").getAddress(), (short) 1);// 鍑虹墖浠诲姟鍚姩
- // System.out.println("浠诲姟绫诲瀷:1,浠诲姟鐘舵��:0,璧峰:" + glass.getId() + ",鐩爣" + "2001");
- // return (200);// 缁撴潫
+ glassmate.getGlasstype(), glass.getFlowcard(), glassmate.getMateid(), glassmate.getTier());
+ // if (glassmate.getTier() == glassmate.getId() || glassmate.getTier() ==
+ // glassend|| method.getMethod() == 1) {// 褰撻厤鐗囨暟閲忕瓑浜庢垚鍝佸皬鐗囨�荤墖鏁版椂
+ // // 鏈閰嶇墖瀹屾垚鍙戦�佸惎鍔ㄥ懡浠�
+ // S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToPLC").getAddress(),
+ // (short) 1);// 鍑虹墖浠诲姟鍚姩
+ // System.out.println("浠诲姟绫诲瀷:1,浠诲姟鐘舵��:0,璧峰:" + glass.getId() + ",鐩爣" + "2001");
+ // return (200);// 缁撴潫
// }
} else {
@@ -248,20 +299,14 @@
// 涓嬪彂鐞嗙墖浠诲姟
public void Mestast(String glassid, int MESToPLCStart1, int MESToPLCTarget1, int MESToPLC, String address, int i) {
- // System.out.println("涓嬪彂鐞嗙墖浠诲姟鏁版嵁锛�");
- // System.out.println("鐜荤拑 ID: " + glassid);
- // System.out.println("璧峰浣嶇疆: " + MESToPLCStart1);
- // System.out.println("鐩爣浣嶇疆: " + MESToPLCTarget1);
- // System.out.println("浠诲姟绫诲瀷: " + MESToPLC);
- // System.out.println("鍦板潃: " + address);
- // System.out.println("绱㈠紩: " + i);
S7control.getinstance().writeString(plcmes.getPlcParameter(address).getAddress(), glassid);// 鐜荤拑id
S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToPLCStart" + i).getAddress(),
(short) MESToPLCStart1);// 璧峰浣嶇疆
S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToPLCTarget" + i).getAddress(),
(short) MESToPLCTarget1);// 鐩爣浣嶇疆
if (MESToPLC != 0) {
- S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToPLC").getAddress(), (short) MESToPLC);// mes鐞嗙墖浠诲姟绫诲瀷
+ // S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToPLC").getAddress(), (short) MESToPLC);// mes鐞嗙墖浠诲姟绫诲瀷
+ MestoPlc();
}
}
@@ -272,4 +317,23 @@
return listbool;
}
+ public void MestoPlc() {
+ while (true) {
+ String currentValue = plcmes.getPlcParameter("MESToPLC").getValue();
+ // 妫�鏌� MESToPLC 鐨勫�兼槸鍚︿负 0
+ if (currentValue.equals("1")) {
+ System.out.println("鍙戦�佸惎鍔ㄥ瓧鐜板湪涓�1,鍋滄寰幆鍐欏叆");
+ break; // 閫�鍑哄惊鐜�
+ }
+ // 濡傛灉涓嶄负 1锛岀户缁啓鍏�
+ S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToPLC").getAddress(),(short) 1);// 浠诲姟鍙戦�佸瓧
+ System.out.println("缁х画鍐欏叆 MESToPLC,褰撳墠鍊�:" + currentValue);
+ try {
+ Thread.sleep(100); // 渚嬪姣忕妫�鏌ヤ竴娆�
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+ }
+ }
+
}
diff --git a/springboot-vue3/src/main/java/com/example/springboot/service/StorageCageService.java b/springboot-vue3/src/main/java/com/example/springboot/service/StorageCageService.java
index 401e8cf..f9d3b9c 100644
--- a/springboot-vue3/src/main/java/com/example/springboot/service/StorageCageService.java
+++ b/springboot-vue3/src/main/java/com/example/springboot/service/StorageCageService.java
@@ -22,6 +22,7 @@
import com.example.springboot.entity.StorageTask;
import com.example.springboot.entity.device.PlcParameterObject;
import com.example.springboot.mapper.AlbaniaMapper;
+import com.example.springboot.mapper.GlassInfoMapper;
import com.example.springboot.mapper.HomeMapper;
import com.example.springboot.mapper.QueueMapper;
import com.fasterxml.jackson.databind.ObjectMapper;
@@ -41,6 +42,8 @@
private SpianService spianService;
@Autowired
private AlbaniaMapper albaniaMapper;
+ @Autowired
+ private GlassInfoMapper glassInfoMapper;
public void EndTask(int types) {
String A01glassid1 = spianService.queGlassid("DB103.128", 14).toString();
@@ -250,7 +253,9 @@
} else {
loadrack = storageTask.getShelfRack();
}
- storageTask.setstorageCage(homeMapper.SelectStorageByCell(loadrack));
+ // storageTask.setstorageCage(homeMapper.SelectStorageByCell(loadrack));
+ storageTask.setstorageCage(homeMapper.SelectStorageByCellGlass(storageTask.getId()));
+
}
return storageTasks;
}
@@ -259,38 +264,64 @@
public List<GlassInfo> SelectMeasure() {
return homeMapper.SelectMeasure();
}
- // 鏌ヨ褰撳墠鑶滅郴鍘氬害
- public MeasureSetting SelectSetting() {
+
+ // 鏌ヨ褰撳墠鑶滅郴鍘氬害
+ public MeasureSetting SelectSetting() {
return homeMapper.SelectMeasureSetting();
}
- // 鏌ヨ娴嬮噺瀹介珮鍘氳啘绯�
- public Map StorageCageForm() {
+
+ // 鏌ヨ娴嬮噺瀹介珮鍘氳啘绯�
+ public Map StorageCageForm() {
return homeMapper.SelectMeasureWidthHeight();
}
-
-
- // 鎵嬪姩瀹屾垚浠诲姟
- public Result FinishTask() {
+ //鎵嬪姩缁撴潫浠诲姟
+ public Result TerminateTask(int id) {
for (int i = 1; i < 7; i++) {
int taskcont = albaniaMapper.SelectTaskcount(); // 姝e湪杩涜鐨勪换鍔℃暟閲�
- System.out.println("浠诲姟鏁伴噺:"+taskcont);
+ System.out.println("浠诲姟鏁伴噺:" + taskcont);
if (taskcont == 0) {
break;
}
StorageTask storageTask = homeMapper.SelectStorageTaskById();// 鑾峰彇浠诲姟淇℃伅
if (storageTask.getTaskType().equals("0")) {
- System.out.println("瀹屾垚杩涚墖浠诲姟:"+storageTask.getId());
+ System.out.println("缁撴潫杩涚墖浠诲姟:" + storageTask.getId());
+ homeMapper.FinishTask(storageTask.getId(), 2);// 瀹屾垚浠诲姟
+ homeMapper.DeletequeueByGlassid(storageTask.getGlasstype().toString());
+ glassInfoMapper.updateGlassNumber(storageTask.getGlasstype());//鍑忓皯鎵弿娆℃暟
+ } else {
+ System.out.println("缁撴潫鍑虹墖浠诲姟:" + storageTask.getId());
+ homeMapper.FinishTask(storageTask.getId(), 2);// 瀹屾垚浠诲姟
+ UpdateStroageCageByCell(Integer.parseInt(storageTask.getShelfRack()), 1);// 鐜荤拑鏁伴噺+1
+ homeMapper.OutGlassNo(storageTask.getGlasstype());// 杩樺師鍑虹墖瀹屾垚鏁伴噺
+ }
+ }
+ Map<String, Object> map = new HashMap<>();
+ return Result.success(map);
+ }
+
+ // 鎵嬪姩瀹屾垚浠诲姟
+ public Result FinishTask() {
+ for (int i = 1; i < 7; i++) {
+ int taskcont = albaniaMapper.SelectTaskcount(); // 姝e湪杩涜鐨勪换鍔℃暟閲�
+ System.out.println("浠诲姟鏁伴噺:" + taskcont);
+ if (taskcont == 0) {
+ break;
+ }
+ StorageTask storageTask = homeMapper.SelectStorageTaskById();// 鑾峰彇浠诲姟淇℃伅
+ if (storageTask.getTaskType().equals("0")) {
+ System.out.println("瀹屾垚杩涚墖浠诲姟:" + storageTask.getId());
homeMapper.FinishTask(storageTask.getId(), 1);// 瀹屾垚浠诲姟
UpdateStroageCageByCell(Integer.parseInt(storageTask.getLoadrack()), 1);// 鐜荤拑鏁伴噺+1
- homeMapper.DeletequeueByGlassid(storageTask.getGlassId());
+ homeMapper.DeletequeueByGlassid(storageTask.getGlasstype().toString());
} else {
- System.out.println("瀹屾垚鍑虹墖浠诲姟:"+storageTask.getId());
+ System.out.println("瀹屾垚鍑虹墖浠诲姟:" + storageTask.getId());
homeMapper.FinishTask(storageTask.getId(), 1);// 瀹屾垚浠诲姟
StorageCage storageCage = homeMapper.SelectStorageByCell(storageTask.getShelfRack());
- if (storageCage.getNumber()==null||storageCage.getNumber() ==0) {
+ if (storageCage.getNumber() == null || storageCage.getNumber() == 0) {
UpdateStroageCageByCell(Integer.parseInt(storageTask.getShelfRack()), 0);// 娓呴櫎鏍煎唴淇℃伅
}
- // homeMapper.AddGlassNo(storageTask.getFlowcard(), storageTask.getMateid(), storageTask.geTier());// 娣诲姞鍑虹墖瀹屾垚鏁伴噺
+ // homeMapper.AddGlassNo(storageTask.getFlowcard(), storageTask.getMateid(),
+ // storageTask.geTier());// 娣诲姞鍑虹墖瀹屾垚鏁伴噺
}
}
@@ -303,18 +334,18 @@
public Result LoseTask() {
for (int i = 1; i < 7; i++) {
int taskcont = albaniaMapper.SelectTaskcount(); // 姝e湪杩涜鐨勪换鍔℃暟閲�
- System.out.println("浠诲姟鏁伴噺:"+taskcont);
+ System.out.println("浠诲姟鏁伴噺:" + taskcont);
if (taskcont == 0) {
break;
}
StorageTask storageTask = homeMapper.SelectStorageTaskById();// 鑾峰彇浠诲姟淇℃伅
if (storageTask.getTaskType().equals("0")) {
- System.out.println("瀹屾垚杩涚墖浠诲姟:"+storageTask.getId());
+ System.out.println("瀹屾垚杩涚墖浠诲姟:" + storageTask.getId());
homeMapper.FinishTask(storageTask.getId(), 1);// 瀹屾垚浠诲姟
UpdateStroageCageByCell(Integer.parseInt(storageTask.getLoadrack()), 1);// 鐜荤拑鏁伴噺+1
- homeMapper.DeletequeueByGlassid(storageTask.getGlassId());
+ homeMapper.DeletequeueByGlassid(storageTask.getGlasstype().toString());
} else {
- System.out.println("瀹屾垚鍑虹墖浠诲姟:"+storageTask.getId());
+ System.out.println("瀹屾垚鍑虹墖浠诲姟:" + storageTask.getId());
homeMapper.FinishTask(storageTask.getId(), 1);// 瀹屾垚浠诲姟
StorageCage storageCage = homeMapper.SelectStorageByCell(storageTask.getShelfRack());
if (storageCage.getNumber() > 1) {
@@ -387,16 +418,21 @@
return Result.success(map);
}
- // 淇敼娴嬮噺淇℃伅
+ // 浜哄伐鍖归厤淇敼娴嬮噺淇℃伅
public Result UpdateQueue(GlassInfo glassInfo) {
// 鍒犻櫎鏁版嵁
- QueueMapper.DeleteQueue();
- homeMapper.AddQueue(glassInfo.getFlowcard(), glassInfo.getWidth(), glassInfo.getHeight(),
- glassInfo.getGlasstype(), glassInfo.getThickness(), glassInfo.getTier(),glassInfo.getMateid());
Map<String, Object> map = new HashMap<>();
- PlcParameterObject plcmes = PLCAutoMes.PlcMesObject;
- S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToGaStatus").getAddress(), (short) 1);
- map.put("message", "200");
+ // QueueMapper.DeleteQueue();
+ int count = homeMapper.SelectQueue();
+ if (count > 0) {
+ homeMapper.UpdateQueue(glassInfo.getFlowcard(), glassInfo.getWidth(), glassInfo.getHeight(),
+ glassInfo.getGlasstype(), glassInfo.getThickness(), glassInfo.getTier(), glassInfo.getMateid());
+ PlcParameterObject plcmes = PLCAutoMes.PlcMesObject;
+ S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToGaStatus").getAddress(), (short) 1);
+ map.put("message", "200");
+ }else {
+ map.put("message", "300");
+ }
return Result.success(map);
}
@@ -420,7 +456,7 @@
}
// 寮�濮嬩笂鐗�
- public Result StartChange(String flowcard,int orderstate) {
+ public Result StartChange(String flowcard, int orderstate) {
homeMapper.StartChange(flowcard, orderstate);
Map<String, Object> map = new HashMap<>();
int state = homeMapper.selectStartChange(flowcard);
@@ -510,7 +546,8 @@
int count = 1;
for (Map map : RemoveErrorData) {
String key = map.get("base").toString() + "_" + map.get("height").toString() + "_"
- + map.get("thickness").toString() + "_" + map.get("films").toString()+ "_" + map.get("order").toString();
+ + map.get("thickness").toString() + "_" + map.get("films").toString() + "_"
+ + map.get("order").toString() + "_" + map.get("matching").toString();
String tierkey = map.get("order").toString() + "_" + map.get("matching").toString();
@@ -530,6 +567,7 @@
glasstype = Integer.valueOf(value);
}
//
+
homeMapper.AddGlassinfo(map.get("order").toString(), glasstype,
Integer.parseInt(map.get("matching").toString()) // 闇�瑕佽绠� 閰嶇墖ID
, map.get("order").toString() + "-" + count + "" // 闇�瑕佽绠� 鐜荤拑ID
--
Gitblit v1.8.0