CanadaMes-ui/src/lang/locales/en-US.json
@@ -1,6 +1,10 @@ { "Clear":"Clear", "ip":"192.168.10.21", "Mes Connection failed":"Mes Connection failed", "Plc1 Connection failed":"Plc1 Connection failed", "Plc2 Connection failed":"Plc2 Connection failed", "Remaining width:":"Remaining width:", "systemTitle": "Login System", "usernamePlaceholder": "Please enter username", "passwordPlaceholder": "Please enter password", @@ -173,6 +177,7 @@ }, "Electrical": "Electrical", "Parameter": "Manual/Automatic", "Manual/Automatic": "Manual/Automatic", "Action": "Action", "Sign": "Sign", "State": "State", @@ -300,8 +305,10 @@ "Scan Code Point":"Scan Code Point", "Upper film position":"Upper film position", "Glass Information":"Glass Information", "current Information":"current information", "Modify Information":"Modify information", "D01 Current Information": "D01 Current Information", "D02 Current Information": "D02 Current Information", "D01 Modify Information": "D01 Modify Information", "Scan Code Information":"Scan Code Information", "Clear Current":"Clear Current", "Confirm":"Confirm", "The glass ID already exists in the loading queue":"The glass ID already exists in the loading queue", CanadaMes-ui/src/lang/locales/zh-CN.json
@@ -1,6 +1,10 @@ { "Clear":"清除", "ip":"192.168.10.21", "Mes Connection failed":"Mes连接失败", "Plc1 Connection failed":"Plc1连接失败", "Plc2 Connection failed":"Plc2连接失败", "Remaining width:":"剩余宽度:", "systemTitle": "登录系统", "usernamePlaceholder": "请输入用户名", "passwordPlaceholder": "请输入密码", @@ -171,6 +175,7 @@ }, "Electrical": "设备管理", "Parameter": "参数设置", "Manual/Automatic": "手动/自动", "Action": "开关控制", "Sign": "IO状态", "State": "状态", @@ -295,8 +300,10 @@ "Scan Code Point": "扫码位", "Upper film position": "上片位", "Glass Information": "玻璃信息", "current Information": "当前信息", "Modify Information": "修改信息", "D01 Current Information": "D01当前信息", "D02 Current Information": "D02当前信息", "D01 Modify Information": "D01待确认", "Scan Code Information":"扫码信息", "Clear Current": "清除当前", "Confirm": "确认", "The glass ID already exists in the loading queue": "上片队列已存在此玻璃id", CanadaMes-ui/src/layout/index.vue
@@ -253,37 +253,40 @@ let obj = JSON.parse(msg.data); if (obj.alarmmg) { if (obj.alarmmg[0].length > 0) { if (this.alarm.length > 0) { if (this.alarm[this.alarm.length - 1].id != obj.alarmmg[0][obj.alarmmg[0].length - 1].id) { this.alarm = obj.alarmmg[0]; this.dialogFormVisible2 = true; } } else { this.alarm = obj.alarmmg[0]; this.dialogFormVisible2 = true; } } else { if( obj.alarmmg!=null){ this.alarm = obj.alarmmg[0]; this.dialogFormVisible2 = false; } //是否急停 if (obj.emergencystop != null) { this.EmergencyStop = obj.emergencystop[0]; } // if (obj.alarmmg[0].length > 0) { // if (this.alarm.length > 0) { // if (this.alarm[this.alarm.length - 1].id != obj.alarmmg[0][obj.alarmmg[0].length - 1].id) { // this.alarm = obj.alarmmg[0]; // this.dialogFormVisible2 = true; // } // } else { // this.alarm = obj.alarmmg[0]; // this.dialogFormVisible2 = true; // } // } else { // this.alarm = obj.alarmmg[0]; // this.dialogFormVisible2 = false; // } // //是否急停 // if (obj.emergencystop != null) { // this.EmergencyStop = obj.emergencystop[0]; // } //复位倒计时 if (obj.countdown != null) { if ((obj.countdown[0] == true && this.CountDowns == 0) || this.EmergencyStop == true) { this.CountDown(); } } // //复位倒计时 // if (obj.countdown != null) { // if ((obj.countdown[0] == true && this.CountDowns == 0) || this.EmergencyStop == true) { // this.CountDown(); // } // } //复位完成信号 if (obj.reset != null) { this.reset = obj.reset[0]; } // //复位完成信号 // if (obj.reset != null) { // this.reset = obj.reset[0]; // } } @@ -398,7 +401,7 @@ '用户列表': 'UserList', '设备管理': 'DeviceManagement', '报警信息': 'Alarm', '参数下发': 'Parameter', '手动/自动': 'Manual/Automatic', '开关控制': 'Action', 'IO状态': 'Sign', '权限管理': 'PermissionManagement', CanadaMes-ui/src/views/Electrical/Action.vue
@@ -12,7 +12,7 @@ }}</router-link> --> <router-link to="/Electrical/Sign" tag="el-button" type="text" active-class="blue-button">{{ $t('Sign') }}</router-link> <router-link to="/Electrical/Servomanual" tag="el-button" type="text" active-class="blue-button">{{ $t('Parameter') <router-link to="/Electrical/Servomanual" tag="el-button" type="text" active-class="blue-button">{{ $t('Manual/Automatic') }}</router-link> </el-breadcrumb> CanadaMes-ui/src/views/Electrical/AutomaticParameterSetting.vue
@@ -31,7 +31,7 @@ tag="el-button" type="text" active-class="blue-button" >{{ $t("Parameter") }}</router-link >{{ $t("Manual/Automatic") }}</router-link > </el-breadcrumb> CanadaMes-ui/src/views/Electrical/InteractionState.vue
@@ -31,7 +31,7 @@ tag="el-button" type="text" active-class="blue-button" >{{ $t("Parameter") }}</router-link >{{ $t("Manual/Automatic") }}</router-link > </el-breadcrumb> CanadaMes-ui/src/views/Electrical/ManualonePosition.vue
@@ -21,7 +21,7 @@ tag="el-button" type="text" active-class="blue-button" >{{ $t("Parameter") }}</router-link >{{ $t("Manual/Automatic") }}</router-link > </el-breadcrumb> CanadaMes-ui/src/views/Electrical/Parameter1.vue
@@ -12,7 +12,7 @@ <router-link to="/Electrical/Sign" tag="el-button" type="text" active-class="blue-button">{{ $t('Sign') }}</router-link> <router-link to="/Electrical/Servomanual" tag="el-button" type="text" active-class="blue-button">{{ $t('Parameter') $t('Manual/Automatic') }}</router-link> </el-breadcrumb> CanadaMes-ui/src/views/Electrical/Parameter2.vue
@@ -21,7 +21,7 @@ tag="el-button" type="text" active-class="blue-button" >{{ $t("Parameter") }}</router-link >{{ $t("Manual/Automatic") }}</router-link > </el-breadcrumb> CanadaMes-ui/src/views/Electrical/Positioning1.vue
@@ -31,7 +31,7 @@ tag="el-button" type="text" active-class="blue-button" >{{ $t("Parameter") }}</router-link >{{ $t("Manual/Automatic") }}</router-link > </el-breadcrumb> CanadaMes-ui/src/views/Electrical/Positioning2.vue
@@ -12,7 +12,7 @@ <router-link to="/Electrical/Sign" tag="el-button" type="text" active-class="blue-button">{{ $t('Sign') }}</router-link> <router-link to="/Electrical/Servomanual" tag="el-button" type="text" active-class="blue-button">{{ $t('Parameter') $t('Manual/Automatic') }}</router-link> </el-breadcrumb> CanadaMes-ui/src/views/Electrical/ServoManualone.vue
@@ -31,7 +31,7 @@ tag="el-button" type="text" active-class="blue-button" >{{ $t("Parameter") }}</router-link >{{ $t("Manual/Automatic") }}</router-link > </el-breadcrumb> CanadaMes-ui/src/views/Electrical/Servomanual.vue
@@ -21,7 +21,7 @@ tag="el-button" type="text" active-class="blue-button" >{{ $t("Parameter") }}</router-link >{{ $t("Manual/Automatic") }}</router-link > </el-breadcrumb> CanadaMes-ui/src/views/Electrical/Sign.vue
@@ -13,7 +13,7 @@ }}</router-link> --> <router-link to="/Electrical/Sign" tag="el-button" type="text" active-class="blue-button">{{ $t('I/O') }}</router-link> <router-link to="/Electrical/Servomanual" tag="el-button" type="text" active-class="blue-button">{{ $t('Parameter') <router-link to="/Electrical/Servomanual" tag="el-button" type="text" active-class="blue-button">{{ $t('Manual/Automatic') }}</router-link> </el-breadcrumb> CanadaMes-ui/src/views/Electrical/State.vue
@@ -13,7 +13,7 @@ }}</router-link> --> <router-link to="/Electrical/Sign" tag="el-button" type="text" active-class="blue-button">{{ $t('Sign') }}</router-link> <router-link to="/Electrical/Servomanual" tag="el-button" type="text" active-class="blue-button">{{ $t('Parameter') <router-link to="/Electrical/Servomanual" tag="el-button" type="text" active-class="blue-button">{{ $t('Manual/Automatic') }}</router-link> </el-breadcrumb> <div>{{ $t('State') }}</div> CanadaMes-ui/src/views/Electrical/alarm.vue
@@ -8,7 +8,7 @@ <!-- <router-link to="/Electrical/Action" tag="el-button" type="text" active-class="blue-button">{{ $t('Action') }}</router-link> --> <!-- <router-link to="/Electrical/Parameter" tag="el-button" type="text" active-class="blue-button">{{ $t('Parameter') }}</router-link> --> <router-link to="/Electrical/Sign" tag="el-button" type="text" active-class="blue-button">{{ $t('I/O') }}</router-link> <router-link to="/Electrical/Servomanual" tag="el-button" type="text" active-class="blue-button">{{ $t('Parameter') <router-link to="/Electrical/Servomanual" tag="el-button" type="text" active-class="blue-button">{{ $t('Manual/Automatic') }}</router-link> </el-breadcrumb> <div>{{ $t('Alarm') }}</div> CanadaMes-ui/src/views/home/index.vue
@@ -235,6 +235,7 @@ height: 15px; position: absolute; } </style> <template> <el-container> @@ -243,7 +244,7 @@ <div class="box" @click="dialogFormVisible2 = true"> <div class="text"> <!-- Alarm: --> {{ this.text }} {{ this.text }}{{this.plc1}}{{this.plc2}} <label v-for="item in this.alarm" :key="item['id']"> {{ item['content'] }} </label> @@ -344,6 +345,9 @@ </el-main> <el-footer> <div class="blocks" style="position: relative;"> <div :style="'position:absolute;width:40px;height:40px;top:40px;left:50px;background-Color:'+StateColor+';font-size:30px;text-align:center;border-radius: 50%;'"> {{ CountDowns }} </div> <div style="display:flex;position: absolute;float:left;z-index: 999;top:102px;left:237px;"> <div :class="getStatusClass(item.state)" v-for="(item, index) in cagelist1" :key="item['date']" :style="{ height: 35 * item['glassWidth'] + 'px', left: 3.07 * index + Math.abs(item['cage'] - 10) * 6.8 + 'px' }" @@ -416,7 +420,7 @@ </div> <div class="glass D02" style="top: 117px;left: 1055px;position: absolute;">{{ ShowGlassIdList(1) }} <br /> <el-button type="primary" size="mini" @click="ClearGlassId('DB101.9.2', 1)"> <el-button type="primary" size="mini" @click="ClearGlassId('DB101.9.3', 1)"> {{ $t('Clear') }}</el-button> </div> <div class="glass B01" style="top: 270px;left: 640px;position: absolute;"> @@ -615,7 +619,6 @@ :page-sizes="[42, 84, 126, 420]" :page-size="pagesizes" layout="total, sizes, prev, pager, next, jumper" :total="cageinfo.length > 0 ? cageinfo.length : null" background style="float: right; margin-top: 20px"> </el-pagination> </el-dialog> <el-dialog :visible.sync="dialogFormVisible4" :title="$t('Order Info')" top="5vh"> @@ -641,11 +644,11 @@ <el-dialog :visible.sync="dialogFormVisible5" :title="$t('Please confirm the glass information')"> <el-form :model="form" label-width="100px" style="padding-right: 30px"> <div style="display: flex;justify-content: center;"> <el-form-item> <!-- <el-form-item> {{ $t('Confirm State') }}:{{ this.isConfirm == true ? $t('Allow') : $t('Not Allow') }} <el-button type="primary" @click="isConfirmState()"> {{ this.isConfirm == true ? $t('Not Allow') : $t('Allow') }}</el-button> </el-form-item> </el-form-item> --> <el-form-item> {{ $t('Current State') }}:{{ this.Scanningmethod == false ? $t('Automatic') : $t('Hand Movement') }} @@ -653,7 +656,7 @@ }}</el-button> </el-form-item> <el-form-item> <el-input style="width:70%;" maxlength="13" :placeholder="$t('Enter the glass barcode')" <el-input style="width:70%;" maxlength="14" :placeholder="$t('Enter the glass barcode')" v-model="glassid1"></el-input> <el-button type="primary" :disabled="!Scanningmethod" @click="WriteGlassID()">{{ $t('Add') }}</el-button> @@ -664,106 +667,112 @@ v-model="CurrrentGlassId"></el-input> </el-form-item> </div> <div style="display: flex;justify-content: space-around;"> <!-- <div style="display: flex;justify-content: space-around;"> <label for="">{{ $t('Upper film position') }}</label> <label for="">{{ $t('Scan Code Point') }}</label> </div> </div> --> <div style="display: flex;justify-content: space-around;height: 40px;"> <label for="">{{ $t('current Information') }}</label> <label for="">{{ $t('Modify Information') }}</label> <label for="">{{ $t('current Information') }}</label> <label for="">{{ $t('Modify Information') }}</label> <label for="">{{ $t('D02 Current Information') }}</label> <!-- <label for="">{{ $t('D01 Current Information') }}</label> --> <label for="">{{ $t('D01 Modify Information') }}</label> <label for="">{{ $t('Scan Code Information') }}</label> </div> <div style="display: flex;justify-content: space-around;"> <el-form-item :label="$t('Barcode')"> <el-form-item :label="$t('Barcode')" > <el-input v-model="form2.glassId" readonly autocomplete="off" /> </el-form-item> <el-form-item :label="$t('Barcode')"> <el-input v-model="form4.glassId" readonly autocomplete="off" /> </el-form-item> <el-form-item :label="$t('Barcode')"> <!-- <el-form-item :label="$t('Barcode')"> <el-input v-model="form3.glassId" readonly autocomplete="off" /> </el-form-item> </el-form-item> --> <el-form-item :label="$t('Barcode')"> <el-input v-model="form5.glassId" readonly autocomplete="off" /> </el-form-item> <el-form-item :label="$t('Barcode')" :style="'background-Color:'+(form6state==1?'yellow':'')+';'"> <el-input v-model="form6.barcode" readonly autocomplete="off" /> </el-form-item> </div> <div style="display: flex;justify-content: space-around;"> <el-form-item :label="$t('Order No')"> <el-input v-model="form2.orderId" readonly autocomplete="off" /> </el-form-item> <el-form-item :label="$t('Order No')"> <el-input v-model="form4.orderId" readonly autocomplete="off" /> </el-form-item> <el-form-item :label="$t('Order No')"> <el-input v-model="form3.orderId" readonly autocomplete="off" /> </el-form-item> <!-- <el-form-item :label="$t('Order No')"> <el-input v-model="form3.orderId" readonly autocomplete="off" /> </el-form-item>--> <el-form-item :label="$t('Order No')"> <el-input v-model="form5.orderId" readonly autocomplete="off" /> </el-form-item> <el-form-item :label="$t('Order No')" :style="'background-Color:'+(form6state==1?'yellow':'')+';'"> <el-input v-model="form6.ordernumber" readonly autocomplete="off" /> </el-form-item> </div> <div style="display: flex;justify-content: space-around;"> <el-form-item :label="$t('List No')"> <el-input v-model="form2.listId" readonly autocomplete="off" /> </el-form-item> <el-form-item :label="$t('List No')"> <el-input v-model="form4.listId" readonly autocomplete="off" /> </el-form-item> <el-form-item :label="$t('List No')"> <!-- <el-form-item :label="$t('List No')"> <el-input v-model="form3.listId" readonly autocomplete="off" /> </el-form-item> </el-form-item> --> <el-form-item :label="$t('List No')"> <el-input v-model="form5.listId" readonly autocomplete="off" /> </el-form-item> <el-form-item :label="$t('List No')" :style="'background-Color:'+(form6state==1?'yellow':'')+';'"> <el-input v-model="form6.listnumber" readonly autocomplete="off" /> </el-form-item> </div> <div style="display: flex;justify-content: space-around;"> <el-form-item :label="$t('Box No')"> <el-input v-model="form2.boxId" readonly autocomplete="off" /> </el-form-item> <el-form-item :label="$t('Box No')"> <el-input v-model="form4.boxId" readonly autocomplete="off" /> </el-form-item> <el-form-item :label="$t('Box No')"> <!-- <el-form-item :label="$t('Box No')"> <el-input v-model="form3.boxId" readonly autocomplete="off" /> </el-form-item> </el-form-item> --> <el-form-item :label="$t('Box No')"> <el-input v-model="form5.boxId" readonly autocomplete="off" /> </el-form-item> <el-form-item :label="$t('Box No')" :style="'background-Color:'+(form6state==1?'yellow':'')+';'"> <el-input v-model="form6.boxnumber" readonly autocomplete="off" /> </el-form-item> </div> <div style="display: flex;justify-content: space-around;"> <el-form-item :label="$t('Length')"> <el-input v-model="form2.glasswidthmm" readonly autocomplete="off" /> </el-form-item> <el-form-item :label="$t('Length')"> <el-input v-model="form4.glasswidthmm" readonly autocomplete="off" /> </el-form-item> <el-form-item :label="$t('Length')"> <!-- <el-form-item :label="$t('Length')"> <el-input v-model="form3.glasswidthmm" readonly autocomplete="off" /> </el-form-item> </el-form-item> --> <el-form-item :label="$t('Length')"> <el-input v-model="form5.glasswidthmm" readonly autocomplete="off" /> </el-form-item> <el-form-item :label="$t('Length')" :style="'background-Color:'+(form6state==1?'yellow':'')+';'"> <el-input v-model="form6.glasslength" readonly autocomplete="off" /> </el-form-item> </div> <div style="display: flex;justify-content: space-around;"> <el-form-item :label="$t('Width')"> <el-input v-model="form2.glassheightmm" readonly autocomplete="off" /> </el-form-item> <el-form-item :label="$t('Width')"> <el-input v-model="form4.glassheightmm" readonly autocomplete="off" /> </el-form-item> <el-form-item :label="$t('Width')"> <!-- <el-form-item :label="$t('Width')"> <el-input v-model="form3.glassheightmm" readonly autocomplete="off" /> </el-form-item> </el-form-item> --> <el-form-item :label="$t('Width')"> <el-input v-model="form5.glassheightmm" readonly autocomplete="off" /> </el-form-item> <el-form-item :label="$t('Width')" :style="'background-Color:'+(form6state==1?'yellow':'')+';'"> <el-input v-model="form6.glassheight" readonly autocomplete="off" /> </el-form-item> </div> <div style="display: flex;justify-content: right;"> <el-button @click="InsertQueueGlass(1)" style="margin-right: 100px;" type="primary" <el-button @click="InsertQueueGlass(1)" style="margin-right: 28%;" type="primary" :disabled="disabled1"> {{ $t('Confirm') }}</el-button> <span style="margin-right: 12%;"> {{ $t('Remaining width:') }} {{ (108.27 - (Object.keys(this.form6).length === 0 ? 0 : (form6.glassheight > form6.glasslength ? form6.glassheight : form6.glasslength))).toFixed(2) }} </span> </div> </el-form> </el-dialog> @@ -790,18 +799,18 @@ <el-table-column :min-width="70" prop="orderId" :label="$t('Order No')"></el-table-column> <el-table-column :min-width="70" prop="listId" :label="$t('List No')"></el-table-column> <el-table-column :min-width="70" prop="boxId" :label="$t('Box No')"></el-table-column> <el-table-column :min-width="70" prop="cell" :label="$t('Slot No')"></el-table-column> <el-table-column :min-width="100" prop="glasswidthmm" :label="$t('Length')"></el-table-column> <el-table-column :min-width="100" prop="glassheightmm" :label="$t('Width')"></el-table-column> <el-table-column :min-width="90" prop="state" :label="$t('Glass State')"> <template slot-scope='scope'> {{ scope.row.state == 0 ? $t('Waiting') : scope.row.state == 1 ? $t('Outing') : scope.row.state == 2 ? $t('Outed') : scope.row.state == 3 ? $t('Absent') : $t('Completed') }} {{ scope.row.state == 0 ? $t('Waiting') : scope.row.state == 1 ? $t('Outing') : scope.row.state == 2 ? $t('Outed') : scope.row.state == 3 ? $t('Absent') : $t('Completed') }} </template> </el-table-column> <el-table-column prop="sequence" :label="$t('Sequence')"></el-table-column> <el-table-column :min-width="90" prop="barcode" :label="$t('Complete')"> <!-- <el-table-column :min-width="90" prop="barcode" :label="$t('Complete')"> <template slot-scope='scope' style="height:100px;height:100px;"> <el-button type="primary" style="padding: 4px 10px;font-size: 12px;" :disabled="!(!isAllowQueue && scope.row.state != 1 && scope.row.state != 2)" @@ -809,7 +818,7 @@ $t('Complete') }}</el-button> </template> </el-table-column> </el-table-column> --> <el-table-column :width="100" :label="$t('Operate')"> <template slot-scope='scope'> @@ -904,6 +913,7 @@ import LanguageMixin from '../../lang/LanguageMixin' let socket; let timer; export default { name: "Home", data() { @@ -935,6 +945,7 @@ form3: {}, form4: {}, form5: {}, form6: {}, alarm: [], tableData: [], cagelist1: [], @@ -987,7 +998,7 @@ ClearGlassID: true, StopTask: true, SoftEmergencyStopState: true, CountDowns: "0", CountDowns: "", D01RequestState: false, EmergencyStop: false, PromptSize: 250, @@ -998,22 +1009,27 @@ GlassIdList: [], Scanningmethod: true, CurrrentGlassId: "", feedglassid:"", count1:0, count2:1 feedglassid: "", count1: 0, count2: 1, loadname: "", form6state:0, StateColor:"green", plc1:"", plc2:"" }; }, created() { this.load(); // setInterval(() => { // if(this.count1<this.count2){ // this.count1=this.count2; // }else{ // const now = new Date(); // console.log(now); // alert("websocket停止"+now); // } // }, 3000); setInterval(() => { if(this.count1<this.count2){ this.count1=this.count2; }else{ const now = new Date(); console.log(this.count1,this.count2); console.log(this.$t('Mes Connection failed')+now); } }, 60000); }, activated() { this.init(); @@ -1039,7 +1055,7 @@ }; // 浏览器端收消息,获得从服务端发送过来的文本消息 socket.onmessage = function (msg) { this.count2=this.count2+1; this.count2 = this.count2 + 1; //console.log("收到数据====" + msg.data); let obj = JSON.parse(msg.data); if (obj.params != null) { @@ -1049,6 +1065,20 @@ this.car2 = 210 + 8.15 * Math.abs(zhi2 - this.carlist[1]['start']) / Math.abs(this.carlist[1]['end'] - this.carlist[1]['start']) * 100; // this.car1 = 210 + 11.25 * (obj.params[0][1]-this.carlist[1]['start'])/(this.carlist[1]['end']-this.carlist[1]['start'])*100; // this.car2 = 300 + 11.25 * (obj.params[0][1]-this.carlist[1]['start'])/(this.carlist[1]['end']-this.carlist[1]['start'])*100; } if (obj.Plc1 != null) { if(obj.Plc1[0]==true){ this.plc1=""; }else{ this.plc1=this.$t('Plc1 Connection failed'); } } if (obj.Plc2 != null) { if(obj.Plc2[0]==true){ this.plc2=""; }else{ this.plc2=this.$t('Plc2 Connection failed'); } } this.tableData = obj.tableData[0]; @@ -1083,7 +1113,7 @@ } //获取待确认的铝框玻璃信息 if (obj.AluminumFrame != null) { this.AluminumFrame = obj.AluminumFrame[0]; if (this.dialogFormVisible6 == true) { this.dialogFormVisible7 = true; @@ -1097,8 +1127,8 @@ } } if(obj.feedglassid!=null){ this.feedglassid=obj.feedglassid[0]; if (obj.feedglassid != null) { this.feedglassid = obj.feedglassid[0]; } // if (obj.alarmmg[0].length > 0) { @@ -1112,28 +1142,47 @@ // this.dialogFormVisible2 = true; // } // } // //是否急停 // if (obj.emergencystop != null) { // this.EmergencyStop = obj.emergencystop[0]; // } //是否急停 if (obj.emergencystop != null) { this.EmergencyStop = obj.emergencystop[0]; } //复位倒计时 if (obj.countdown != null) { if ((obj.countdown[0] == true && this.CountDowns == 0) || this.EmergencyStop == true) { this.CountDown(); } } // //复位倒计时 // if (obj.countdown != null) { // if ((obj.countdown[0] == true && this.CountDowns == 0) || this.EmergencyStop == true) { // this.CountDown(); // } // } // //复位完成信号 // if (obj.reset != null) { // this.reset = obj.reset[0]; // } //复位完成信号 if (obj.reset != null) { this.reset = obj.reset[0]; } //是否有进片请求 if (obj.D01RequestState != null) { this.D01RequestState = obj.D01RequestState[0]; } // this.D01RequestState=true; if (obj.zhi != null) { if (obj.zhi[0] != 0) { if (obj.zhi[0] == 200) { this.form5 = {}; this.$message.success(this.$t('Operation successful')); } else if (obj.zhi[0] == 300) { this.$message.error(this.$t('There is no such glass')); } else if (obj.zhi[0] == 400) { this.$message.error(this.$t('There is no such slot')); } else if(obj.zhi[0] == 500) { this.$message.error(this.$t('This glass ID already exists in the sorting cage')); } else if(obj.zhi[0] == 600) { this.$message.error(this.$t('The glass size is not within the range')); } } } //是否允许出片 this.isAllowQueue = obj.isAllowQueue[0]; @@ -1173,8 +1222,9 @@ if (obj.form3 != null && obj.form3 != "" && obj.state[0] == 0) { this.loadglassheight1 = 70; if (this.form5.glassId != obj.form3[0].glassId && this.ManuallyInfeedGlass == false) { this.showform3(); if (this.loadname == "Buffer") { this.showform3(); } } this.form5 = obj.form3[0]; this.glassid1 = ""; @@ -1187,6 +1237,17 @@ if (this.glassid1 == "") { this.DeleteBarcodeGlass(); } } if (obj.form6 != null) { this.form6state=1; this.form6 = obj.form6[0]; if(this.form6.glassheight=="0"){ this.form6.glassheight=""; this.form6.glasslength=""; } } else { this.form6 = {}; this.form6state=0; } //数据库连接是否正常 if (obj.dbconnected == "false") { @@ -1218,6 +1279,7 @@ load() { //加载用户权限 currentUsername().then(res => { this.loadname = res.data; SelectPermissionByUserName(res.data).then(res => { res.data.permission.forEach(item => { if (item.permissionId == "32" && item.state == 1) { @@ -1306,14 +1368,14 @@ //手动上片 sbumitglassid() { if (this.form.order != "") { let width=0; let height=0; if(this.form.glassheight<this.form.glasswidth){ width=this.form.glasswidth; height=this.form.glassheight; }else{ height=this.form.glasswidth; width=this.form.glassheight; let width = 0; let height = 0; if (this.form.glassheight < this.form.glasswidth) { width = this.form.glasswidth; height = this.form.glassheight; } else { height = this.form.glasswidth; width = this.form.glassheight; } if (height < 380 || width < 380 || height > 1810 || width > 2760) { this.$message.error(this.$t('The glass size is not within the range')); @@ -1674,9 +1736,12 @@ this.form5 = {}; this.$message.success(this.$t('Operation successful')); } else if (res.data.message == 300) { this.$message.error(this.$t('There is no such glass')); } else if (res.data.message == 400) { this.$message.error(this.$t('There is no such slot')); } else { }else if (res.data.message == 500) { this.$message.error(this.$t('This glass ID already exists in the sorting cage')); } }); @@ -1948,14 +2013,14 @@ Sizerange(Glass, position) { console.log(position); if (this.ManuallyInfeedGlass == false) { let width=0; let height=0; if(Glass.glassheight<Glass.glasswidth){ width=Glass.glasswidth; height=Glass.glassheight; }else{ height=Glass.glasswidth; width=Glass.glassheight; let width = 0; let height = 0; if (Glass.glassheight < Glass.glasswidth) { width = Glass.glasswidth; height = Glass.glassheight; } else { height = Glass.glasswidth; width = Glass.glassheight; } if (height < 380 || width < 380 || height > 1810 || width > 2760) { this.$alert(this.$t('The glass size is not within the range'), this.$t('confirm'), { @@ -2001,34 +2066,34 @@ }, //60秒复位倒数计时 CountDown() { clearInterval(timer); let count = 60; let timer = setInterval( timer = setInterval( () => { if (this.EmergencyStop == true) { this.dialogFormCountDown = false; clearInterval(timer); this.CountDowns = "0"; this.StateColor="red"; this.CountDowns = ""; } else { if (count > 0) { this.PromptSize = 500; count--; this.CountDowns = count; this.dialogFormCountDown = true; this.StateColor="yellow"; this.PromptSize = 500; this.CountDowns = count; count--; } else { this.PromptSize = 200; this.CountDowns = "Waiting for reset"; if (this.reset == true) { clearInterval(timer); this.dialogFormCountDown = false; } this.PromptSize = 200; this.CountDowns = ""; this.StateColor="green"; if (this.reset == true) { clearInterval(timer); } } } }, 1000 ); }, }, //更换当前铝框 FrameStateUpdate(frameno) { FrameStateUpdate(frameno).then(res => { @@ -2099,28 +2164,28 @@ if (this.ClearGlassID == false) { console.log(this.DeviceList, num); if (this.DeviceList[num] == 0) { if (this.GlassIdList[num].length <= 14) { this.$confirm(this.$t('Are you sure to clear this barcode ?'), this.$t('confirm'), { confirmButtonText: this.$t('Yes'), cancelButtonText: this.$t('No'), type: 'warning' }).then(() => { ClearGlassId(position, this.GlassIdList[num]).then(res => { if (res.data.message == 200) { this.$message.success(this.$t('Operation successful')); } else { this.$message.success(this.$t('operation failed')); } }); }).catch(() => { this.$message({ type: 'info', message: this.$t('Operation canceled') }); // if (this.GlassIdList[num].length <= 14) { this.$confirm(this.$t('Are you sure to clear this barcode ?'), this.$t('confirm'), { confirmButtonText: this.$t('Yes'), cancelButtonText: this.$t('No'), type: 'warning' }).then(() => { ClearGlassId(position, this.GlassIdList[num]).then(res => { if (res.data.message == 200) { this.$message.success(this.$t('Operation successful')); } else { this.$message.success(this.$t('operation failed')); } }); } else { this.$message.error(this.$t('There is no glass ID here')); } }).catch(() => { this.$message({ type: 'info', message: this.$t('Operation canceled') }); }); // } else { // this.$message.error(this.$t('There is no glass ID here')); // } } else { //自动状态不能清除玻璃id this.$message.error(this.$t('Unable to clear glass ID in automatic mode')); springboot-vue3/effective-pom.xml
@@ -1,7 +1,7 @@ <?xml version="1.0" encoding="UTF-8"?> <!-- ====================================================================== --> <!-- --> <!-- Generated by Maven Help Plugin on 2024-04-19T08:49:26+08:00 --> <!-- Generated by Maven Help Plugin on 2024-05-06T07:58:37+08:00 --> <!-- See: http://maven.apache.org/plugins/maven-help-plugin/ --> <!-- --> <!-- ====================================================================== --> springboot-vue3/src/main/java/com/example/springboot/component/PLCAutomaticParameterSetting.java
@@ -2,6 +2,8 @@ import cn.hutool.json.JSONArray; import cn.hutool.json.JSONObject; import lombok.extern.slf4j.Slf4j; import org.apache.commons.io.FileUtils; import java.io.*; @@ -9,6 +11,7 @@ import java.util.Arrays; import java.util.List; @Slf4j public class PLCAutomaticParameterSetting extends Thread { // 用于存储应用程序的配置信息 @@ -72,11 +75,12 @@ ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("AutomaticParameterSetting"); if (sendwServer != null) { for (WebSocketServer webserver : sendwServer) { webserver.sendMessage(jsonObject.toString()); // WebSocketServer webSocketServer = // WebSocketServer.sessionMap.get("AutomaticParameterSetting"); if (webserver != null) { if (webserver != null&&webserver.session.isOpen()) { webserver.sendMessage(jsonObject.toString()); List<String> messages = webserver.getMessages(); String addressList1 = "DB100.120"; String addressList2 = "DB100.18"; @@ -161,7 +165,9 @@ } } } else{ log.info("AutomaticParameterSetting is closed"); } } } springboot-vue3/src/main/java/com/example/springboot/component/PLCManualJog.java
@@ -2,13 +2,15 @@ import cn.hutool.json.JSONArray; import cn.hutool.json.JSONObject; import lombok.extern.slf4j.Slf4j; import org.apache.commons.io.FileUtils; import java.io.*; import java.util.ArrayList; import java.util.Arrays; import java.util.List; @Slf4j public class PLCManualJog extends Thread { @@ -51,12 +53,12 @@ ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("ManualJog"); if (sendwServer != null) { for (WebSocketServer webserver : sendwServer) { webserver.sendMessage(jsonObject.toString()); // WebSocketServer webSocketServer = WebSocketServer.sessionMap.get("ManualJog"); if (webserver != null) { if (webserver != null&&webserver.session.isOpen()) { webserver.sendMessage(jsonObject.toString()); List<String> messages = webserver.getMessages(); if (!messages.isEmpty()) { @@ -101,6 +103,8 @@ webserver.clearMessages(); } }else{ log.info("ManualJog is closed"); } } springboot-vue3/src/main/java/com/example/springboot/component/PlcHold.java
@@ -23,21 +23,22 @@ @Override public void run() { spianService = WebSocketServer.applicationContext.getBean(SpianService.class); spianMapper = WebSocketServer.applicationContext.getBean(SpianMapper.class); jdbcConnections = WebSocketServer.applicationContext.getBean(JdbcConnections.class); while (this != null) { try { spianService.result=new ArrayList<>(); Thread.sleep(300); // if (S7control.getinstance().CheckConnected() == false) { spianService = WebSocketServer.applicationContext.getBean(SpianService.class); spianMapper = WebSocketServer.applicationContext.getBean(SpianMapper.class); jdbcConnections = WebSocketServer.applicationContext.getBean(JdbcConnections.class); // 根据玻璃id获取订单号,单独数据源 // try { // spianService.selectAll(jdbcConnections.SelectGlassByGlassIdOrderIdFrameId("X12345610102GV","","")); // //spianService.selectAll(jdbcConnections.SelectGlassByGlassIdOrderIdFrameId("X12345610102GV","","")); // north_glass_buffer1 aa=jdbcConnections.SelectGlassByGlassIdOrderIdFrameId("X12345610102GV","",""); // spianMapper.UpdataAddCage2("123", "123", aa, 5, 1, 9, 2,2000.00); // } catch (SQLException e) { // // TODO Auto-generated catch block // e.printStackTrace(); @@ -166,13 +167,14 @@ north_glass_buffer1 glass2 =new north_glass_buffer1(); try { if(queueid1.toString()!=""){ glass1 = jdbcConnections.SelectGlassByGlassIdOrderIdFrameIdplchold(queueid1.toString(),"","");// D01玻璃信息 if(Plchome.dbconnected==true){ if(queueid1.toString()!=""){ glass1 = jdbcConnections.SelectGlassByGlassIdOrderIdFrameIdplchold(queueid1.toString(),"","");// D01玻璃信息 } if(queueid2.toString()!=""){ glass2 = jdbcConnections.SelectGlassByGlassIdOrderIdFrameIdplchold(queueid2.toString(),"","");// D02玻璃信息 } } if(queueid2.toString()!=""){ glass2 = jdbcConnections.SelectGlassByGlassIdOrderIdFrameIdplchold(queueid2.toString(),"","");// D02玻璃信息 } } catch (SQLException e) { e.printStackTrace(); } @@ -204,7 +206,7 @@ } } System.out.println(spianService.result); // System.out.println(spianService.result); // 查询数据库 // 推送到前端 springboot-vue3/src/main/java/com/example/springboot/component/PlcInteractionState.java
@@ -2,12 +2,13 @@ import cn.hutool.json.JSONArray; import cn.hutool.json.JSONObject; import lombok.extern.slf4j.Slf4j; import java.io.IOException; import java.util.ArrayList; import java.util.Arrays; import java.util.List; @Slf4j public class PlcInteractionState extends Thread { private Configuration config; @@ -89,7 +90,12 @@ ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("InteractionState"); if (sendwServer != null) { for (WebSocketServer webserver : sendwServer) { webserver.sendMessage(jsonObject.toString()); if(webserver!=null&&webserver.session.isOpen()){ webserver.sendMessage(jsonObject.toString()); }else{ log.info("InteractionState is closed"); } } } springboot-vue3/src/main/java/com/example/springboot/component/PlcLayout.java
@@ -2,6 +2,7 @@ import cn.hutool.json.JSONArray; import cn.hutool.json.JSONObject; import lombok.extern.slf4j.Slf4j; import java.io.IOException; import java.sql.SQLException; @@ -20,6 +21,7 @@ import com.example.springboot.mapper.HomeMapper; import com.example.springboot.mapper.SpianMapper; @Slf4j public class PlcLayout extends Thread { @Autowired @@ -89,17 +91,18 @@ ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("Layout"); if (sendwServer != null) { for (WebSocketServer webserver : sendwServer) { webserver.sendMessage(jsonObject.toString()); if (webserver != null) { if (webserver != null&& webserver.session.isOpen()) { webserver.sendMessage(jsonObject.toString()); List<String> messages = webserver.getMessages(); if (!messages.isEmpty()) { // // 将最后一个消息转换为整数类型的列表 webserver.clearMessages(); } }else{ log.info("Layout is closed"); } } springboot-vue3/src/main/java/com/example/springboot/component/PlcManualonePosition.java
@@ -2,13 +2,15 @@ import cn.hutool.json.JSONArray; import cn.hutool.json.JSONObject; import lombok.extern.slf4j.Slf4j; import org.apache.commons.io.FileUtils; import java.io.*; import java.util.ArrayList; import java.util.Arrays; import java.util.List; @Slf4j public class PlcManualonePosition extends Thread { private Configuration config; @@ -184,10 +186,11 @@ ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("ManualonePosition"); if (sendwServer != null) { for (WebSocketServer webserver : sendwServer) { webserver.sendMessage(jsonObject.toString()); // WebSocketServer webSocketServer = WebSocketServer.sessionMap.get("ManualonePosition"); if (webserver != null) { if (webserver != null&&webserver.session.isOpen()) { webserver.sendMessage(jsonObject.toString()); List<String> messages = webserver.getMessages(); @@ -238,6 +241,8 @@ // 清空消息列表 webserver.clearMessages(); } }else{ log.info("ManualonePosition is closed"); } } } springboot-vue3/src/main/java/com/example/springboot/component/PlcManualonePosition2.java
@@ -2,13 +2,15 @@ import cn.hutool.json.JSONArray; import cn.hutool.json.JSONObject; import lombok.extern.slf4j.Slf4j; import org.apache.commons.io.FileUtils; import java.io.*; import java.util.ArrayList; import java.util.Arrays; import java.util.List; @Slf4j public class PlcManualonePosition2 extends Thread { private Configuration config; @@ -165,10 +167,11 @@ ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("ManualonePosition2"); if (sendwServer != null) { for (WebSocketServer webserver : sendwServer) { webserver.sendMessage(jsonObject.toString()); // WebSocketServer webSocketServer = WebSocketServer.sessionMap.get("ManualonePosition2"); if (webserver != null) { if (webserver != null&&webserver.session.isOpen()) { webserver.sendMessage(jsonObject.toString()); List<String> messages = webserver.getMessages(); List<String> waddresses1 = new ArrayList<>(); waddresses1.add("DB100.116"); @@ -208,6 +211,8 @@ // 清空消息列表 webserver.clearMessages(); } }else{ log.info("ManualonePosition2 is closed"); } } } springboot-vue3/src/main/java/com/example/springboot/component/PlcParameter2.java
@@ -2,6 +2,8 @@ import cn.hutool.json.JSONArray; import cn.hutool.json.JSONObject; import lombok.extern.slf4j.Slf4j; import com.example.springboot.controller.HomeController; import com.example.springboot.mapper.HomeMapper; import org.apache.commons.io.FileUtils; @@ -14,6 +16,7 @@ import java.util.Collections; import java.util.List; @Slf4j public class PlcParameter2 extends Thread { @Autowired StorageCageService storageCageService; @@ -115,10 +118,10 @@ if (sendwServer != null) { for (WebSocketServer webserver : sendwServer) { webserver.sendMessage(jsonObject.toString()); if (webserver != null) { if (webserver != null&&webserver.session.isOpen()) { webserver.sendMessage(jsonObject.toString()); List<String> messages = webserver.getMessages(); if (!messages.isEmpty()) { @@ -269,6 +272,8 @@ // 清空消息列表 webserver.clearMessages(); } }else{ log.info("Parameter2 is closed"); } } } springboot-vue3/src/main/java/com/example/springboot/component/PlcPositioning1.java
@@ -2,6 +2,7 @@ import cn.hutool.json.JSONArray; import cn.hutool.json.JSONObject; import lombok.extern.slf4j.Slf4j; import java.util.ArrayList; import java.util.Arrays; @@ -15,6 +16,8 @@ import java.io.UnsupportedEncodingException; import org.apache.commons.io.FileUtils; @Slf4j public class PlcPositioning1 extends Thread { @@ -80,9 +83,10 @@ ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("Positioning1"); if (sendwServer != null) { for (WebSocketServer webserver : sendwServer) { webserver.sendMessage(jsonObject.toString()); if (webserver != null) { if (webserver != null&&webserver.session.isOpen()) { webserver.sendMessage(jsonObject.toString()); List<String> messages = webserver.getMessages(); // 存片格 出片格地址 @@ -123,6 +127,8 @@ // 清空消息列表 webserver.clearMessages(); } }else{ log.info("Positioning1 is closed"); } } springboot-vue3/src/main/java/com/example/springboot/component/PlcServoManualone.java
@@ -2,6 +2,8 @@ import cn.hutool.json.JSONArray; import cn.hutool.json.JSONObject; import lombok.extern.slf4j.Slf4j; import com.google.common.primitives.Bytes; import org.apache.commons.io.FileUtils; @@ -9,7 +11,7 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.List; @Slf4j public class PlcServoManualone extends Thread { // 用于存储应用程序的配置信息 @@ -230,9 +232,10 @@ ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("ServoManualone"); if (sendwServer != null) { for (WebSocketServer webserver : sendwServer) { webserver.sendMessage(jsonObject.toString()); if (webserver != null) { if (webserver != null&&webserver.session.isOpen()) { webserver.sendMessage(jsonObject.toString()); List<String> messages = webserver.getMessages(); if (!messages.isEmpty()) { @@ -270,6 +273,8 @@ // 清空消息列表 webserver.clearMessages(); } }else{ log.info("ServoManualone is closed"); } } } springboot-vue3/src/main/java/com/example/springboot/component/Plcalarm.java
@@ -2,6 +2,7 @@ import cn.hutool.json.JSONArray; import cn.hutool.json.JSONObject; import lombok.extern.slf4j.Slf4j; import java.io.BufferedReader; import java.io.FileInputStream; @@ -15,6 +16,7 @@ import com.example.springboot.mapper.AlarmMapper; @Slf4j public class Plcalarm extends Thread { private AlarmMapper alarmMapper; springboot-vue3/src/main/java/com/example/springboot/component/Plchome.java
@@ -1,31 +1,25 @@ package com.example.springboot.component; import cn.hutool.json.JSONArray; import cn.hutool.json.JSONObject; import lombok.extern.slf4j.Slf4j; import java.io.IOException; import java.sql.SQLException; import java.util.ArrayList; import java.util.Arrays; import java.util.HashMap; import java.util.List; import java.util.Map; import com.example.springboot.service.*; import org.apache.ibatis.annotations.Result; import org.springframework.beans.factory.annotation.Autowired; import com.example.springboot.entity.Glass; import com.example.springboot.entity.Out_slice; import com.example.springboot.entity.Queue; import com.example.springboot.entity.StorageCage; import com.example.springboot.entity.alarmmg; import com.example.springboot.entity.north_glass_buffer1; import com.example.springboot.entity.device.PlcParameterObject; import com.example.springboot.mapper.HomeMapper; import com.example.springboot.mapper.SpianMapper; @Slf4j public class Plchome extends Thread { @Autowired @@ -39,11 +33,11 @@ public static Boolean isAllowQueue = true; public static Boolean isAllowReordering = true; // 出片队列警告 public static Boolean isQueueWarning = true; public static Boolean isQueueWarning = false; // 铝框id public static String FrameNo = ""; // 是否需要手动确认玻璃 public static Boolean isConfirm = false; public static Boolean isConfirm = true; // 待确认的出片队列 public static List<north_glass_buffer1> AluminumFrame; @@ -55,6 +49,11 @@ public static StringBuilder feedglassid; public static Boolean dbconnected = false; public static Boolean plc1 = true; public static Boolean plc2 = false; // public Plchome() throws IOException { // config = new Configuration("config.properties"); // } @@ -63,13 +62,7 @@ // b.put() @Override public void run() { while (this != null) { JSONObject jsonObject = new JSONObject(); jsonObject.append("feedglassid", feedglassid); try { Thread.sleep(1000); // 注入mapper homeMapper = WebSocketServer.applicationContext.getBean(HomeMapper.class); homeMapper = WebSocketServer.applicationContext.getBean(HomeMapper.class); spianMapper = WebSocketServer.applicationContext.getBean(SpianMapper.class); spianService = WebSocketServer.applicationContext.getBean(SpianService.class); outSliceServive = WebSocketServer.applicationContext.getBean(OutSliceServive.class); @@ -77,6 +70,50 @@ .getBean(North_Glass_Buffer1Service.class); storageCageService = WebSocketServer.applicationContext.getBean(StorageCageService.class); dbserve = WebSocketServer.applicationContext.getBean(JdbcConnections.class); while (this != null) { Short zhi = 0; JSONObject jsonObject = new JSONObject(); jsonObject.append("feedglassid", feedglassid); try { Thread.sleep(1000); // 注入mapper // boolean dbconnected = false; try { dbserve.getConn(); dbconnected = true; } catch (Exception e) { e.printStackTrace(); dbconnected = false; log.info("dbconnected:" + dbconnected); } jsonObject.append("dbconnected", dbconnected); // // 获取当前扫码枪玻璃id // String CurrrentGlassId = "X22595911002GV"; // if (CurrrentGlassId.toString() != "" && CurrrentGlassId.toString() != null) { // north_glass_buffer1 form6 = // dbserve.SelectGlassByGlassIdOrderIdFrameIdouts(CurrrentGlassId, "", // ""); // if (form6.getbarcode() != null) { // jsonObject.append("form6", form6); // double width = 0; // double height = 0; // if (form6.getglassheightmm() < form6.getglasslengthmm()) { // height = form6.getglassheightmm(); // width = form6.getglasslengthmm(); // } else { // height = form6.getglasslengthmm(); // width = form6.getglassheightmm(); // } // if (height < 380 || width < 380 || height > 1810 || width > 2760) { // zhi = 600; // } else { // zhi = spianService.selectAlls(form6); // } // } // } // 笼子使用情况 List<StorageCage> tableData = homeMapper.selectAll(); @@ -130,39 +167,72 @@ // String E01id = new String( S7controlLK.getinstance().ReadByte("DB17.0",16)); // String J01id = new String( S7controlLK.getinstance().ReadByte("DB17.22",14)); try { // 铝框线交互 // if (S7controlLK.getinstance().CheckConnected() == true) { // E02玻璃id // log.info("frame1"+S7controlLK.getinstance().CheckConnected()); String E02id=""; try { E02id= S7controlLK.getinstance().readStrings("DB17.40"); plc2=true; } catch (Exception e) { // TODO: handle exception plc2=false; e.printStackTrace(); } jsonObject.append("Plc2", plc2); // log.info("铝框线读取2"+S7controlLK.getinstance().CheckConnected()); // log.info("E02id"+E02id); outSliceServive.FrameStateUpdate(E02id); if (CurrentFrame != null) { S7controlLK.getinstance().writeStrings(CurrentFrame.getBarCode(), "DB17.0"); } String J01id = S7controlLK.getinstance().readStrings("DB17.22"); List<Short> liststate = S7controlLK.getinstance().ReadWord("DB17.20", 1); Short framerequest = liststate.get(0); // log.info("liststate:" + liststate); if (framerequest == 1) { // 铝框id String position; try { position = dbserve.SelectPositionByFrameBarcode(J01id); } catch (SQLException e) { // TODO Auto-generated catch block position = "0"; e.printStackTrace(); } Short send; if (position.equals("0")) { send = 2; } else { send = 1; } if (J01id != null) { int barcodeState = spianMapper.SelectOverState(J01id);// 获取该铝框的状态 if (barcodeState == 0) {// 当该铝框所有的玻璃都是完成状态时删除在出片队列的数据 spianMapper.DeleteQueue(J01id); // log.info("deleteoutslice:" + J01id); } } S7controlLK.getinstance().WriteWord("DB17.38", (short) send); } String E01id = S7controlLK.getinstance().readStrings("DB17.0"); // log.info("frameno:" + E01id); List<Short> liststates = S7controlLK.getinstance().ReadWord("DB17.38", 1); // log.info("frameflip:" + liststates); // }else{ // log.info("Plc2"+S7controlLK.getinstance().CheckConnected()); // jsonObject.append("Plc2", false); // } } catch (Exception e) { e.printStackTrace(); } if (S7control.getinstance().CheckConnected() == true) { // 铝框线交互 if (S7controlLK.getinstance().CheckConnected() == true) { if (CurrentFrame != null) { S7controlLK.getinstance().writeStrings(CurrentFrame.getBarCode(), "DB17.0"); } String E01id = S7controlLK.getinstance().readStrings("DB17.0"); String J01id = S7controlLK.getinstance().readStrings("DB17.22"); List<Short> liststates = S7controlLK.getinstance().ReadWord("DB17.38", 1); List<Short> liststate = S7controlLK.getinstance().ReadWord("DB17.20", 1); Short framerequest = liststate.get(0); if (framerequest == 1) { // 铝框id String position; try { position = dbserve.SelectPositionByFrameBarcode(J01id); } catch (SQLException e) { // TODO Auto-generated catch block position = "0"; e.printStackTrace(); } Short send; if (position.equals("0")) { send = 0; } else { send = 1; } S7controlLK.getinstance().WriteWord("DB17.38", (short) send); } } // 获取当前扫码方式 List<Boolean> Scanningmethods = S7control.getinstance().ReadBits("DB101.11.4", 1); @@ -173,6 +243,28 @@ } // 获取当前扫码枪玻璃id String CurrrentGlassId = spianService.queGlassid("DB103.256", 14).toString(); if (CurrrentGlassId.toString() != "" && CurrrentGlassId.toString() != null) { north_glass_buffer1 form6 = dbserve.SelectGlassByGlassIdOrderIdFrameIdouts(CurrrentGlassId, "", ""); if (form6.getbarcode() != null) { jsonObject.append("form6", form6); double width = 0; double height = 0; if (form6.getglassheightmm() < form6.getglasslengthmm()) { height = form6.getglassheightmm(); width = form6.getglasslengthmm(); } else { height = form6.getglasslengthmm(); width = form6.getglassheightmm(); } if (height < 380 || width < 380 || height > 1810 || width > 2760) { zhi = 600; } else { zhi = spianService.selectAlls(form6); } } } jsonObject.append("CurrrentGlassId", CurrrentGlassId); // 获取D01-D06,A01,A02,B01,B02状态 @@ -287,42 +379,34 @@ width = form3.getglassheight(); } if (height < 380 || width < 380 || height > 1810 || width > 2760) { FeedState = true; jsonObject.append("FeedState", FeedState); FeedState = false; zhi = 600; } else { if (D01RequestState == true && D01ResponseState != true) { storageCageService.InsertQueueGlassId((short) 1, form3); zhi = storageCageService.InsertQueueGlassIds((short) 1, form3); } } } plc1=true; } else { plc1=false; log.info("Plc1" + S7controlLK.getinstance().CheckConnected()); } boolean dbconnected = false; try { dbserve.getConn(); dbconnected = true; } catch (Exception e) { // TODO: handle exception dbconnected = false; } jsonObject.append("dbconnected", dbconnected); jsonObject.append("zhi", zhi); jsonObject.append("Plc1", plc1); // jsonObject.append("params", new short[] { 30, 40, }); ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("Home"); if (sendwServer != null) { for (WebSocketServer webserver : sendwServer) { webserver.sendMessage(jsonObject.toString()); if (webserver != null) { if (webserver != null && webserver.session.isOpen()) { webserver.sendMessage(jsonObject.toString()); List<String> messages = webserver.getMessages(); if (!messages.isEmpty()) { // // 将最后一个消息转换为整数类型的列表 webserver.clearMessages(); } } else { log.info("Home is closed"); } } } } catch (InterruptedException | SQLException e) { springboot-vue3/src/main/java/com/example/springboot/component/Plcsign.java
@@ -2,6 +2,7 @@ import cn.hutool.json.JSONArray; import cn.hutool.json.JSONObject; import lombok.extern.slf4j.Slf4j; import java.io.BufferedReader; import java.io.FileInputStream; @@ -13,6 +14,7 @@ import java.util.List; import java.util.Arrays; @Slf4j public class Plcsign extends Thread { String name = ""; Integer count = 0; @@ -100,7 +102,12 @@ ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("Sign"); if (sendwServer != null) { for (WebSocketServer webserver : sendwServer) { webserver.sendMessage(jsonObject.toString()); if (webserver != null && webserver.session.isOpen()) { webserver.sendMessage(jsonObject.toString()); }else{ log.info("Sign is closed"); } } } } springboot-vue3/src/main/java/com/example/springboot/component/Plcstate.java
@@ -2,6 +2,7 @@ import cn.hutool.json.JSONArray; import cn.hutool.json.JSONObject; import lombok.extern.slf4j.Slf4j; import java.io.BufferedReader; import java.io.FileInputStream; @@ -13,6 +14,7 @@ import java.util.List; import java.util.Arrays; @Slf4j public class Plcstate extends Thread { String name = ""; Integer count = 0; @@ -87,7 +89,11 @@ ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("State"); if (sendwServer != null) { for (WebSocketServer webserver : sendwServer) { webserver.sendMessage(jsonObject.toString()); if (webserver != null && webserver.session.isOpen()) { webserver.sendMessage(jsonObject.toString()); }else{ log.info("State连接已关闭"); } } } springboot-vue3/src/main/java/com/example/springboot/config/AppRunnerConfig.java
@@ -31,5 +31,6 @@ new PlcServoManualone().start(); new PLCManualJog().start(); new PlcInteractionState().start(); } } springboot-vue3/src/main/java/com/example/springboot/controller/HomeController.java
@@ -178,7 +178,7 @@ Map<String, Object> map = new HashMap<>(); Out_slice result = homeMapper.SelectQueueByglassid(glassid); if (result == null) { north_glass_buffer1 north_glass_buffer1 = jdbcConnections.SelectGlassByGlassIdOrderIdFrameId(glassid, "", ""); north_glass_buffer1 north_glass_buffer1 = jdbcConnections.SelectGlassByGlassIdOrderIdFrameIdout(glassid, "", ""); String flip = jdbcConnections.SelectFlipByFrameBarcode(north_glass_buffer1.getFrameBarcode()); if (flip != null&&flip != "") { springboot-vue3/src/main/java/com/example/springboot/entity/Out_slice.java
@@ -20,6 +20,7 @@ private int framestate;//铝框状态 private double framewidthmm; private double frameheightmm; private String cell;//格子号 public String getPosition() { return position; @@ -197,4 +198,12 @@ this.frameheightmm = frameheightmm; } public String getCell() { return cell; } public void setCell(String cell) { this.cell = cell; } } springboot-vue3/src/main/java/com/example/springboot/mapper/HomeMapper.java
@@ -139,7 +139,7 @@ north_glass_buffer1 SelectBoxNo(String glassid); //查询出片队列信息 @Select("select * from out_slice order by sequence") @Select("select a.*,b.cell from out_slice a left join storage_cage b on a.glassId=b.glass_id order by sequence") List<Out_slice> SelectProductionqueue(); //根据玻璃id查询笼内玻璃信息 springboot-vue3/src/main/java/com/example/springboot/mapper/SpianMapper.java
@@ -55,7 +55,7 @@ // desc,tier desc,cell desc LIMIT 1") // StorageCage selectOut(String orderId); // 按玻璃ID出片任务查询 @Select("select cage,cell,tier,glasswidth,ROUND(id/2)as prcId,id from storage_cage as a where a.glass_id=#{glassid} and state=1 and disabled=0 order by cage desc,tier desc,cell desc LIMIT 1") @Select("select cage,cell,tier,glasswidth,glassheight,ROUND(id/2)as prcId,id from storage_cage as a where a.glass_id=#{glassid} and state=1 and disabled=0 order by cage desc,tier desc,cell desc LIMIT 1") StorageCage selectOut2(String glassid); // 判断出片为1时,是否可直接出片 @@ -78,7 +78,7 @@ @Update("update storage_cage set state=#{state},glass_id=#{glassid},order_id=#{orderid},glasswidth=#{width} where id=#{id};") void UpdataAddCage(String orderid, String glassid, double width, int cage, int cell, int id, int state); @Update("update storage_cage set state=#{state},glass_id=#{glassid},order_id=#{glass.ordernumber},glasswidth=#{glass.glasslengthmm},glassheight=#{glass.glassheightmm},glasswidthmm=#{glass.glasslength},glassheightmm=#{glass.glassheight},listid=#{glass.listnumber},boxid=#{glass.boxnumber},FrameBarcode=#{glass.frameBarcode} where id=#{id};") @Update("update storage_cage set state=#{state},glass_id=#{glassid},order_id=#{glass.ordernumber},glasswidth=#{widths},glassheight=#{glass.glassheightmm},glasswidthmm=#{glass.glasslength},glassheightmm=#{glass.glassheight},listid=#{glass.listnumber},boxid=#{glass.boxnumber},FrameBarcode=#{glass.frameBarcode} where id=#{id};") void UpdataAddCage2(String orderid, String glassid, north_glass_buffer1 glass, int cage, int cell, int id,int state,Double widths); // 修改笼子信息(多片进片) @@ -216,7 +216,7 @@ String SelectBarcode(String glassId); // 获取出片队列的铝框是否全部完成 @Select("select count(*) from out_slice where barcode=#{barcode} and (state=1 or state=0 or state=3);") @Select("select count(*) from out_slice where barcode=#{barcode} and (state=1 or state=0);") int SelectOverState(String barcode); // 删除出片队列该铝框的id springboot-vue3/src/main/java/com/example/springboot/service/JdbcConnections.java
@@ -12,283 +12,441 @@ import com.example.springboot.entity.Queue; import com.example.springboot.entity.north_glass_buffer1; @Component public class JdbcConnections { /** /** * 数据库连接参数 * driver,url,username,password */ private static final String DRIVER = "com.mysql.jdbc.Driver"; private static final String DRIVER = "com.mysql.cj.jdbc.Driver"; private static final String URL = "jdbc:mysql://localhost:3306/canadames"; private static final String USERNAME = "root"; private static final String PASSWORD = "beibo.123/"; private static Connection conns = null; private static PreparedStatement ps = null; private static ResultSet rss = null; public north_glass_buffer1 selectGlass(int glassid) throws SQLException { Connection conn = getConn(); north_glass_buffer1 glass=new north_glass_buffer1(); String sql = "select ordernumber from north_glass_buffer1 where glassid=?"; ps = conn.prepareStatement(sql); ps.setInt(1, glassid); ResultSet rs= ps.executeQuery(); while (rs.next()) { glass.setordernumber(rs.getString("ordernumber")); } conn.close(); return glass; } public north_glass_buffer1 SelectGlassByGlassIdOrderIdFrameId(String glassid,String orderid,String frameid) throws SQLException { Connection conn = getConn(); north_glass_buffer1 north_glass_buffer1s=new north_glass_buffer1(); String sql = "select * from north_glass_buffer1 where barcode=? or ordernumber=? or FrameBarcode=?"; ps = conn.prepareStatement(sql); ps.setString(1, glassid); ps.setString(2, orderid); ps.setString(3, frameid); ResultSet rs= ps.executeQuery(); while (rs.next()) { north_glass_buffer1s.setId(rs.getInt("Id")); north_glass_buffer1s.setordernumber(rs.getString("ordernumber")); north_glass_buffer1s.setlistnumber(rs.getString("listnumber")); north_glass_buffer1s.setboxnumber(rs.getString("boxnumber")); north_glass_buffer1s.setbarcode(rs.getString("barcode")); north_glass_buffer1s.setglasslength(rs.getDouble("glasslength")); north_glass_buffer1s.setglassheight(rs.getDouble("glassheight")); north_glass_buffer1s.setglasslengthmm(rs.getDouble("glasslength_mm")); north_glass_buffer1s.setglassheightmm(rs.getDouble("glassheight_mm")); north_glass_buffer1s.setitemtype(rs.getString("itemtype")); north_glass_buffer1s.setslotnumber(rs.getString("slotnumber")); north_glass_buffer1s.setdatemodified(rs.getString("datemodified")); north_glass_buffer1s.setdatecreated(rs.getString("datecreated")); north_glass_buffer1s.setFrameBarcode(rs.getString("FrameBarcode")); } conn.close(); return north_glass_buffer1s; } public north_glass_buffer1 selectGlass(int glassid) throws SQLException { try { Connection conn = getConn(); north_glass_buffer1 glass = new north_glass_buffer1(); String sql = "select ordernumber from north_glass_buffer1 where glassid=?"; ps = conn.prepareStatement(sql); ps.setInt(1, glassid); ResultSet rs = ps.executeQuery(); while (rs.next()) { glass.setordernumber(rs.getString("ordernumber")); } conn.close(); return glass; } catch (Exception e) { // TODO: handle exception e.printStackTrace(); return null; } public north_glass_buffer1 SelectGlassByGlassIdOrderIdFrameIdplchold(String glassid,String orderid,String frameid) throws SQLException { Connection conn = getConn(); north_glass_buffer1 north_glass_buffer1s=new north_glass_buffer1(); String sql = "select * from north_glass_buffer1 where barcode=? or ordernumber=? or FrameBarcode=?"; ps = conn.prepareStatement(sql); ps.setString(1, glassid); ps.setString(2, orderid); ps.setString(3, frameid); ResultSet rs= ps.executeQuery(); while (rs.next()) { north_glass_buffer1s.setId(rs.getInt("Id")); north_glass_buffer1s.setordernumber(rs.getString("ordernumber")); north_glass_buffer1s.setlistnumber(rs.getString("listnumber")); north_glass_buffer1s.setboxnumber(rs.getString("boxnumber")); north_glass_buffer1s.setbarcode(rs.getString("barcode")); north_glass_buffer1s.setglasslength(rs.getDouble("glasslength")); north_glass_buffer1s.setglassheight(rs.getDouble("glassheight")); north_glass_buffer1s.setglasslengthmm(rs.getDouble("glasslength_mm")); north_glass_buffer1s.setglassheightmm(rs.getDouble("glassheight_mm")); north_glass_buffer1s.setitemtype(rs.getString("itemtype")); north_glass_buffer1s.setslotnumber(rs.getString("slotnumber")); north_glass_buffer1s.setdatemodified(rs.getString("datemodified")); north_glass_buffer1s.setdatecreated(rs.getString("datecreated")); north_glass_buffer1s.setFrameBarcode(rs.getString("FrameBarcode")); } conn.close(); return north_glass_buffer1s; } //根据玻璃id,订单id,铝框id查询客户玻璃信息 public Queue SelectGlassByGlassIdOrderIdFrameIdQueue(String glassid,String orderid,String frameid) throws SQLException { Connection conn = getConn(); Queue queue=new Queue(); String sql = "select * from north_glass_buffer1 where barcode=? or ordernumber=? or FrameBarcode=?"; ps = conn.prepareStatement(sql); ps.setString(1, glassid); ps.setString(2, orderid); ps.setString(3, frameid); ResultSet rs= ps.executeQuery(); while (rs.next()) { queue.setid(rs.getInt("Id")); queue.setorderId(rs.getString("ordernumber")); queue.setlistId(rs.getString("listnumber")); queue.setboxId(rs.getString("boxnumber")); queue.setglassId(rs.getString("barcode")); queue.setglasswidthmm(rs.getDouble("glasslength")); queue.setglassheightmm(rs.getDouble("glassheight")); queue.setglasswidth(rs.getDouble("glasslength_mm")); queue.setglassheight(rs.getDouble("glassheight_mm")); // queue.setitemtype(rs.getString("itemtype")); // queue.setslotnumber(rs.getString("slotnumber")); // queue.setdatemodified(rs.getString("datemodified")); // queue.setdatecreated(rs.getString("datecreated")); // queue.setFrameBarcode(rs.getString("FrameBarcode")); } conn.close(); return queue; } //根据玻璃id,订单id,铝框id查询客户玻璃信息 public List<north_glass_buffer1> SelectGlassByGlassIdOrderIdFrameIds(String glassid,String orderid,String frameid) throws SQLException { Connection conn = getConn(); // north_glass_buffer1 glass=new north_glass_buffer1(); List<north_glass_buffer1> glass=new ArrayList<north_glass_buffer1>(); String sql = "select * from north_glass_buffer1 where position(? in barcode) and position(? in ordernumber) and position(? in FrameBarcode)"; ps = conn.prepareStatement(sql); ps.setString(1, glassid); ps.setString(2, orderid); ps.setString(3, frameid); ResultSet rs= ps.executeQuery(); while (rs.next()) { north_glass_buffer1 north_glass_buffer1s=new north_glass_buffer1(); north_glass_buffer1s.setId(rs.getInt("Id")); north_glass_buffer1s.setordernumber(rs.getString("ordernumber")); north_glass_buffer1s.setlistnumber(rs.getString("listnumber")); north_glass_buffer1s.setboxnumber(rs.getString("boxnumber")); north_glass_buffer1s.setbarcode(rs.getString("barcode")); north_glass_buffer1s.setglasslength(rs.getDouble("glasslength")); north_glass_buffer1s.setglassheight(rs.getDouble("glassheight")); north_glass_buffer1s.setglasslengthmm(rs.getDouble("glasslength_mm")); north_glass_buffer1s.setglassheightmm(rs.getDouble("glassheight_mm")); north_glass_buffer1s.setitemtype(rs.getString("itemtype")); north_glass_buffer1s.setslotnumber(rs.getString("slotnumber")); north_glass_buffer1s.setdatemodified(rs.getString("datemodified")); north_glass_buffer1s.setdatecreated(rs.getString("datecreated")); north_glass_buffer1s.setFrameBarcode(rs.getString("FrameBarcode")); glass.add(north_glass_buffer1s); } conn.close(); return glass; } //根据铝框id查询客户玻璃信息 public List<north_glass_buffer1> SelectGlassByGlassIdOrderIdFrameIdss(String frameid) throws SQLException { Connection conn = getConn(); // north_glass_buffer1 glass=new north_glass_buffer1(); List<north_glass_buffer1> glass=new ArrayList<north_glass_buffer1>(); String sql = "select * from north_glass_buffer1 where FrameBarcode=?"; ps = conn.prepareStatement(sql); ps.setString(1, frameid); ResultSet rs= ps.executeQuery(); while (rs.next()) { north_glass_buffer1 north_glass_buffer1s=new north_glass_buffer1(); north_glass_buffer1s.setId(rs.getInt("Id")); north_glass_buffer1s.setordernumber(rs.getString("ordernumber")); north_glass_buffer1s.setlistnumber(rs.getString("listnumber")); north_glass_buffer1s.setboxnumber(rs.getString("boxnumber")); north_glass_buffer1s.setbarcode(rs.getString("barcode")); north_glass_buffer1s.setglasslength(rs.getDouble("glasslength")); north_glass_buffer1s.setglassheight(rs.getDouble("glassheight")); north_glass_buffer1s.setglasslengthmm(rs.getDouble("glasslength_mm")); north_glass_buffer1s.setglassheightmm(rs.getDouble("glassheight_mm")); north_glass_buffer1s.setitemtype(rs.getString("itemtype")); north_glass_buffer1s.setslotnumber(rs.getString("slotnumber")); north_glass_buffer1s.setdatemodified(rs.getString("datemodified")); north_glass_buffer1s.setdatecreated(rs.getString("datecreated")); north_glass_buffer1s.setFrameBarcode(rs.getString("FrameBarcode")); glass.add(north_glass_buffer1s); } conn.close(); return glass; } //根据铝框id查询l铝框是否翻转 public String SelectFlipByFrameBarcode(String frameBarcode) throws SQLException { Connection conn = getConn(); // north_glass_buffer1 glass=new north_glass_buffer1(); String flip=""; String sql1 = "select * from north_glass_buffer1_frames where Barcode=? limit 1"; ps = conn.prepareStatement(sql1); ps.setString(1, frameBarcode); ResultSet rs= ps.executeQuery(); while (rs.next()) { flip=rs.getString("Flip"); } conn.close(); return flip; } //根据铝框id查询是否铝框摆放 public north_glass_buffer1 SelectGlassByGlassIdOrderIdFrameId(String glassid, String orderid, String frameid) throws SQLException { try { Connection conn = getConn(); north_glass_buffer1 north_glass_buffer1s = new north_glass_buffer1(); String sql = "select * from north_glass_buffer1 where barcode=? or ordernumber=? or FrameBarcode=?"; ps = conn.prepareStatement(sql); ps.setString(1, glassid); ps.setString(2, orderid); ps.setString(3, frameid); ResultSet rs = ps.executeQuery(); while (rs.next()) { north_glass_buffer1s.setId(rs.getInt("Id")); north_glass_buffer1s.setordernumber(rs.getString("ordernumber")); north_glass_buffer1s.setlistnumber(rs.getString("listnumber")); north_glass_buffer1s.setboxnumber(rs.getString("boxnumber")); north_glass_buffer1s.setbarcode(rs.getString("barcode")); north_glass_buffer1s.setglasslength(rs.getDouble("glasslength")); north_glass_buffer1s.setglassheight(rs.getDouble("glassheight")); north_glass_buffer1s.setglasslengthmm(rs.getDouble("glasslength_mm")); north_glass_buffer1s.setglassheightmm(rs.getDouble("glassheight_mm")); north_glass_buffer1s.setitemtype(rs.getString("itemtype")); north_glass_buffer1s.setslotnumber(rs.getString("slotnumber")); north_glass_buffer1s.setdatemodified(rs.getString("datemodified")); north_glass_buffer1s.setdatecreated(rs.getString("datecreated")); north_glass_buffer1s.setFrameBarcode(rs.getString("FrameBarcode")); } conn.close(); return north_glass_buffer1s; } catch (Exception e) { // TODO: handle exception e.printStackTrace(); return null; } } public north_glass_buffer1 SelectGlassByGlassIdOrderIdFrameIdout(String glassid, String orderid, String frameid) throws SQLException { try { Connection conn = getConn(); north_glass_buffer1 north_glass_buffer1s = new north_glass_buffer1(); String sql = "select * from north_glass_buffer1 where barcode=? or ordernumber=? or FrameBarcode=?"; ps = conn.prepareStatement(sql); ps.setString(1, glassid); ps.setString(2, orderid); ps.setString(3, frameid); ResultSet rs = ps.executeQuery(); while (rs.next()) { north_glass_buffer1s.setId(rs.getInt("Id")); north_glass_buffer1s.setordernumber(rs.getString("ordernumber")); north_glass_buffer1s.setlistnumber(rs.getString("listnumber")); north_glass_buffer1s.setboxnumber(rs.getString("boxnumber")); north_glass_buffer1s.setbarcode(rs.getString("barcode")); north_glass_buffer1s.setglasslength(rs.getDouble("glasslength")); north_glass_buffer1s.setglassheight(rs.getDouble("glassheight")); north_glass_buffer1s.setglasslengthmm(rs.getDouble("glasslength_mm")); north_glass_buffer1s.setglassheightmm(rs.getDouble("glassheight_mm")); north_glass_buffer1s.setitemtype(rs.getString("itemtype")); north_glass_buffer1s.setslotnumber(rs.getString("slotnumber")); north_glass_buffer1s.setdatemodified(rs.getString("datemodified")); north_glass_buffer1s.setdatecreated(rs.getString("datecreated")); north_glass_buffer1s.setFrameBarcode(rs.getString("FrameBarcode")); } conn.close(); return north_glass_buffer1s; } catch (Exception e) { // TODO: handle exception e.printStackTrace(); return null; } } public north_glass_buffer1 SelectGlassByGlassIdOrderIdFrameIdouts(String glassid, String orderid, String frameid) throws SQLException { try { Connection conn = getConn(); north_glass_buffer1 north_glass_buffer1s = new north_glass_buffer1(); String sql = "select * from north_glass_buffer1 where barcode=? or ordernumber=? or FrameBarcode=?"; ps = conn.prepareStatement(sql); ps.setString(1, glassid); ps.setString(2, orderid); ps.setString(3, frameid); ResultSet rs = ps.executeQuery(); while (rs.next()) { north_glass_buffer1s.setId(rs.getInt("Id")); north_glass_buffer1s.setordernumber(rs.getString("ordernumber")); north_glass_buffer1s.setlistnumber(rs.getString("listnumber")); north_glass_buffer1s.setboxnumber(rs.getString("boxnumber")); north_glass_buffer1s.setbarcode(rs.getString("barcode")); north_glass_buffer1s.setglasslength(rs.getDouble("glasslength")); north_glass_buffer1s.setglassheight(rs.getDouble("glassheight")); north_glass_buffer1s.setglasslengthmm(rs.getDouble("glasslength_mm")); north_glass_buffer1s.setglassheightmm(rs.getDouble("glassheight_mm")); north_glass_buffer1s.setitemtype(rs.getString("itemtype")); north_glass_buffer1s.setslotnumber(rs.getString("slotnumber")); north_glass_buffer1s.setdatemodified(rs.getString("datemodified")); north_glass_buffer1s.setdatecreated(rs.getString("datecreated")); north_glass_buffer1s.setFrameBarcode(rs.getString("FrameBarcode")); } conn.close(); return north_glass_buffer1s; } catch (Exception e) { // TODO: handle exception e.printStackTrace(); return null; } } public north_glass_buffer1 SelectGlassByGlassIdOrderIdFrameIdplchold(String glassid, String orderid, String frameid) throws SQLException { try { Connection conn = getConn(); north_glass_buffer1 north_glass_buffer1s = new north_glass_buffer1(); String sql = "select * from north_glass_buffer1 where barcode=? or ordernumber=? or FrameBarcode=?"; ps = conn.prepareStatement(sql); ps.setString(1, glassid); ps.setString(2, orderid); ps.setString(3, frameid); ResultSet rs = ps.executeQuery(); while (rs.next()) { north_glass_buffer1s.setId(rs.getInt("Id")); north_glass_buffer1s.setordernumber(rs.getString("ordernumber")); north_glass_buffer1s.setlistnumber(rs.getString("listnumber")); north_glass_buffer1s.setboxnumber(rs.getString("boxnumber")); north_glass_buffer1s.setbarcode(rs.getString("barcode")); north_glass_buffer1s.setglasslength(rs.getDouble("glasslength")); north_glass_buffer1s.setglassheight(rs.getDouble("glassheight")); north_glass_buffer1s.setglasslengthmm(rs.getDouble("glasslength_mm")); north_glass_buffer1s.setglassheightmm(rs.getDouble("glassheight_mm")); north_glass_buffer1s.setitemtype(rs.getString("itemtype")); north_glass_buffer1s.setslotnumber(rs.getString("slotnumber")); north_glass_buffer1s.setdatemodified(rs.getString("datemodified")); north_glass_buffer1s.setdatecreated(rs.getString("datecreated")); north_glass_buffer1s.setFrameBarcode(rs.getString("FrameBarcode")); } conn.close(); return north_glass_buffer1s; } catch (Exception e) { // TODO: handle exception e.printStackTrace(); return null; } } // 根据玻璃id,订单id,铝框id查询客户玻璃信息 public Queue SelectGlassByGlassIdOrderIdFrameIdQueue(String glassid, String orderid, String frameid) throws SQLException { try { Connection conn = getConn(); Queue queue = new Queue(); String sql = "select * from north_glass_buffer1 where barcode=? or ordernumber=? or FrameBarcode=?"; ps = conn.prepareStatement(sql); ps.setString(1, glassid); ps.setString(2, orderid); ps.setString(3, frameid); ResultSet rs = ps.executeQuery(); while (rs.next()) { queue.setid(rs.getInt("Id")); queue.setorderId(rs.getString("ordernumber")); queue.setlistId(rs.getString("listnumber")); queue.setboxId(rs.getString("boxnumber")); queue.setglassId(rs.getString("barcode")); queue.setglasswidthmm(rs.getDouble("glasslength")); queue.setglassheightmm(rs.getDouble("glassheight")); queue.setglasswidth(rs.getDouble("glasslength_mm")); queue.setglassheight(rs.getDouble("glassheight_mm")); // queue.setitemtype(rs.getString("itemtype")); // queue.setslotnumber(rs.getString("slotnumber")); // queue.setdatemodified(rs.getString("datemodified")); // queue.setdatecreated(rs.getString("datecreated")); // queue.setFrameBarcode(rs.getString("FrameBarcode")); } conn.close(); return queue; } catch (Exception e) { // TODO: handle exception e.printStackTrace(); return null; } } // 根据玻璃id,订单id,铝框id查询客户玻璃信息 public List<north_glass_buffer1> SelectGlassByGlassIdOrderIdFrameIds(String glassid, String orderid, String frameid) throws SQLException { try { Connection conn = getConn(); // north_glass_buffer1 glass=new north_glass_buffer1(); List<north_glass_buffer1> glass = new ArrayList<north_glass_buffer1>(); String sql = "select * from north_glass_buffer1 where position(? in barcode) and position(? in ordernumber) and position(? in FrameBarcode)"; ps = conn.prepareStatement(sql); ps.setString(1, glassid); ps.setString(2, orderid); ps.setString(3, frameid); ResultSet rs = ps.executeQuery(); while (rs.next()) { north_glass_buffer1 north_glass_buffer1s = new north_glass_buffer1(); north_glass_buffer1s.setId(rs.getInt("Id")); north_glass_buffer1s.setordernumber(rs.getString("ordernumber")); north_glass_buffer1s.setlistnumber(rs.getString("listnumber")); north_glass_buffer1s.setboxnumber(rs.getString("boxnumber")); north_glass_buffer1s.setbarcode(rs.getString("barcode")); north_glass_buffer1s.setglasslength(rs.getDouble("glasslength")); north_glass_buffer1s.setglassheight(rs.getDouble("glassheight")); north_glass_buffer1s.setglasslengthmm(rs.getDouble("glasslength_mm")); north_glass_buffer1s.setglassheightmm(rs.getDouble("glassheight_mm")); north_glass_buffer1s.setitemtype(rs.getString("itemtype")); north_glass_buffer1s.setslotnumber(rs.getString("slotnumber")); north_glass_buffer1s.setdatemodified(rs.getString("datemodified")); north_glass_buffer1s.setdatecreated(rs.getString("datecreated")); north_glass_buffer1s.setFrameBarcode(rs.getString("FrameBarcode")); glass.add(north_glass_buffer1s); } conn.close(); return glass; } catch (Exception e) { // TODO: handle exception e.printStackTrace(); return null; } } // 根据铝框id查询客户玻璃信息 public List<north_glass_buffer1> SelectGlassByGlassIdOrderIdFrameIdss(String frameid) throws SQLException { try { Connection conn = getConn(); // north_glass_buffer1 glass=new north_glass_buffer1(); List<north_glass_buffer1> glass = new ArrayList<north_glass_buffer1>(); String sql = "select * from north_glass_buffer1 where FrameBarcode=?"; ps = conn.prepareStatement(sql); ps.setString(1, frameid); ResultSet rs = ps.executeQuery(); while (rs.next()) { north_glass_buffer1 north_glass_buffer1s = new north_glass_buffer1(); north_glass_buffer1s.setId(rs.getInt("Id")); north_glass_buffer1s.setordernumber(rs.getString("ordernumber")); north_glass_buffer1s.setlistnumber(rs.getString("listnumber")); north_glass_buffer1s.setboxnumber(rs.getString("boxnumber")); north_glass_buffer1s.setbarcode(rs.getString("barcode")); north_glass_buffer1s.setglasslength(rs.getDouble("glasslength")); north_glass_buffer1s.setglassheight(rs.getDouble("glassheight")); north_glass_buffer1s.setglasslengthmm(rs.getDouble("glasslength_mm")); north_glass_buffer1s.setglassheightmm(rs.getDouble("glassheight_mm")); north_glass_buffer1s.setitemtype(rs.getString("itemtype")); north_glass_buffer1s.setslotnumber(rs.getString("slotnumber")); north_glass_buffer1s.setdatemodified(rs.getString("datemodified")); north_glass_buffer1s.setdatecreated(rs.getString("datecreated")); north_glass_buffer1s.setFrameBarcode(rs.getString("FrameBarcode")); glass.add(north_glass_buffer1s); } conn.close(); return glass; } catch (Exception e) { // TODO: handle exception e.printStackTrace(); return null; } } // 根据铝框id查询l铝框是否翻转 public String SelectFlipByFrameBarcode(String frameBarcode) throws SQLException { try { Connection conn = getConn(); // north_glass_buffer1 glass=new north_glass_buffer1(); String flip = ""; String sql1 = "select * from north_glass_buffer1_frames where Barcode=? limit 1"; ps = conn.prepareStatement(sql1); ps.setString(1, frameBarcode); ResultSet rs = ps.executeQuery(); while (rs.next()) { flip = rs.getString("Flip"); } conn.close(); return flip; } catch (Exception e) { // TODO: handle exception e.printStackTrace(); return null; } } // 根据铝框id查询是否铝框摆放 public String SelectPositionByFrameBarcode(String frameBarcode) throws SQLException { Connection conn = getConn(); // north_glass_buffer1 glass=new north_glass_buffer1(); String position=""; String sql1 = "select * from north_glass_buffer1_frames where Barcode=? limit 1"; ps = conn.prepareStatement(sql1); ps.setString(1, frameBarcode); ResultSet rs= ps.executeQuery(); while (rs.next()) { position=rs.getString("flip"); } conn.close(); return position; } try { Connection conn = getConn(); // north_glass_buffer1 glass=new north_glass_buffer1(); String position = ""; String sql1 = "select * from north_glass_buffer1_frames where Barcode=? limit 1"; ps = conn.prepareStatement(sql1); ps.setString(1, frameBarcode); ResultSet rs = ps.executeQuery(); while (rs.next()) { position = rs.getString("flip"); } conn.close(); return position; } catch (Exception e) { // TODO: handle exception e.printStackTrace(); return null; } //根据铝框id查询铝框宽 } // 根据铝框id查询铝框宽 public String SelectFrameLengthByFrameBarcode(String frameBarcode) throws SQLException { Connection conn = getConn(); // north_glass_buffer1 glass=new north_glass_buffer1(); String position=""; String sql1 = "select * from north_glass_buffer1_frames where Barcode=? limit 1"; ps = conn.prepareStatement(sql1); ps.setString(1, frameBarcode); ResultSet rs= ps.executeQuery(); while (rs.next()) { position=rs.getString("framelength"); } conn.close(); return position; } try { Connection conn = getConn(); // north_glass_buffer1 glass=new north_glass_buffer1(); String position = ""; String sql1 = "select * from north_glass_buffer1_frames where Barcode=? limit 1"; ps = conn.prepareStatement(sql1); ps.setString(1, frameBarcode); ResultSet rs = ps.executeQuery(); while (rs.next()) { position = rs.getString("framelength"); } conn.close(); return position; } catch (Exception e) { // TODO: handle exception e.printStackTrace(); return null; } //根据铝框id查询铝框高 } // 根据铝框id查询铝框高 public String SelectFrameHeightByFrameBarcode(String frameBarcode) throws SQLException { Connection conn = getConn(); // north_glass_buffer1 glass=new north_glass_buffer1(); String position=""; String sql1 = "select * from north_glass_buffer1_frames where Barcode=? limit 1"; ps = conn.prepareStatement(sql1); ps.setString(1, frameBarcode); ResultSet rs= ps.executeQuery(); while (rs.next()) { position=rs.getString("frameheight"); } conn.close(); return position; } try { Connection conn = getConn(); // north_glass_buffer1 glass=new north_glass_buffer1(); String position = ""; String sql1 = "select * from north_glass_buffer1_frames where Barcode=? limit 1"; ps = conn.prepareStatement(sql1); ps.setString(1, frameBarcode); ResultSet rs = ps.executeQuery(); while (rs.next()) { position = rs.getString("frameheight"); } conn.close(); return position; } catch (Exception e) { // TODO: handle exception e.printStackTrace(); return null; } } /** * 1. 加载驱动 * 2. 获取连接 conn * 2. 获取连接 conn * 3. 创建语句 ps * 4. 执行语句 rs * 5. 处理结果 * 6. 回收资源 * * 实现CRUD * 更新: * 1增加 * 2删除 * 3修改 * 查询: * 1. 查一个,一个对象 * 2. 查一组,做成一个对象列表,查全部 * 更新: * 1增加 * 2删除 * 3修改 * 查询: * 1. 查一个,一个对象 * 2. 查一组,做成一个对象列表,查全部 */ public static Connection getConn() throws SQLException { Connection conn = null; conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/canadames?serverTimezone=GMT%2B8&characterEncoding=utf-8", "root", "beibo.123/"); // conn = DriverManager.getConnection("jdbc:mysql://192.168.102.9:3306/production?serverTimezone=GMT%2B8&characterEncoding=utf-8", "northglass", "n0rthgla55"); return conn; try { Connection conn = null; // conn = // DriverManager.getConnection("jdbc:mysql://localhost:3306/canadames?serverTimezone=GMT%2B8&characterEncoding=utf-8", // "root", "beibo.123/"); conn = DriverManager.getConnection( "jdbc:mysql://192.168.102.9:3306/production?serverTimezone=GMT%2B8&characterEncoding=utf-8&useSSL=false", "northglass", "n0rthgla55"); return conn; } catch (Exception e) { // TODO: handle exception e.printStackTrace(); return null; } } static { @@ -298,9 +456,5 @@ e.printStackTrace(); } } } springboot-vue3/src/main/java/com/example/springboot/service/SpianService.java
@@ -15,6 +15,7 @@ import com.example.springboot.component.S7control; import com.example.springboot.entity.StorageCage; import com.example.springboot.entity.north_glass_buffer1; import com.example.springboot.mapper.HomeMapper; import com.example.springboot.mapper.SpianMapper; import com.google.common.primitives.Bytes; @@ -22,6 +23,8 @@ public class SpianService { @Autowired private SpianMapper spianMapper; @Autowired private HomeMapper homeMapper; public static List<String> result=new ArrayList<String>(); // @GetMapping("/all") public Short selectAll(north_glass_buffer1 glasslist) { @@ -195,7 +198,7 @@ int cages; int cells; double glasswidth = cageout.getGlassWidth(); // 判断玻璃内外片 if (tier == 2) { int state = spianMapper.selectGlassState(cage, cell);// 获取格子数量 @@ -410,14 +413,95 @@ spianMapper.UpdateCageOver(glassid.toString(), 0);// 更改笼子表出片状态 spianMapper.UpdateCageadd(glassid.toString(), 1);// 更改笼子表进片状态 String barcode = spianMapper.SelectBarcode(glassid.toString());// 获取该玻璃的铝框id spianMapper.UpdateAddQueue(glassid.toString());// 把进片的玻璃更新到出片队列中 // if (barcode != null) { // int barcodeState = spianMapper.SelectOverState(barcode);// 获取该铝框的状态 // if (barcodeState == 0) {// 当该铝框所有的玻璃都是完成状态时删除在出片队列的数据 // spianMapper.DeleteQueue(barcode); // } // } //spianMapper.UpdateAddQueue(glassid.toString());// 把进片的玻璃更新到出片队列中 } public Short selectAlls(north_glass_buffer1 glasslist) { try { int cage1 = 0; int cells; int ids; int prcid; int tiers; int prctier; double width; double minwidth = 0; double widths; // north_glass_buffer1 glasslist = spianMapper.selectGlass(glassid); // 获取玻璃参数 // 如果没有此id时 if (glasslist == null) { return (300); } //判断是否存在笼子里 short result = homeMapper.SelectStorageByGlassId(glasslist.getbarcode()); if (result > 0) { return (500); } if(glasslist.getglasslengthmm()>glasslist.getglassheightmm()) { widths= glasslist.getglasslengthmm(); }else{ widths= glasslist.getglassheightmm(); } // Map result=new HashMap(); String orderids = glasslist.getordernumber(); String FrameBarcode = glasslist.getFrameBarcode(); String glassid = glasslist.getbarcode(); // String orderid="A001"; // 获取铝框相关度最高的笼子排序 List<StorageCage> storageCage = spianMapper.selectAllFbarcode(FrameBarcode, widths, 400); // 判断铝框指定空格是否需要间隔空间 if (storageCage.size() == 0) { storageCage = spianMapper.selectAll(orderids, FrameBarcode); } if (storageCage == null) { return (400); } for (StorageCage storageCage2 : storageCage) { // 保存订单优先顺序笼子号 cage1 = storageCage2.getCage(); // 判断该笼子号相邻最大的空格数 StorageCage cages = spianMapper.selectCage(cage1); // 如果相邻笼子没有空格,或者有正在执行的出片任务时返回400 if (cages == null) { return (400); } StorageCage cages1; // 判断是否是第二片需要加间隔物 prctier = spianMapper.selectsum(cage1, storageCage2.getCell());// 传给prc的格子内玻璃数 if (prctier > 0) { cages1 = spianMapper.selectCage1(cage1, storageCage2.getCell(), widths + 400); } else { cages1 = spianMapper.selectCage1(cage1, storageCage2.getCell(), widths); } // 判断选中笼子是否有合适宽度空格 // 有合适空格时进片 if (cages1 != null && cages.getCell() >= 1 && storageCage2.getDisabled() == 0) { return (0); } } return (400); } catch (Exception e) { e.printStackTrace(); return (500); // TODO: handle exception } } } springboot-vue3/src/main/java/com/example/springboot/service/StorageCageService.java
@@ -18,6 +18,8 @@ import com.example.springboot.entity.north_glass_buffer1; import com.example.springboot.mapper.HomeMapper; import lombok.extern.slf4j.Slf4j; @Slf4j @Service public class StorageCageService { @Autowired @@ -57,6 +59,7 @@ ClearGlassId("DB101.10.3"); outSliceServive.StopTask(storageTask.getGlassId(), types); } log.info("stopfeedid:"+storageTask.getGlassId()+"D02id:"+D02glassid+"devicestate:"+DeviceList.get(1)); if (storageTask.getGlassId().equals(D02glassid) && DeviceList.get(1) == 0) { ClearGlassId("DB101.9.3"); outSliceServive.StopTask(storageTask.getGlassId(), types); @@ -195,7 +198,7 @@ Short zhi = 200; short result = homeMapper.SelectStorageByGlassId(queue.getglassId()); if (result > 0) { map.put("message", "300"); map.put("message", "500"); } else { if (id == 1) { // 调用伍存储过程 @@ -213,4 +216,29 @@ return Result.success(map); } public Short InsertQueueGlassIds(Short id, Queue queue) throws SQLException { Map<String, Object> map = new HashMap<>(); Short zhi = 0; short result = homeMapper.SelectStorageByGlassId(queue.getglassId()); if (result > 0) { zhi=500; map.put("message", "500"); } else { if (id == 1) { // 调用伍存储过程 north_glass_buffer1 north_glass_buffer1 = jdbcConnections.SelectGlassByGlassIdOrderIdFrameId(queue.getglassId(), "", ""); zhi = spianService.selectAll(north_glass_buffer1); if (zhi == 200) { homeMapper.InsertQueueGlassId(queue, id); } } map.put("message", zhi); } if (zhi != 200) { Plchome.FeedState = true; } return zhi; } }