Merge branch 'master' of http://10.153.19.25:10101/r/CanadaMes
# Conflicts:
# springboot-vue3/src/main/java/com/example/springboot/mapper/SpianMapper.java
# springboot-vue3/src/main/java/com/example/springboot/service/SpianService.java
New file |
| | |
| | | { |
| | | "content": [ |
| | | { |
| | | "name": "D01 VFD error", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "3", |
| | | "page": "1" |
| | | }, |
| | | { |
| | | "name": "D02 VFD error", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "3", |
| | | "page": "1" |
| | | }, |
| | | { |
| | | "name": "D03 VFD error", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "3", |
| | | "page": "1" |
| | | }, |
| | | { |
| | | "name": "D04 VFD error", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "3", |
| | | "page": "1" |
| | | }, |
| | | { |
| | | "name": "D05 VFD error", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "3", |
| | | "page": "1" |
| | | }, |
| | | { |
| | | "name": "D06 VFD error", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "3", |
| | | "page": "1" |
| | | }, |
| | | { |
| | | "name": "B01 VFD error", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "3", |
| | | "page": "1" |
| | | }, |
| | | { |
| | | "name": "B02 VFD error", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "3", |
| | | "page": "1" |
| | | }, |
| | | { |
| | | "name": "A01 VFD error", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "3", |
| | | "page": "1" |
| | | }, |
| | | { |
| | | "name": "A02 VFD error", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "3", |
| | | "page": "1" |
| | | }, |
| | | { |
| | | "name": "A01 servo turn error", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "3", |
| | | "page": "1" |
| | | }, |
| | | { |
| | | "name": "A02 servo turn error", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "3", |
| | | "page": "1" |
| | | }, |
| | | { |
| | | "name": "A01 servo travel error", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "3", |
| | | "page": "1" |
| | | }, |
| | | { |
| | | "name": "A02 servo travel error", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "3", |
| | | "page": "1" |
| | | }, |
| | | { |
| | | "name": "B01 servo travel error", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "3", |
| | | "page": "1" |
| | | }, |
| | | { |
| | | "name": "B02 servo travel error", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "3", |
| | | "page": "1" |
| | | }, |
| | | { |
| | | "name": "D01 DEC error", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "3", |
| | | "page": "1" |
| | | }, |
| | | { |
| | | "name": "D01 pos error", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "3", |
| | | "page": "1" |
| | | }, |
| | | { |
| | | "name": "D02 DEC error", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "3", |
| | | "page": "1" |
| | | }, |
| | | { |
| | | "name": "D02 pos error", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "3", |
| | | "page": "1" |
| | | }, |
| | | { |
| | | "name": "D03 DEC error", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "3", |
| | | "page": "1" |
| | | }, |
| | | { |
| | | "name": "D03 pos error", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "3", |
| | | "page": "1" |
| | | }, |
| | | { |
| | | "name": "D04 DEC error", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "3", |
| | | "page": "1" |
| | | }, |
| | | { |
| | | "name": "D04 pos error", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "3", |
| | | "page": "1" |
| | | }, |
| | | { |
| | | "name": "D05 DEC error", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "3", |
| | | "page": "1" |
| | | }, |
| | | { |
| | | "name": "D05 pos error", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "3", |
| | | "page": "1" |
| | | }, |
| | | { |
| | | "name": "D06 DEC error", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "3", |
| | | "page": "1" |
| | | }, |
| | | { |
| | | "name": "D06 pos error", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "3", |
| | | "page": "1" |
| | | }, |
| | | { |
| | | "name": "A01 DEC error", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "3", |
| | | "page": "1" |
| | | }, |
| | | { |
| | | "name": "A01 pos error", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "3", |
| | | "page": "1" |
| | | }, |
| | | { |
| | | "name": "A02 DEC error", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "3", |
| | | "page": "1" |
| | | }, |
| | | { |
| | | "name": "A02 pos error", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "3", |
| | | "page": "1" |
| | | }, |
| | | { |
| | | "name": "B01 IN DEC error", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "3", |
| | | "page": "1" |
| | | }, |
| | | { |
| | | "name": "B01 IN pos error", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "3", |
| | | "page": "1" |
| | | }, |
| | | { |
| | | "name": "B01 OUT DEC error", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "3", |
| | | "page": "1" |
| | | }, |
| | | { |
| | | "name": "B01 OUT pos error", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "3", |
| | | "page": "1" |
| | | }, |
| | | { |
| | | "name": "B02 IN DEC error", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "3", |
| | | "page": "1" |
| | | }, |
| | | { |
| | | "name": "B02 IN pos error", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "3", |
| | | "page": "1" |
| | | }, |
| | | { |
| | | "name": "B02 OUT DEC error", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "3", |
| | | "page": "1" |
| | | }, |
| | | { |
| | | "name": "B02 OUT pos error", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "3", |
| | | "page": "1" |
| | | }, |
| | | { |
| | | "name": "D01 Scan glass exceeding limit", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "3", |
| | | "page": "1" |
| | | }, |
| | | { |
| | | "name": "emergency stop alarm", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "3", |
| | | "page": "1" |
| | | }, |
| | | { |
| | | "name": "More glass than known", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "3", |
| | | "page": "1" |
| | | }, |
| | | { |
| | | "name": "less glass than known", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "3", |
| | | "page": "1" |
| | | }, |
| | | { |
| | | "name": "D01 conveyor timeout alarm", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "3", |
| | | "page": "1" |
| | | }, |
| | | { |
| | | "name": "D02 conveyor timeout alarm", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "3", |
| | | "page": "1" |
| | | }, |
| | | { |
| | | "name": "D03 conveyor timeout alarm", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "3", |
| | | "page": "1" |
| | | }, |
| | | { |
| | | "name": "D04 conveyor timeout alarm", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "3", |
| | | "page": "1" |
| | | }, |
| | | { |
| | | "name": "D05 conveyor timeout alarm", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "3", |
| | | "page": "1" |
| | | }, |
| | | { |
| | | "name": "D06 conveyor timeout alarm", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "3", |
| | | "page": "1" |
| | | }, |
| | | { |
| | | "name": "A01 conveyor timeout alarm", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "3", |
| | | "page": "1" |
| | | }, |
| | | { |
| | | "name": "A02 conveyor timeout alarm", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "3", |
| | | "page": "1" |
| | | }, |
| | | { |
| | | "name": "B01 conveyor timeout alarm", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "3", |
| | | "page": "1" |
| | | }, |
| | | { |
| | | "name": "B02 conveyor timeout alarm", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "3", |
| | | "page": "1" |
| | | }, |
| | | { |
| | | "name": "A01 conveyor Left safety alarm", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "3", |
| | | "page": "1" |
| | | }, |
| | | { |
| | | "name": "A01 conveyor right safety alarm", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "3", |
| | | "page": "1" |
| | | }, |
| | | { |
| | | "name": "A02 conveyor Left safety alarm", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "3", |
| | | "page": "1" |
| | | }, |
| | | { |
| | | "name": "A02 conveyor right safety alarm", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "3", |
| | | "page": "1" |
| | | }, |
| | | { |
| | | "name": "1# buffer safety alarm", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "3", |
| | | "page": "1" |
| | | }, |
| | | { |
| | | "name": "2# buffer safety alarm", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "3", |
| | | "page": "1" |
| | | }, |
| | | { |
| | | "name": "3# buffer safety alarm", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "3", |
| | | "page": "1" |
| | | }, |
| | | { |
| | | "name": "4# buffer safety alarm", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "3", |
| | | "page": "1" |
| | | }, |
| | | { |
| | | "name": "A01.SR right in pos error", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "3", |
| | | "page": "1" |
| | | }, |
| | | { |
| | | "name": "A02.SR left in pos error", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "3", |
| | | "page": "1" |
| | | }, |
| | | { |
| | | "name": "B01.SR left in pos error", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "3", |
| | | "page": "1" |
| | | }, |
| | | { |
| | | "name": "B01.SR left dec error", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "3", |
| | | "page": "1" |
| | | }, |
| | | { |
| | | "name": "B01.SR right dec error", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "3", |
| | | "page": "1" |
| | | }, |
| | | { |
| | | "name": "B01.SR right in pos error", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "3", |
| | | "page": "1" |
| | | }, |
| | | { |
| | | "name": "B02.SR left in pos error", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "3", |
| | | "page": "1" |
| | | }, |
| | | { |
| | | "name": "B02.SR left dec error", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "3", |
| | | "page": "1" |
| | | }, |
| | | { |
| | | "name": "B02.SR right dec error", |
| | | "value": "1", |
| | | "state": "1", |
| | | "type": "3", |
| | | "page": "1" |
| | | } |
| | | ], |
| | | "address": [ |
| | | { |
| | | "name": "DB104.0.0", |
| | | "count": 71 |
| | | } |
| | | ] |
| | | } |
New file |
| | |
| | | @echo off
|
| | | echo Starting frontend development server...
|
| | | cd /d %~dp0 // 切换到当前批处理脚本所在的目录
|
| | | cd ..\CanadaMes-ui // 假设CanadaMes-ui在与批处理脚本相同的目录下
|
| | | npm run build |
| | |
| | | })
|
| | | }
|
| | |
|
| | | export function AddOutSliceS(data) {
|
| | | export function AddOutSliceS(FrameNo) {
|
| | | return request({
|
| | | url: '/home/AddOutSliceS',
|
| | | url: '/home/AddOutSliceS?FrameNo='+FrameNo,
|
| | | method: 'post',
|
| | | data
|
| | | data:""
|
| | | })
|
| | | }
|
| | |
|
| | | export function isAllowQueues(isAllowQueue,data) {
|
| | | return request({
|
| | | url: '/home/isAllowQueues?isAllowQueue=' + isAllowQueue,
|
| | | method: 'post',
|
| | | data
|
| | | })
|
| | | }
|
| | |
|
| | | export function isAllowReorderings(isAllowReordering,data) {
|
| | | return request({
|
| | | url: '/home/isAllowReorderings?isAllowReordering=' + isAllowReordering,
|
| | | method: 'post',
|
| | | data
|
| | | })
|
| | |
| | | })
|
| | | }
|
| | |
|
| | | export function FrameStateUpdate(frameno,framestate) {
|
| | | return request({
|
| | | url: '/home/FrameStateUpdate?frameno=' + frameno+'&framestate='+framestate,
|
| | | method: 'post',
|
| | | data:""
|
| | | })
|
| | | }
|
| | |
| | | "unit": "°", |
| | | "value": "", |
| | | "min": 0, |
| | | "max": 100 |
| | | "max": 99 |
| | | }, |
| | | { |
| | | "name": "A01行走低速角度", |
| | |
| | | "type": "0", |
| | | "value": "", |
| | | "min": 0, |
| | | "max": 100 |
| | | "max": 99 |
| | | }, |
| | | { |
| | | "name": "A01输送接片角度", |
| | |
| | | "type": "0", |
| | | "value": "", |
| | | "min": 0, |
| | | "max": 100 |
| | | "max": 99 |
| | | }, |
| | | { |
| | | "name": "A01笼子角度", |
| | |
| | | "type": "0", |
| | | "value": "", |
| | | "min": 0, |
| | | "max": 100 |
| | | "max": 99 |
| | | } |
| | | ], |
| | | [ |
| | |
| | | "count": 3, |
| | | "value": "", |
| | | "min": 0, |
| | | "max": 100 |
| | | "max": 99 |
| | | }, |
| | | { |
| | | "name": "A02行走低速角度", |
| | |
| | | "type": "0", |
| | | "value": "", |
| | | "min": 0, |
| | | "max": 100 |
| | | "max": 99 |
| | | }, |
| | | { |
| | | "name": "A02输送接片角度", |
| | |
| | | "type": "0", |
| | | "value": "", |
| | | "min": 0, |
| | | "max": 100 |
| | | "max": 99 |
| | | }, |
| | | { |
| | | "name": "A02笼子角度", |
| | |
| | | "type": "0", |
| | | "value": "", |
| | | "min": 0, |
| | | "max": 100 |
| | | "max": 99 |
| | | } |
| | | ], |
| | | [ |
| | |
| | | "count": 3, |
| | | "value": "", |
| | | "min": 0, |
| | | "max": 100 |
| | | "max": 3000 |
| | | } |
| | | ], |
| | | [ |
| | |
| | | "type": "0", |
| | | "value": "", |
| | | "min": 0, |
| | | "max": 100 |
| | | "max": 2000 |
| | | } |
| | | ], |
| | | [ |
| | |
| | | "type": "0", |
| | | "value": "", |
| | | "min": 0, |
| | | "max": 100 |
| | | "max": 99 |
| | | } |
| | | ], |
| | | [ |
| | |
| | | "count":3, |
| | | "value":0, |
| | | "min": 0, |
| | | "max": 1000 |
| | | "max": 60 |
| | | }, |
| | | { |
| | | "name": "高速线速度", |
| | |
| | | "unit": "m/min", |
| | | "value":0, |
| | | "min": 0, |
| | | "max": 100 |
| | | "max": 60 |
| | | }, |
| | | { |
| | | "name": "低速线速度", |
| | |
| | | "unit": "m/min", |
| | | "value":0, |
| | | "min": 0, |
| | | "max": 100 |
| | | "max": 60 |
| | | }, |
| | | { |
| | | "name": "手动速度", |
| | |
| | | "unit": "m/min", |
| | | "value":0, |
| | | "min": 0, |
| | | "max": 100 |
| | | "max": 60 |
| | | } |
| | | |
| | | |
| | |
| | | "count":3, |
| | | "value":0, |
| | | "min": 0, |
| | | "max": 100 |
| | | "max": 60 |
| | | }, |
| | | { |
| | | "name": "高速线速度", |
| | |
| | | "type": "0", |
| | | "value":0, |
| | | "min": 0, |
| | | "max": 100 |
| | | "max": 60 |
| | | }, |
| | | { |
| | | "name": "低速线速度", |
| | |
| | | "type": "0", |
| | | "value":0, |
| | | "min": 0, |
| | | "max": 100 |
| | | "max": 60 |
| | | }, |
| | | { |
| | | "name": "手动速度", |
| | |
| | | "type": "0", |
| | | "value":0, |
| | | "min": 0, |
| | | "max": 100 |
| | | "max": 60 |
| | | } |
| | | |
| | | |
| | |
| | | "count":3, |
| | | "value":0, |
| | | "min": 0, |
| | | "max": 100 |
| | | "max": 60 |
| | | }, |
| | | { |
| | | "name": "高速线速度", |
| | |
| | | "unit": "m/min", |
| | | "value":0, |
| | | "min": 0, |
| | | "max": 100 |
| | | "max": 60 |
| | | }, |
| | | { |
| | | "name": "低速线速度", |
| | |
| | | "unit": "m/min", |
| | | "value":0, |
| | | "min": 0, |
| | | "max": 100 |
| | | "max": 60 |
| | | }, |
| | | { |
| | | "name": "手动速度", |
| | |
| | | "unit": "m/min", |
| | | "value":0, |
| | | "min": 0, |
| | | "max": 100 |
| | | "max": 60 |
| | | } |
| | | |
| | | |
| | |
| | | "read": 33, |
| | | "sending": 0, |
| | | "type": "0", |
| | | "unit": "mm/S", |
| | | "unit": "°/S", |
| | | |
| | | "count":3, |
| | | "value":0, |
| | | "min": 0, |
| | | "max": 100 |
| | | "max": 99 |
| | | } |
| | | |
| | | |
| | |
| | | "type": "0", |
| | | "value":0, |
| | | "min": 0, |
| | | "max": 100 |
| | | "max": 2000 |
| | | } |
| | | |
| | | |
| | |
| | | "type": "0",
|
| | | "address": "DB100.0",
|
| | | "count": 3,
|
| | | "state": 1,
|
| | | "min":106,
|
| | | "max":210
|
| | | "state": 1
|
| | | |
| | | },
|
| | | {
|
| | | "name": "B02定位速度",
|
| | |
| | | "unit": "mm", |
| | | "value":"0", |
| | | "min": 0, |
| | | "max": 100 |
| | | "max": 75 |
| | | |
| | | }], |
| | | [{ |
| | |
| | | "unit": "mm", |
| | | "value":"0", |
| | | "min":0, |
| | | "max":100 |
| | | "max":22000 |
| | | |
| | | }], |
| | | [{ |
| | |
| | | "address":"DB100.48", |
| | | "count":10, |
| | | "min":0, |
| | | "max":100 |
| | | "max":22000 |
| | | }, |
| | | { |
| | | "name": "22#格地址", |
| | |
| | | "type": "0" , |
| | | "value":"0", |
| | | "min":0, |
| | | "max":100 |
| | | "max":22000 |
| | | }, |
| | | { |
| | | "name": "43#格地址", |
| | |
| | | "type": "0" , |
| | | "value":"0", |
| | | "min":0, |
| | | "max":100 |
| | | "max":22000 |
| | | }, |
| | | { |
| | | "name": "64#格地址", |
| | |
| | | "type": "0" , |
| | | "value":"0", |
| | | "min":0, |
| | | "max":100 |
| | | "max":22000 |
| | | }, |
| | | { |
| | | "name": "85#格地址", |
| | |
| | | "type": "0" , |
| | | "value":"0", |
| | | "min":0, |
| | | "max":100 |
| | | "max":22000 |
| | | }, |
| | | { |
| | | "name": "106#格地址", |
| | |
| | | "type": "0" , |
| | | "value":"0", |
| | | "min":0, |
| | | "max":100 |
| | | "max":22000 |
| | | }, |
| | | { |
| | | "name": "127#格地址", |
| | |
| | | "type": "0" , |
| | | "value":"0", |
| | | "min":0, |
| | | "max":100 |
| | | "max":22000 |
| | | }, |
| | | { |
| | | "name": "148#格地址", |
| | |
| | | "type": "0" , |
| | | "value":"0", |
| | | "min":0, |
| | | "max":100 |
| | | "max":22000 |
| | | }, |
| | | { |
| | | "name": "169#格地址", |
| | |
| | | "type": "0" , |
| | | "value":"0", |
| | | "min":0, |
| | | "max":100 |
| | | "max":22000 |
| | | }, |
| | | { |
| | | "name": "190#格地址", |
| | |
| | | "type": "0" , |
| | | "value":"0", |
| | | "min":0, |
| | | "max":100 |
| | | "max":22000 |
| | | } |
| | | |
| | | |
| | |
| | | "address":"DB100.68", |
| | | "count":10, |
| | | "min":0, |
| | | "max":100 |
| | | "max":22000 |
| | | }, |
| | | { |
| | | "name": "22#格地址", |
| | |
| | | "type": "0" , |
| | | "value":"0", |
| | | "min":0, |
| | | "max":100 |
| | | "max":22000 |
| | | }, |
| | | { |
| | | "name": "43#格地址", |
| | |
| | | "type": "0" , |
| | | "value":"0", |
| | | "min":0, |
| | | "max":100 |
| | | "max":22000 |
| | | }, |
| | | { |
| | | "name": "64#格地址", |
| | |
| | | "type": "0" , |
| | | "value":"0", |
| | | "min":0, |
| | | "max":100 |
| | | "max":22000 |
| | | }, |
| | | { |
| | | "name": "85#格地址", |
| | |
| | | "type": "0" , |
| | | "value":"0", |
| | | "min":0, |
| | | "max":100 |
| | | "max":22000 |
| | | }, |
| | | { |
| | | "name": "106#格地址", |
| | |
| | | "type": "0" , |
| | | "value":"0", |
| | | "min":0, |
| | | "max":100 |
| | | "max":22000 |
| | | }, |
| | | { |
| | | "name": "127#格地址", |
| | |
| | | "type": "0" , |
| | | "value":"0", |
| | | "min":0, |
| | | "max":100 |
| | | "max":22000 |
| | | }, |
| | | { |
| | | "name": "148#格地址", |
| | |
| | | "type": "0" , |
| | | "value":"0", |
| | | "min":0, |
| | | "max":100 |
| | | "max":22000 |
| | | }, |
| | | { |
| | | "name": "169#格地址", |
| | |
| | | "type": "0" , |
| | | "value":"0", |
| | | "min":0, |
| | | "max":100 |
| | | "max":22000 |
| | | }, |
| | | { |
| | | "name": "190#格地址", |
| | |
| | | "unit": "mm", |
| | | "value":"0", |
| | | "min":0, |
| | | "max":100 |
| | | "max":22000 |
| | | } |
| | | |
| | | |
| | |
| | | "count":3, |
| | | "value":"0", |
| | | "min":0, |
| | | "max":100 |
| | | "max":9999 |
| | | }, |
| | | { |
| | | "name": "22#格地址", |
| | |
| | | "type": "0", |
| | | "value":"0", |
| | | "min":0, |
| | | "max":100 |
| | | "max":9999 |
| | | }, |
| | | { |
| | | "name": "43#格地址", |
| | |
| | | "type": "0", |
| | | "value":"0", |
| | | "min":0, |
| | | "max":100 |
| | | "max":9999 |
| | | }, |
| | | { |
| | | "name": "64#格地址", |
| | |
| | | "type": "0", |
| | | "value":"0", |
| | | "min":0, |
| | | "max":100 |
| | | "max":9999 |
| | | }, |
| | | { |
| | | "name": "85#格地址", |
| | |
| | | "type": "0", |
| | | "value":"0", |
| | | "min":0, |
| | | "max":100 |
| | | "max":9999 |
| | | } |
| | | |
| | | |
| | |
| | | "type": "0", |
| | | "value":"0", |
| | | "min":0, |
| | | "max":100 |
| | | "max":9999 |
| | | }, |
| | | { |
| | | "name": "127#格地址", |
| | |
| | | "type": "0", |
| | | "value":"0", |
| | | "min":0, |
| | | "max":100 |
| | | "max":9999 |
| | | }, |
| | | { |
| | | "name": "148#格地址", |
| | |
| | | "type": "0", |
| | | "value":"0", |
| | | "min":0, |
| | | "max":100 |
| | | "max":9999 |
| | | }, |
| | | { |
| | | "name": "169#格地址", |
| | |
| | | "type": "0", |
| | | "value":"0", |
| | | "min":0, |
| | | "max":100 |
| | | "max":9999 |
| | | }, |
| | | { |
| | | "name": "190#格地址", |
| | |
| | | "type": "0", |
| | | "value":"0", |
| | | "min":0, |
| | | "max":100 |
| | | "max":9999 |
| | | } |
| | | |
| | | |
| | |
| | | "read": 33, |
| | | "sending": 0, |
| | | "type": "0", |
| | | "value":0, |
| | | "value":1, |
| | | "min":0, |
| | | "max":100 |
| | | |
| | |
| | | "read": 11, |
| | | "sending": 0, |
| | | "type": "0", |
| | | "value":0, |
| | | "min":0, |
| | | "value":1, |
| | | "min":1, |
| | | "max":100 |
| | | }, |
| | | { |
| | |
| | | "read": 22, |
| | | "sending": 0, |
| | | "type": "0", |
| | | "value":0, |
| | | "min":0, |
| | | "value":1, |
| | | "min":1, |
| | | "max":100 |
| | | }, |
| | | { |
| | |
| | | "read": 11, |
| | | "sending": 0, |
| | | "type": "0", |
| | | "value":0, |
| | | "value":1, |
| | | "min":0, |
| | | "max":100 |
| | | }, |
| | |
| | | "read": 22, |
| | | "sending": 0, |
| | | "type": "0", |
| | | "value":0, |
| | | "value":1, |
| | | "min":0, |
| | | "max":100 |
| | | }, |
| | |
| | | "read": 33, |
| | | "sending": 0, |
| | | "type": "0", |
| | | "value":0, |
| | | "value":1, |
| | | "min":0, |
| | | "max":100 |
| | | |
| | |
| | | { |
| | | "button": { |
| | | "name": "D01手动状态", |
| | | "value": 0, |
| | | "value": 0, |
| | | "value2": 0, |
| | | "address": "DB10.0" |
| | | }, |
| | | "type": "4" |
| | |
| | | { |
| | | "button": { |
| | | "name": "清除ID", |
| | | "value": 0, |
| | | "value": 0, |
| | | "value2": 0, |
| | | "address": "DB10.0" |
| | | }, |
| | | "type": "3" |
| | |
| | | "read": 33, |
| | | "sending": 0, |
| | | "type": "0", |
| | | "value": 0 |
| | | "value": 0, |
| | | "value2": 0 |
| | | } |
| | | ], |
| | | [ |
| | | { |
| | | "button": { |
| | | "name": "D02手动状态", |
| | | "value": 0, |
| | | "value": 0, |
| | | "value2": 0, |
| | | "address": "DB10.0" |
| | | }, |
| | | "type": "4" |
| | |
| | | { |
| | | "button": { |
| | | "name": "清除ID", |
| | | "value": 0, |
| | | "value": 0, |
| | | "value2": 0, |
| | | "address": "DB10.0" |
| | | }, |
| | | "type": "3" |
| | |
| | | "read": 33, |
| | | "sending": 0, |
| | | "type": "0", |
| | | "value": 0 |
| | | "value": 0, |
| | | "value2": 0 |
| | | } |
| | | ], |
| | | [ |
| | | { |
| | | "button": { |
| | | "name": "D03手动状态", |
| | | "value": 0, |
| | | "value": 0, |
| | | "value2": 0, |
| | | "address": "DB10.0" |
| | | }, |
| | | "type": "4" |
| | |
| | | { |
| | | "button": { |
| | | "name": "清除ID", |
| | | "value": 0, |
| | | "value": 0, |
| | | "value2": 0, |
| | | "address": "DB10.0" |
| | | }, |
| | | "type": "3" |
| | |
| | | "read": 33, |
| | | "sending": 0, |
| | | "type": "0", |
| | | "value": 0 |
| | | "value": 0, |
| | | "value2": 0 |
| | | } |
| | | ], |
| | | [ |
| | | { |
| | | "button": { |
| | | "name": "D04手动状态", |
| | | "value": 0, |
| | | "value": 0, |
| | | "value2": 0, |
| | | "address": "DB10.0" |
| | | }, |
| | | "type": "4" |
| | |
| | | { |
| | | "button": { |
| | | "name": "清除ID", |
| | | "value": 0, |
| | | "value": 0, |
| | | "value2": 0, |
| | | "address": "DB10.0" |
| | | }, |
| | | "type": "3" |
| | |
| | | "read": 33, |
| | | "sending": 0, |
| | | "type": "0", |
| | | "value": 0 |
| | | "value": 0, |
| | | "value2": 0 |
| | | } |
| | | ], |
| | | [ |
| | | { |
| | | "button": { |
| | | "name": "D05手动状态", |
| | | "value": 0, |
| | | "value": 0, |
| | | "value2": 0, |
| | | "address": "DB10.0" |
| | | }, |
| | | "type": "4" |
| | |
| | | { |
| | | "button": { |
| | | "name": "清除ID", |
| | | "value": 0, |
| | | "value": 0, |
| | | "value2": 0, |
| | | "address": "DB10.0" |
| | | }, |
| | | "type": "3" |
| | |
| | | "read": 33, |
| | | "sending": 0, |
| | | "type": "0", |
| | | "value": 0 |
| | | "value": 0, |
| | | "value2": 0 |
| | | } |
| | | ], |
| | | [ |
| | | { |
| | | "button": { |
| | | "name": "D06手动状态", |
| | | "value": 0, |
| | | "value": 0, |
| | | "value2": 0, |
| | | "address": "DB10.0" |
| | | }, |
| | | "type": "4" |
| | |
| | | { |
| | | "button": { |
| | | "name": "清除ID", |
| | | "value": 0, |
| | | "value": 0, |
| | | "value2": 0, |
| | | "address": "DB10.0" |
| | | }, |
| | | "type": "3" |
| | |
| | | "read": 33, |
| | | "sending": 0, |
| | | "type": "0", |
| | | "value": 0 |
| | | "value": 0, |
| | | "value2": 0 |
| | | } |
| | | ], |
| | | [ |
| | | { |
| | | "button": { |
| | | "name": "A01手动状态", |
| | | "value": 0, |
| | | "value": 0, |
| | | "value2": 0, |
| | | "address": "DB10.0" |
| | | }, |
| | | "type": "4" |
| | |
| | | { |
| | | "button": { |
| | | "name": "清除ID", |
| | | "value": 0, |
| | | "value": 0, |
| | | "value2": 0, |
| | | "address": "DB10.0" |
| | | }, |
| | | "type": "3" |
| | |
| | | "read": 33, |
| | | "sending": 0, |
| | | "type": "0", |
| | | "value": 0 |
| | | "value": 0, |
| | | "value2": 0 |
| | | }, |
| | | { |
| | | "name": "ID2", |
| | | "read": 33, |
| | | "sending": 0, |
| | | "type": "0", |
| | | "value": 0 |
| | | "value": 0, |
| | | "value2": 0 |
| | | } |
| | | |
| | | ], |
| | |
| | | { |
| | | "button": { |
| | | "name": "A02手动状态", |
| | | "value": 0, |
| | | "value": 0, |
| | | "value2": 0, |
| | | "address": "DB10.0" |
| | | }, |
| | | "type": "4" |
| | |
| | | { |
| | | "button": { |
| | | "name": "清除ID", |
| | | "value": 0, |
| | | "value": 0, |
| | | "value2": 0, |
| | | "address": "DB10.0" |
| | | }, |
| | | "type": "3" |
| | |
| | | "read": "ID28", |
| | | "sending": 0, |
| | | "type": "0", |
| | | "value": 0 |
| | | "value": 0, |
| | | "value2": 0 |
| | | } |
| | | ], |
| | | [ |
| | | { |
| | | "button": { |
| | | "name": "B01手动状态", |
| | | "value": 0 |
| | | "value": 0, |
| | | "value2": 0 |
| | | |
| | | }, |
| | | "type": "4" |
| | |
| | | { |
| | | "button": { |
| | | "name": "清除ID", |
| | | "value": 0 |
| | | "value": 0, |
| | | "value2": 0 |
| | | |
| | | }, |
| | | "type": "3" |
| | |
| | | "read": "ID29", |
| | | "sending": 0, |
| | | "type": "0", |
| | | "value": 0 |
| | | "value": 0, |
| | | "value2": 0 |
| | | } |
| | | ], |
| | | [ |
| | | { |
| | | "button": { |
| | | "name": "B02手动状态", |
| | | "value": 0, |
| | | "value": 0, |
| | | "value2": 0, |
| | | "address": "DB10.0" |
| | | }, |
| | | "type": "4" |
| | |
| | | { |
| | | "button": { |
| | | "name": "清除ID", |
| | | "value": 0 |
| | | "value": 0, |
| | | "value2": 0 |
| | | |
| | | }, |
| | | "type": "3" |
| | |
| | | "read": "ID210", |
| | | "sending": 0, |
| | | "type": "0", |
| | | "value": 0 |
| | | "value": 0, |
| | | "value2": 0 |
| | | } |
| | | ], |
| | | [ |
| | |
| | | "read": 0, |
| | | "sending": 0, |
| | | |
| | | "value": 0 |
| | | "value": 0, |
| | | "value2": 0 |
| | | }, |
| | | { |
| | | "name": "ID1", |
| | | "read": 66, |
| | | "sending": 0, |
| | | "type": "0", |
| | | "value": 0 |
| | | "value": 0, |
| | | "value2": 0 |
| | | } |
| | | ], |
| | | [ |
| | |
| | | "read": 0, |
| | | "sending": 0, |
| | | |
| | | "value": 0 |
| | | "value": 0, |
| | | "value2": 0 |
| | | }, |
| | | { |
| | | "name": "ID2", |
| | | "read": 666, |
| | | "sending": 0, |
| | | "type": "0", |
| | | "value": 0 |
| | | "value": 0, |
| | | "value2": 0 |
| | | } |
| | | ], |
| | | [ |
| | |
| | | "read": 333, |
| | | "sending": 0, |
| | | "type": "0", |
| | | "value": 0 |
| | | "value": 0, |
| | | "value2": 0 |
| | | }, |
| | | { |
| | | "name": "A02所在格子", |
| | | "read": 333, |
| | | "sending": 0, |
| | | "type": "0", |
| | | "value": 0 |
| | | "value": 0, |
| | | "value2": 0 |
| | | }, |
| | | { |
| | | "name": "B01所在格子", |
| | | "read": 333, |
| | | "sending": 0, |
| | | "type": "0", |
| | | "value": 0 |
| | | "value": 0, |
| | | "value2": 0 |
| | | }, |
| | | { |
| | | "name": "B02所在格子", |
| | | "read": 333, |
| | | "sending": 0, |
| | | "type": "0", |
| | | "value": 0 |
| | | "value": 0, |
| | | "value2": 0 |
| | | } |
| | | ] |
| | | , |
| | |
| | | "read": 666, |
| | | "sending": 0, |
| | | "type": "0", |
| | | "value": 0 |
| | | "value": 0, |
| | | "value2": 0 |
| | | } |
| | | |
| | | |
| | |
| | | "exit": "exit",
|
| | | "changePassword": "changePassword",
|
| | | "resetPassword": "resetPassword",
|
| | | "Old password":"Old password",
|
| | | "New password":"New password",
|
| | | "Confirm password":"Confirm password",
|
| | | "home": "Home",
|
| | | "role": "role",
|
| | | "langRoleManagement": "Role Management",
|
| | |
| | | "DataBase Connection failed":"DataBase Connection failed",
|
| | | "Distribute parameters":"Distribute parameters",
|
| | | "The glass size is not within the range":"The glass size is not within the range",
|
| | | "Increase":"Increase",
|
| | | "Add":"Add",
|
| | | "Enable":"Enable",
|
| | | "Disable":"Disable",
|
| | | "Usage":"Usage",
|
| | |
| | | "Frame No":"Frame No",
|
| | | "Glass information corresponding to aluminum frame":"Glass information corresponding to aluminum frame",
|
| | | "In the cage":"In the cage",
|
| | | "Flip":"Flip",
|
| | | "Flipped":"Flipped",
|
| | | "In the queue":"In the queue",
|
| | | "Normal":"Normal",
|
| | | "Entering":"Entering",
|
| | |
| | | "You do not have this permission":"You do not have this permission",
|
| | | "This glass is already in the Queue":"This glass is already in the Queue",
|
| | | "Complete":"Complete",
|
| | | "Allow":"Allow",
|
| | | "Not Allow":"Not Allow",
|
| | | "Completed":"Completed",
|
| | | "Waiting":"Waiting",
|
| | |
| | | "Glass State":"Glass State",
|
| | | "Absent":"Absent",
|
| | | "Approximately resettable time":"Approximately resettable time",
|
| | | "EXTERIQR OUT AND BYPASS TO THE LEFT":"EXTERIQR OUT AND BYPASS TO THE LEFT",
|
| | | "EXTERIQR OUT AND BYPASS TO THE RIGHT":"EXTERIQR OUT AND BYPASS TO THE RIGHT",
|
| | | "Complete Task":"Complete Task",
|
| | | "Outed":"Outed",
|
| | | "Queue State":"Queue State",
|
| | | "Sorting State":"Sorting State",
|
| | | "Confirm State":"Confirm State",
|
| | | "ServoManualone": {
|
| | | "A01 所在格子": "A01 Current Grid",
|
| | | "数量": "Quantity",
|
| | |
| | | "D01手动状态": "D01 Manual Status",
|
| | | "清除ID": "Clear ID",
|
| | | "ID": "ID",
|
| | | "A02ID": "ID",
|
| | | "B01ID": "ID",
|
| | | "B02ID": "ID",
|
| | | "A02ID": "A02ID",
|
| | | "B01ID": "B01ID",
|
| | | "B02ID": "B02ID",
|
| | | "D02手动状态": "D02 Manual Status",
|
| | | "D03手动状态": "D03 Manual Status",
|
| | | "D04手动状态": "D04 Manual Status",
|
| | |
| | | "DataBase Connection failed": "数据库连接失败",
|
| | | "Distribute parameters": "下发参数",
|
| | | "The glass size is not within the range": "玻璃尺寸不在范围内",
|
| | | "Increase": "添加",
|
| | | "Add": "添加",
|
| | | "Enable": "启用",
|
| | | "Disable": "禁用",
|
| | | "Usage": "使用率",
|
| | |
| | | "Frame No":"铝框id",
|
| | | "Glass information corresponding to aluminum frame":"铝框对应的玻璃信息",
|
| | | "In the cage":"在笼内",
|
| | | "Flip":"翻转",
|
| | | "Flipped":"翻转",
|
| | | "In the queue":"在队列",
|
| | | "Enter the Frame No":"请输入铝框id",
|
| | | "Manually Infeed Glass":"手动进片",
|
| | |
| | | "This glass is already in the Queue":"此玻璃已在出片队列中",
|
| | | "Complete":"完成",
|
| | | "Not Allow":"不允许",
|
| | | "Allow":"允许",
|
| | | "Completed":"已完成",
|
| | | "Waiting":"等待中",
|
| | | "Deleted":"已删除",
|
| | | "Glass State":"玻璃状态",
|
| | | "Absent":"不存在",
|
| | | "Approximately resettable time":"可复位大概时间",
|
| | | "EXTERIQR OUT AND BYPASS TO THE LEFT":"EXTERIQR OUT AND BYPASS TO THE LEFT",
|
| | | "EXTERIQR OUT AND BYPASS TO THE RIGHT":"EXTERIQR OUT AND BYPASS TO THE RIGHT",
|
| | | "Complete Task":"完成任务",
|
| | | "Outed":"已出笼",
|
| | | "Queue State":"队列状态",
|
| | | "Sorting State":"排序状态",
|
| | | "Confirm State":"确认状态",
|
| | | "langparameter": {
|
| | | "conveyor Velocity(Auto FAST)": "D01-D06 皮带输送自动快速",
|
| | | "conveyor Velocity(Auto SLOW)": "D01-D06 皮带输送自动慢速",
|
| | |
| | | "D04.State": "D04.状态",
|
| | | "D05.State": "D05.状态",
|
| | | "D06.State": "D06.状态"
|
| | | }
|
| | | },
|
| | | "Automatic State":"自动状态",
|
| | | "ManualJog":"开关控制",
|
| | | "ManualonePosition":"手动定位",
|
| | | "Servomanualone":"半自动",
|
| | | "Address parameter settings":"地址参数设置",
|
| | | "Speed parameter settings":"速度参数设置"
|
| | |
|
| | | } |
| | |
| | | <template> |
| | | <el-container style="flex: 1;height:100%;"> |
| | | <div style="width: 200px;background-color: #222f3e" :style="{width: isCollapse?'70px':'250px'}"> |
| | | <el-aside :width="isCollapse?'70px':'250px'"> |
| | | <div style="width: 200px;background-color: #222f3e" :style="{ width: isCollapse ? '70px' : '250px' }"> |
| | | <el-aside :width="isCollapse ? '70px' : '250px'"> |
| | | <el-col :gutter="20"> |
| | | <el-row :span="4"> |
| | | <div class="logo" @click="goToHome"> |
| | |
| | | </div> |
| | | </el-row> |
| | | <el-row :span="20"> |
| | | <el-menu :default-active="activePath" class="el-menu-vertical-demo" |
| | | background-color="#222f3e" text-color="#fff" active-text-color="#ffd04b" |
| | | :collapse="isCollapse" :unique-opened="true" |
| | | :collapse-transition="false" :router="true"> |
| | | <!-- <el-menu-item index="/" @click="youhua"> |
| | | <el-menu :default-active="activePath" class="el-menu-vertical-demo" background-color="#222f3e" |
| | | text-color="#fff" active-text-color="#ffd04b" :collapse="isCollapse" :unique-opened="true" |
| | | :collapse-transition="false" :router="true"> |
| | | <!-- <el-menu-item index="/" @click="youhua"> |
| | | <template slot="title"> |
| | | |
| | | <i class="el-icon-menu"></i> |
| | |
| | | <span>{{ item.name }}</span> |
| | | </template> |
| | | <!--二级菜单--> |
| | | |
| | | <el-menu-item :index="'/'+menu.router" |
| | | v-for="menu in item.menuLists" :key="menu.id" |
| | | > |
| | | |
| | | <el-menu-item :index="'/' + menu.router" v-for="menu in item.menuLists" :key="menu.id"> |
| | | <template slot="title"> |
| | | <!--图标--> |
| | | <i :class="menu.icon"></i> |
| | |
| | | </div> |
| | | <el-container> |
| | | <el-header class="header-container"> |
| | | |
| | | <el-menu :default-active="activePath1" class="el-menu-demo" mode="horizontal" |
| | | background-color="#576574" text-color="#fff" active-text-color="#ffd04b"> |
| | | |
| | | <el-menu :default-active="activePath1" class="el-menu-demo" mode="horizontal" background-color="#576574" |
| | | text-color="#fff" active-text-color="#ffd04b"> |
| | | <div class="header-left"> |
| | | <el-button :icon="isCollapse ? 'el-icon-s-unfold' : 'el-icon-s-fold'" @click="toggleCollapse" style="height:30px;"></el-button> |
| | | <el-button :icon="isCollapse ? 'el-icon-s-unfold' : 'el-icon-s-fold'" @click="toggleCollapse" |
| | | style="height:30px;"></el-button> |
| | | </div> |
| | | <!-- <div class="tagContainer" style="display: flex;"> |
| | | <tag v-for="(tag, index) in tags" :key="index" :tag="tag" @removeTag="removeTag(index)" @switchTag="switchTag(index)"></tag> |
| | | </div> --> |
| | | <template> |
| | | <el-submenu index="1" class="custom-submenu" > |
| | | <el-submenu index="1" class="custom-submenu"> |
| | | <template slot="title"> |
| | | <el-avatar src="../assets/emi.png" style="width:20px;height:20px;margin-top:30px;background-color: white;"></el-avatar> |
| | | <el-avatar src="../assets/emi.png" |
| | | style="width:20px;height:20px;margin-top:30px;background-color: white;"></el-avatar> |
| | | </template> |
| | | <el-menu-item index="1-1" @click="logout">{{ $t('exit') }}</el-menu-item> |
| | | <el-menu-item index="1-2" @click="showChangePasswordDialog">{{ $t('changePassword') }}</el-menu-item> |
| | | </el-submenu> |
| | | |
| | | </template> |
| | | <template> |
| | | <el-dialog title="修改密码" :visible.sync="dialogVisible" width="30%"> |
| | | <el-form ref="form" :model="formData" label-width="100px"> |
| | | <el-form-item label="旧密码"> |
| | | <el-dialog :title="$t('changePassword')" :visible.sync="dialogVisible" width="30%"> |
| | | <el-form ref="form" :model="formData" label-width="200px"> |
| | | <el-form-item :label="$t('Old password')"> |
| | | <el-input v-model="formData.oldPassword" type="password" show-password></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="新密码"> |
| | | <el-form-item :label="$t('New password')"> |
| | | <el-input v-model="formData.newPassword" type="password" show-password></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="确认新密码"> |
| | | <el-form-item :label="$t('Confirm password')"> |
| | | <el-input v-model="formData.confirmPassword" type="password" show-password></el-input> |
| | | </el-form-item> |
| | | </el-form> |
| | | <div slot="footer" class="dialog-footer"> |
| | | <el-button @click="dialogVisible = false">取消</el-button> |
| | | <el-button type="primary" @click="savePassword">保存</el-button> |
| | | <el-button @click="dialogVisible = false">{{ $t('cancel') }}</el-button> |
| | | <el-button type="primary" @click="savePassword">{{ $t('confirm') }}</el-button> |
| | | </div> |
| | | </el-dialog> |
| | | </template> |
| | |
| | | </el-header> |
| | | <el-main> |
| | | <keep-alive> |
| | | <router-view/> |
| | | <router-view /> |
| | | </keep-alive> |
| | | </el-main> |
| | | </el-container> |
| | | <el-dialog :visible.sync="dialogFormVisible2" :title="$t('Alarm Information')"> |
| | | <el-table :data="this.alarm" border style="width: 100%;font-size: 25px;"> |
| | | <el-table-column prop="id" :label="$t('id')"></el-table-column> |
| | | <el-table-column prop="content" :label="$t('content')"></el-table-column> |
| | | <el-table-column prop="timeons" :label="$t('timeon')"></el-table-column> |
| | | </el-table> |
| | | </el-dialog> |
| | | <el-dialog :visible.sync="dialogFormCountDown" :title="$t('Approximately resettable time')" top="5vh"> |
| | | <div :style="'font-size: ' + PromptSize + 'px;text-align: center;'"> |
| | | <!-- {{ this.CountDowns }} --> |
| | | {{ this.CountDowns }} |
| | | </div> |
| | | </el-dialog> |
| | | <!-- <el-dialog :visible.sync="dialogFormVisible3"> |
| | | |
| | | <el-button :class="{ 'blue-button': receivedData === 1 }" @click="toggleButtonValue(1)">{{ |
| | | $t('A01Abort/ResumeTasks') }}</el-button> |
| | | <el-button :class="{ 'blue-button': receivedData2 === 1 }" @click="toggleButtonValue(2)">{{ |
| | | $t('A02Abort/ResumeTasks') }}</el-button> |
| | | |
| | | </el-dialog> --> |
| | | |
| | | </el-container> |
| | | </template> |
| | | |
| | |
| | | import { changePassword } from '../api/user' |
| | | import { removeToken } from "../utils/auth"; |
| | | import LanguageMixin from '../lang/LanguageMixin' |
| | | import { MessageBox } from 'element-ui'; |
| | | // import { mapState, mapMutations } from 'vuex'; |
| | | // import Tag from '../layout/tag.vue'; |
| | | // import store from '../store'; |
| | | let socket; |
| | | |
| | | export default { |
| | | name: "Layout", |
| | |
| | | return { |
| | | activeTag: '', // 当前激活的标签 |
| | | dialogVisible: false, |
| | | receivedData: 0, |
| | | receivedData2: 0, |
| | | formData: { |
| | | oldPassword: '', |
| | | newPassword: '', |
| | |
| | | menuListForm: { |
| | | pageSize: 1, |
| | | pageNum: -1 |
| | | } |
| | | }, |
| | | dialogFormVisible2: false, |
| | | dialogFormVisible3: false, |
| | | alarm: [], |
| | | alarm2: [], |
| | | CountDowns: "0", |
| | | EmergencyStop: false, |
| | | PromptSize: 250, |
| | | dialogFormCountDown: false |
| | | |
| | | } |
| | | }, |
| | | // components: { |
| | | // Tag |
| | | // }, |
| | | created() { |
| | | |
| | | |
| | | |
| | | selectList(this.menuListForm).then(res => { |
| | | this.menuList = res.data |
| | | |
| | |
| | | // 记录上一次激活的菜单 |
| | | // this.activePath = window.sessionStorage.getItem('activePath') |
| | | }); |
| | | this.init(); |
| | | }, |
| | | computed: { |
| | | // ...mapState('tags', ['tags']) |
| | | }, |
| | | methods: { |
| | | |
| | | toggleButtonValue(buttonNumber) { |
| | | |
| | | MessageBox.confirm(this.$t('Are you sure to perform this operation?'), this.$t('prompt'), { |
| | | confirmButtonText: this.$t('confirm'), |
| | | cancelButtonText: this.$t('cancel'), |
| | | type: 'warning' |
| | | }).then(() => { |
| | | // 点击确认按钮后执行的操作 |
| | | if (buttonNumber === 1) { |
| | | this.receivedData = this.receivedData === 0 ? 1 : 0; |
| | | } else if (buttonNumber === 2) { |
| | | this.receivedData2 = this.receivedData2 === 0 ? 1 : 0; |
| | | } |
| | | console.log(this.receivedData, this.receivedData2) |
| | | |
| | | |
| | | const data3 = []; |
| | | const resetButtonValues3 = [this.receivedData, this.receivedData2]; |
| | | |
| | | // 将得到的值添加到 data 数组中 |
| | | data3.push(resetButtonValues3.flat()); |
| | | |
| | | // 在 data3 数组前面添加两个空数组 |
| | | |
| | | // 创建 jsonObject3 对象,并添加 data3 属性 |
| | | const jsonObject3 = { data: data3 }; |
| | | |
| | | // 提交数据到后端 |
| | | const jsonString3 = JSON.stringify(jsonObject3); |
| | | console.log("急停后中止/继续选择:", jsonString3); |
| | | socket?.send(jsonString3); |
| | | setTimeout(() => { |
| | | this.dialogFormVisible3 = false; |
| | | }, 1000); // 延迟时间为1秒(1000毫秒) |
| | | }).catch(() => { |
| | | // 点击取消按钮后执行的操作 |
| | | }); |
| | | |
| | | |
| | | |
| | | |
| | | }, |
| | | init() { |
| | | let viewname = "Home"; |
| | | if (typeof (WebSocket) == "undefined") { |
| | | console.log("您的浏览器不支持WebSocket"); |
| | | } else { |
| | | //console.log("您的浏览器支持WebSocket"); |
| | | let socketUrl = "ws://" + this.$t('ip') + ":8888" + "/springboot-vue3/api/talk/" + viewname; |
| | | if (socket != null) { |
| | | socket.close(); |
| | | socket = null; |
| | | } |
| | | // 开启一个websocket服务 |
| | | socket = new WebSocket(socketUrl); |
| | | //打开事件 |
| | | socket.onopen = function () { |
| | | console.log("websocket已打开"); |
| | | }; |
| | | // 浏览器端收消息,获得从服务端发送过来的文本消息 |
| | | socket.onmessage = function (msg) { |
| | | //console.log("收到数据====" + msg.data); |
| | | 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 { |
| | | 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.reset != null) { |
| | | this.reset = obj.reset[0]; |
| | | } |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | if (obj.Abort) { |
| | | |
| | | if (obj.Abort[0].length > 0) { |
| | | this.receivedData = obj.Abort[0][0]; |
| | | this.receivedData2 = obj.Abort[0][1]; |
| | | // this.dialogFormVisible3 = true; |
| | | } |
| | | } |
| | | this.$forceUpdate(); |
| | | |
| | | }.bind(this); |
| | | //关闭事件 |
| | | socket.onclose = function () { |
| | | console.log("websocket已关闭"); |
| | | }; |
| | | //发生了错误事件 |
| | | socket.onerror = function () { |
| | | console.log("websocket发生了错误"); |
| | | } |
| | | } |
| | | }, |
| | | //45秒复位倒数计时 |
| | | CountDown() { |
| | | let count = 45; |
| | | let timer = setInterval( |
| | | () => { |
| | | if (this.EmergencyStop == true) { |
| | | this.dialogFormCountDown = false; |
| | | clearInterval(timer); |
| | | this.CountDowns = "0"; |
| | | } else { |
| | | if (count > 0) { |
| | | 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; |
| | | } |
| | | } |
| | | } |
| | | |
| | | }, |
| | | 1000 |
| | | ); |
| | | if (this.reset == false) { |
| | | this.dialogFormCountDown = true; |
| | | } |
| | | }, |
| | | logout: function () { |
| | | removeToken() |
| | | this.$router.push('/login') |
| | |
| | | goToHome() { |
| | | this.$router.push('/home'); |
| | | }, |
| | | |
| | | |
| | | // ...mapMutations('tags', ['addTag', 'removeTag', 'switchTag']), |
| | | addTag() { |
| | | // let submenuItem; |
| | | // const menuItem = this.menuList.find(item => item.menuLists.some(menu => menu.router === router)); |
| | | // if (menuItem) { |
| | | // submenuItem = menuItem.menuLists.find(menu => menu.router === router); |
| | | // } |
| | | // if (submenuItem) { |
| | | // const tag = submenuItem.router; |
| | | // this.$store.commit('tags/addTag', tag); |
| | | // } |
| | | }, |
| | | |
| | | // let submenuItem; |
| | | // const menuItem = this.menuList.find(item => item.menuLists.some(menu => menu.router === router)); |
| | | // if (menuItem) { |
| | | // submenuItem = menuItem.menuLists.find(menu => menu.router === router); |
| | | // } |
| | | // if (submenuItem) { |
| | | // const tag = submenuItem.router; |
| | | // this.$store.commit('tags/addTag', tag); |
| | | // } |
| | | }, |
| | | |
| | | removeTag() { |
| | | // this.$store.commit('tags/removeTag', index); // 从 Vuex Store 中移除标签 |
| | |
| | | this.$message.error('新密码与确认密码不一致'); |
| | | return; |
| | | } |
| | | changePassword({oldPassword, newPassword}).then(res => { |
| | | changePassword({ oldPassword, newPassword }).then(res => { |
| | | console.log(res.data); |
| | | this.$message.success('密码修改成功'); |
| | | removeToken() |
| | | this.$router.push('/login') |
| | | }).catch(() => { |
| | | |
| | | |
| | | }); |
| | | |
| | | this.dialogVisible = false; |
| | |
| | | '角色管理': 'RoleManagement', |
| | | '角色列表': 'RoleList', |
| | | '电气管理': 'Electrical management', |
| | | '设备状态':'State', |
| | | '设备状态': 'State', |
| | | |
| | | '主页': 'Home' |
| | | // 根据实际需求继续添加对照关系 |
| | |
| | | </script> |
| | | |
| | | <style scoped lang="less"> |
| | | |
| | | .el-menu--horizontal > .el-submenu .el-submenu__title { |
| | | .el-menu--horizontal>.el-submenu .el-submenu__title { |
| | | height: 45px !important; |
| | | } |
| | | .custom-submenu { |
| | | |
| | | |
| | | height: 90px !important; |
| | | |
| | | .custom-submenu { |
| | | |
| | | |
| | | height: 90px !important; |
| | | } |
| | | |
| | | |
| | | .header-container { |
| | | |
| | | height: 30px !important; /* 设置较小的高度 */ |
| | | height: 30px !important; |
| | | /* 设置较小的高度 */ |
| | | } |
| | | |
| | | |
| | | |
| | | .header-left { |
| | | margin-right: auto; |
| | | width:30px; |
| | | |
| | | margin-right: auto; |
| | | width: 30px; |
| | | |
| | | } |
| | | |
| | | .el-aside { |
| | | height: 100vh; |
| | | background-color: #222f3e; |
| | | line-height: 200px; |
| | | height: 100vh; |
| | | background-color: #222f3e; |
| | | line-height: 200px; |
| | | } |
| | | |
| | | .el-menu-vertical-demo:not(.el-menu--collapse) { |
| | | width: 200px; |
| | | min-height: 400px; |
| | | width: 200px; |
| | | min-height: 400px; |
| | | } |
| | | |
| | | .el-menu-demo { |
| | | display: flex; |
| | | width: 100%; |
| | | height: 100%; |
| | | justify-content: flex-end; |
| | | align-items: center; |
| | | display: flex; |
| | | width: 100%; |
| | | height: 100%; |
| | | justify-content: flex-end; |
| | | align-items: center; |
| | | |
| | | } |
| | | |
| | | .el-menu-vertical-demo { |
| | | border: 0; |
| | | border: 0; |
| | | } |
| | | |
| | | .logo { |
| | | background-color: #222f3e; |
| | | display: flex; |
| | | justify-content: center; |
| | | align-items: center; |
| | | height: 60px; |
| | | background-color: #222f3e; |
| | | display: flex; |
| | | justify-content: center; |
| | | align-items: center; |
| | | height: 60px; |
| | | |
| | | .sys-name { |
| | | font-size: 20px; |
| | | color: #ffffff; |
| | | margin-left: 10px; |
| | | } |
| | | .sys-name { |
| | | font-size: 20px; |
| | | color: #ffffff; |
| | | margin-left: 10px; |
| | | } |
| | | } |
| | | |
| | | .blue-button { |
| | | background-color: green; |
| | | color: white; |
| | | } |
| | | |
| | | .el-header { |
| | | |
| | | background-color: #576574; |
| | | background-color: #576574; |
| | | } |
| | | </style> |
| | |
| | | import VueI18n from 'vue-i18n' |
| | | import zhCN from './lang/locales/zh-CN.json' // 中文语言包 |
| | | import enUS from './lang/locales/en-US.json' // 英文语言包 |
| | | import websocketPlugin from './api/websocketPlugin'; // 引入插件文件 |
| | | //import websocketPlugin from './api/websocketPlugin'; // 引入插件文件 |
| | | // import store from './store' |
| | | |
| | | // import store from './store' |
| | | Vue.use(VueI18n) |
| | | Vue.use(websocketPlugin, { |
| | | ip: 'localhost', // 替换成你的 WebSocket 服务器 IP 地址 |
| | | }); |
| | | // Vue.use(websocketPlugin, { |
| | | // ip: 'localhost', // 替换成你的 WebSocket 服务器 IP 地址 |
| | | // }); |
| | | |
| | | const i18n = new VueI18n({ |
| | | locale: 'en-US', |
| | |
| | | <div v-for="(item, itemIndex) in dataGroup" :key="itemIndex" class="item-container"> |
| | | <div class="item-row"> |
| | | <span class="name" style="width:250px;">{{ item.name }}</span> |
| | | <!-- <el-input v-if="item.type === '0'" |
| | | <el-input v-if="item.type === '0'" |
| | | v-model="item.value" |
| | | class="input-box" |
| | | :oninput="`value=value.replace(/^0|[^0-9]/g,'');if(value<`+item.min+`){value=`+item.value+`}else if(value>`+item.max+`){value=`+item.value+`}`" |
| | | @keyup.enter.native="submitDataToBackend"> |
| | | </el-input> --> |
| | | @keyup.enter.native="submitDataToBackend($event)"> |
| | | </el-input> |
| | | |
| | | <el-input v-if="item.type === '0'" |
| | | <!-- <el-input v-if="item.type === '0'" |
| | | v-model="item.value" |
| | | class="input-box" |
| | | |
| | | @keyup.enter.native="submitDataToBackend"> |
| | | </el-input> |
| | | </el-input> --> |
| | | |
| | | <span v-if="item.unit" :name="item.unit" >{{ item.unit }}</span> |
| | | |
| | |
| | | |
| | | |
| | | }, |
| | | |
| | | methods: { |
| | | closeSocket () { |
| | | // 关闭 WebSocket 连接 |
| | |
| | | const jsonString = JSON.stringify(jsonObject); |
| | | console.log('提交以下数据到后端:', jsonString); |
| | | socket?.send(jsonString); |
| | | |
| | | event.target.blur(); // 取消输入框焦点 |
| | | |
| | | }, |
| | | initWebSocket () { |
| | |
| | | }; |
| | | |
| | | // 收到消息 |
| | | let isMouseInInputBox = false; // 标记鼠标是否在输入框内 |
| | | // let isMouseInInputBox = false; // 标记鼠标是否在输入框内 |
| | | |
| | | const inputBox = document.querySelectorAll('.input-box'); |
| | | inputBox.forEach(box => { |
| | | box.addEventListener('mouseenter', () => { |
| | | isMouseInInputBox = true; |
| | | }); |
| | | box.addEventListener('mouseleave', () => { |
| | | isMouseInInputBox = false; |
| | | }); |
| | | }); |
| | | // const inputBox = document.querySelectorAll('.input-box'); |
| | | // inputBox.forEach(box => { |
| | | // box.addEventListener('mouseenter', () => { |
| | | // isMouseInInputBox = true; |
| | | // }); |
| | | // box.addEventListener('mouseleave', () => { |
| | | // isMouseInInputBox = false; |
| | | // }); |
| | | // }); |
| | | |
| | | socket.onmessage = (msg) => { |
| | | if (!msg.data) { |
| | | return; // 如果收到空数据,则直接返回,不执行后续逻辑 |
| | | } |
| | | |
| | | // 添加判断条件:如果光标在输入框内,则不执行后续逻辑 |
| | | if (document.activeElement.tagName.toLowerCase() === 'input') { |
| | | return; |
| | | } |
| | | |
| | | |
| | | let obj = JSON.parse(msg.data); |
| | | |
| | | const jsonData2 = this.jsonData; |
| | | |
| | | const parms = obj.params; |
| | | const fanzhuan = obj.fanzhuan; |
| | | const xiaoche = obj.xiaoche; |
| | | const dache = obj.dache1; |
| | | const fanzhuan = obj.fanzhuan; |
| | | const xiaoche = obj.xiaoche; |
| | | const dache = obj.dache1; |
| | | |
| | | const parms2 = obj.params2; |
| | | const fanzhuan2 = obj.fanzhuan2; |
| | | const xiaoche2 = obj.xiaoche2; |
| | | const parms2 = obj.params2; |
| | | const fanzhuan2 = obj.fanzhuan2; |
| | | const xiaoche2 = obj.xiaoche2; |
| | | |
| | | if(parms && !isMouseInInputBox){ |
| | | |
| | | if(parms){ |
| | | let index = 0; |
| | | for (let i = 0; i < jsonData2.length - 1; i++) { |
| | | let arr = jsonData2[i]; |
| | | |
| | | let index = 0; |
| | | for (let i = 0; i < jsonData2.length - 1; i++) { |
| | | let arr = jsonData2[i]; |
| | | |
| | | for (let j = 0; j < arr.length; j++) { |
| | | let obj = arr[j]; |
| | | if (obj.type === '0' && Object.prototype.hasOwnProperty.call(obj, 'value')) { |
| | | if (Array.isArray(parms) && Array.isArray(parms[0]) && parms[0][index] !== undefined) { |
| | | obj.value = parms[0][index]; |
| | | index++; |
| | | } |
| | | for (let j = 0; j < arr.length; j++) { |
| | | let obj = arr[j]; |
| | | if (obj.type === '0' && Object.prototype.hasOwnProperty.call(obj, 'value')) { |
| | | if (Array.isArray(parms) && Array.isArray(parms[0]) && parms[0][index] !== undefined) { |
| | | obj.value = parms[0][index]; |
| | | index++; |
| | | } |
| | | } |
| | | } |
| | | if (Array.isArray(fanzhuan) && Array.isArray(fanzhuan[0]) && fanzhuan[0][0] !== undefined) { |
| | | jsonData2[4][0]['value'] = fanzhuan[0][0]; |
| | | } |
| | | if (Array.isArray(xiaoche) && Array.isArray(xiaoche[0]) && xiaoche[0][0] !== undefined) { |
| | | jsonData2[3][0]['value'] = xiaoche[0][0]; |
| | | } |
| | | if (Array.isArray(dache) && Array.isArray(dache[0]) && dache[0][0] !== undefined) { |
| | | jsonData2[2][0]['value'] = dache[0][0]; |
| | | } |
| | | |
| | | let index2 = 0; |
| | | for (let i = 5; i < jsonData2.length; i++) { |
| | | let arr2 = jsonData2[i]; |
| | | |
| | | for (let j = 0; j < arr2.length; j++) { |
| | | let obj2 = arr2[j]; |
| | | if (obj2.type === '0' && Object.prototype.hasOwnProperty.call(obj2, 'value')) { |
| | | if (Array.isArray(parms2) && Array.isArray(parms2[0]) && parms2[0][index2] !== undefined) { |
| | | obj2.value = parms2[0][index2]; |
| | | index2++; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | |
| | | for (let i = 0; i < jsonData2.length; i++) { |
| | | let arr = jsonData2[i]; |
| | | |
| | | for (let j = 0; j < arr.length; j++) { |
| | | let obj = arr[j]; |
| | | if (obj.type === '0' && Object.prototype.hasOwnProperty.call(obj, 'value')) { |
| | | if (Array.isArray(parms) && Array.isArray(parms[0]) && parms[0][index] !== undefined) { |
| | | obj.value = parms[0][index]; |
| | | index++; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | if (Array.isArray(fanzhuan2) && Array.isArray(fanzhuan2[0]) && fanzhuan2[0][0] !== undefined) { |
| | | jsonData2[8][0]['value'] = fanzhuan2[0][0]; |
| | | } |
| | | |
| | | if (Array.isArray(xiaoche2) && Array.isArray(xiaoche2[0]) && xiaoche2[0][0] !== undefined) { |
| | | jsonData2[9][0]['value'] = xiaoche2[0][0]; |
| | | } |
| | | } |
| | | |
| | | |
| | | if (Array.isArray(fanzhuan) && Array.isArray(fanzhuan[0]) && fanzhuan[0][0] !== undefined) { |
| | | jsonData2[4][0]['value'] = fanzhuan[0][0]; |
| | | } |
| | | if (Array.isArray(xiaoche) && Array.isArray(xiaoche[0]) && xiaoche[0][0] !== undefined) { |
| | | jsonData2[3][0]['value'] = xiaoche[0][0]; |
| | | } |
| | | if (Array.isArray(dache) && Array.isArray(dache[0]) && dache[0][0] !== undefined) { |
| | | jsonData2[2][0]['value'] = dache[0][0]; |
| | | } |
| | | |
| | | let index2 = 0; |
| | | for (let i = 5; i < jsonData2.length; i++) { |
| | | let arr2 = jsonData2[i]; |
| | | |
| | | for (let j = 0; j < arr2.length; j++) { |
| | | let obj2 = arr2[j]; |
| | | if (obj2.type === '0' && Object.prototype.hasOwnProperty.call(obj2, 'value')) { |
| | | if (Array.isArray(parms2) && Array.isArray(parms2[0]) && parms2[0][index2] !== undefined) { |
| | | obj2.value = parms2[0][index2]; |
| | | index2++; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | // // 添加判断条件:如果光标在输入框内,则不执行后续逻辑 |
| | | // if (document.activeElement.tagName.toLowerCase() === 'input') { |
| | | // return; |
| | | // } |
| | | |
| | | for (let i = 0; i < jsonData2.length; i++) { |
| | | let arr = jsonData2[i]; |
| | | |
| | | for (let j = 0; j < arr.length; j++) { |
| | | let obj = arr[j]; |
| | | if (obj.type === '0' && Object.prototype.hasOwnProperty.call(obj, 'value')) { |
| | | if (Array.isArray(parms) && Array.isArray(parms[0]) && parms[0][index] !== undefined) { |
| | | obj.value = parms[0][index]; |
| | | index++; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | if (Array.isArray(fanzhuan2) && Array.isArray(fanzhuan2[0]) && fanzhuan2[0][0] !== undefined) { |
| | | jsonData2[8][0]['value'] = fanzhuan2[0][0]; |
| | | } |
| | | |
| | | if (Array.isArray(xiaoche2) && Array.isArray(xiaoche2[0]) && xiaoche2[0][0] !== undefined) { |
| | | jsonData2[9][0]['value'] = xiaoche2[0][0]; |
| | | } |
| | | } |
| | | }; |
| | | |
| | | |
| | | |
| | | |
| | |
| | | } else if (obj.button && obj.button.name) { |
| | | const newName = nameMap[obj.button.name] || obj.button.name; |
| | | return { ...obj, button: { ...obj.button, name: newName } }; |
| | | } else if (obj.title && obj.title.name) { |
| | | const newName = nameMap[obj.title.name] || obj.title.name; |
| | | return { ...obj, title: { ...obj.title, name: newName } }; |
| | | } else { |
| | | return obj; |
| | | } |
| | |
| | | <span class="name" style="width:300px;">{{ item.name }}</span>
|
| | |
|
| | | <el-input style="width:250px;" v-if="item.state != 0 && item.type === '0' && groupIndex === 0 && (itemIndex === 2)" readonly v-model="item.value"
|
| | | class="input-box" ></el-input>
|
| | | class="input-box" :oninput="`value=value.replace(/^0|[^0-9]/g,'');if(value<`+item.min+`){value=`+item.value+`}else if(value>`+item.max+`){value=`+item.value+`}`" ></el-input>
|
| | |
|
| | | <el-input style="width:250px;" v-else-if="item.state != 0 && item.type === '0' && groupIndex === 0 " v-model="item.value" @keyup.enter.native="A01start"
|
| | | class="input-box" ></el-input>
|
| | | <el-input style="width:250px;" v-else-if="item.state != 0 && item.type === '0' && groupIndex === 0 " v-model="item.value" @keyup.enter.native="A01start($event)"
|
| | | class="input-box" :oninput="`value=value.replace(/^0|[^0-9]/g,'');if(value<`+item.min+`){value=`+item.value+`}else if(value>`+item.max+`){value=`+item.value+`}`" ></el-input>
|
| | | <el-input style="width: 250px;" v-else-if="(item.state !== 0) && (item.type === '0') && (itemIndex === 2)" v-model="item.value" readonly class="input-box" ></el-input>
|
| | |
|
| | |
|
| | | <el-input style="width:250px;" v-else-if="item.state != 0 && item.type === '0' && groupIndex === 1" v-model="item.value" @keyup.enter.native="A02start"
|
| | | class="input-box" ></el-input>
|
| | | <el-input style="width:250px;" v-else-if="item.state != 0 && item.type === '0' && groupIndex === 2" v-model="item.value" @keyup.enter.native="B01start"
|
| | | class="input-box" ></el-input>
|
| | | <el-input style="width:250px;" v-else-if="item.state != 0 && item.type === '0' && groupIndex === 3" v-model="item.value" @keyup.enter.native="B02start"
|
| | | class="input-box" ></el-input>
|
| | | <el-input style="width:250px;" v-else-if="item.state != 0 && item.type === '0' && groupIndex === 1" v-model="item.value" @keyup.enter.native="A02start($event)"
|
| | | class="input-box" :oninput="`value=value.replace(/^0|[^0-9]/g,'');if(value<`+item.min+`){value=`+item.value+`}else if(value>`+item.max+`){value=`+item.value+`}`" ></el-input>
|
| | | <el-input style="width:250px;" v-else-if="item.state != 0 && item.type === '0' && groupIndex === 2" v-model="item.value" @keyup.enter.native="B01start($event)"
|
| | | class="input-box" :oninput="`value=value.replace(/^0|[^0-9]/g,'');if(value<`+item.min+`){value=`+item.value+`}else if(value>`+item.max+`){value=`+item.value+`}`" ></el-input>
|
| | | <el-input style="width:250px;" v-else-if="item.state != 0 && item.type === '0' && groupIndex === 3" v-model="item.value" @keyup.enter.native="B02start($event)"
|
| | | class="input-box" :oninput="`value=value.replace(/^0|[^0-9]/g,'');if(value<`+item.min+`){value=`+item.value+`}else if(value>`+item.max+`){value=`+item.value+`}`" ></el-input>
|
| | | <el-input style="width:250px;" v-else-if="item.state != 0 && item.type === '0'" v-model="item.value"
|
| | | class="input-box" ></el-input>
|
| | | class="input-box" :oninput="`value=value.replace(/^0|[^0-9]/g,'');if(value<`+item.min+`){value=`+item.value+`}else if(value>`+item.max+`){value=`+item.value+`}`" ></el-input>
|
| | | </div>
|
| | | </div>
|
| | | <div class="button-row" style="display: flex; justify-content: space-between;">
|
| | |
| | |
|
| | |
|
| | | },
|
| | | A01start(){
|
| | | A01start(event){
|
| | |
|
| | | const data = [];
|
| | |
|
| | |
| | | const jsonString = JSON.stringify(jsonObject);
|
| | | console.log('所有Type为0的value:', jsonString);
|
| | | socket?.send(jsonString);
|
| | |
|
| | | event.target.blur(); // 取消输入框焦点
|
| | | },
|
| | | A02start(){
|
| | | A02start(event){
|
| | | const data = [];
|
| | |
|
| | | for (let i = 1; i < 2; i++) {
|
| | |
| | | const jsonString = JSON.stringify(jsonObject);
|
| | | console.log('所有Type为0的value:', jsonString);
|
| | | socket?.send(jsonString);
|
| | |
|
| | | event.target.blur(); // 取消输入框焦点
|
| | | },
|
| | | B01start(){
|
| | | B01start(event){
|
| | | const data = [];
|
| | |
|
| | | for (let i = 2; i < 3; i++) {
|
| | |
| | | const jsonString = JSON.stringify(jsonObject);
|
| | | console.log('所有Type为0的value:', jsonString);
|
| | | socket?.send(jsonString);
|
| | |
|
| | | event.target.blur(); // 取消输入框焦点
|
| | | },
|
| | | B02start(){
|
| | | B02start(event){
|
| | | const data = [];
|
| | |
|
| | | for (let i = 3; i < 4; i++) {
|
| | |
| | | });
|
| | |
|
| | | const values = inputData.map(item => item.value);
|
| | |
|
| | | if (values.length > 0) {
|
| | |
|
| | | let firstValue = values[0];
|
| | | if (!(firstValue >= "106" && firstValue <= "210")) {
|
| | | values.shift();
|
| | | this.$message.error("Out of range");
|
| | | return false;
|
| | | }
|
| | | }
|
| | | data.unshift([], [], []);
|
| | | data.push(values);
|
| | | }
|
| | |
| | | const jsonString = JSON.stringify(jsonObject);
|
| | | console.log('所有Type为0的value:', jsonString);
|
| | | socket?.send(jsonString);
|
| | |
|
| | | event.target.blur(); // 取消输入框焦点
|
| | | },
|
| | | submitDataToBackend (currentButtonName) {
|
| | | if (currentButtonName === 'A01启动' || currentButtonName === 'A01 Start') {
|
| | |
| | | }
|
| | |
|
| | |
|
| | |
|
| | | |
| | |
|
| | | },
|
| | |
|
| | |
| | | };
|
| | |
|
| | | // 收到消息
|
| | | let isMouseInInputBox = false; // 标记鼠标是否在输入框内
|
| | | // let isMouseInInputBox = false; // 标记鼠标是否在输入框内
|
| | |
|
| | | const inputBox = document.querySelectorAll('.input-box');
|
| | | inputBox.forEach(box => {
|
| | | box.addEventListener('mouseenter', () => {
|
| | | isMouseInInputBox = true;
|
| | | });
|
| | | box.addEventListener('mouseleave', () => {
|
| | | isMouseInInputBox = false;
|
| | | });
|
| | | });
|
| | | // const inputBox = document.querySelectorAll('.input-box');
|
| | | // inputBox.forEach(box => {
|
| | | // box.addEventListener('mouseenter', () => {
|
| | | // isMouseInInputBox = true;
|
| | | // });
|
| | | // box.addEventListener('mouseleave', () => {
|
| | | // isMouseInInputBox = false;
|
| | | // });
|
| | | // });
|
| | |
|
| | | socket.onmessage = (msg) => {
|
| | | if (!msg.data) {
|
| | | return; // 如果收到空数据,则直接返回,不执行后续逻辑
|
| | | }
|
| | |
|
| | | // 添加判断条件:如果光标在输入框内,则不执行后续逻辑
|
| | | if (document.activeElement.tagName.toLowerCase() === 'input') {
|
| | | return;
|
| | | }
|
| | |
|
| | | let obj = JSON.parse(msg.data);
|
| | |
| | | const weihuiling = obj.weihuiling;
|
| | |
|
| | |
|
| | | if(obj.zuhe1&& !isMouseInInputBox){
|
| | | if(obj.zuhe1){
|
| | |
|
| | | // console.log(obj);
|
| | |
|
| | |
| | |
|
| | |
|
| | | <el-input style="width:250px;" v-if="item.state != 0 && item.type === '0' && groupIndex === 0 && (itemIndex === 2)" readonly v-model="item.value"
|
| | | class="input-box"></el-input>
|
| | | class="input-box" :oninput="`value=value.replace(/^0|[^0-9]/g,'');if(value<`+item.min+`){value=`+item.value+`}else if(value>`+item.max+`){value=`+item.value+`}`"></el-input>
|
| | |
|
| | |
|
| | | <el-input style="width:250px;" v-else-if="item.state != 0 && item.type === '0' && groupIndex === 1 && (itemIndex === 2)" readonly v-model="item.value"
|
| | | class="input-box"></el-input>
|
| | | class="input-box" :oninput="`value=value.replace(/^0|[^0-9]/g,'');if(value<`+item.min+`){value=`+item.value+`}else if(value>`+item.max+`){value=`+item.value+`}`"></el-input>
|
| | |
|
| | | <el-input style="width:250px;" v-else-if="item.state != 0 && item.type === '0' && groupIndex === 0 " v-model="item.value" @keyup.enter.native="A01start"
|
| | | class="input-box"></el-input>
|
| | | <el-input style="width:250px;" v-else-if="item.state != 0 && item.type === '0' && groupIndex === 0 " v-model="item.value" @keyup.enter.native="A01start($event)"
|
| | | class="input-box" :oninput="`value=value.replace(/^0|[^0-9]/g,'');if(value<`+item.min+`){value=`+item.value+`}else if(value>`+item.max+`){value=`+item.value+`}`"></el-input>
|
| | |
|
| | |
|
| | | <el-input style="width:250px;" v-else-if="item.state != 0 && item.type === '0' && groupIndex === 1 " v-model="item.value" @keyup.enter.native="A02start"
|
| | | class="input-box"></el-input>
|
| | | <el-input style="width:250px;" v-else-if="item.state != 0 && item.type === '0' && groupIndex === 1 " v-model="item.value" @keyup.enter.native="A02start($event)"
|
| | | class="input-box" :oninput="`value=value.replace(/^0|[^0-9]/g,'');if(value<`+item.min+`){value=`+item.value+`}else if(value>`+item.max+`){value=`+item.value+`}`"></el-input>
|
| | |
|
| | |
|
| | |
|
| | |
| | | },
|
| | |
|
| | |
|
| | | A01start(){
|
| | | A01start(event){
|
| | | const data = [];
|
| | |
|
| | | for (let i = 0; i < 1; i++) {
|
| | |
| | | const jsonString = JSON.stringify(jsonObject);
|
| | | console.log('所有Type为0的value:', jsonString);
|
| | | socket?.send(jsonString);
|
| | |
|
| | | event.target.blur(); // 取消输入框焦点
|
| | |
|
| | | },
|
| | | A02start(){
|
| | | A02start(event){
|
| | |
|
| | | const data = [];
|
| | |
|
| | |
| | | const jsonString = JSON.stringify(jsonObject);
|
| | | console.log('所有Type为0的value:', jsonString);
|
| | | socket?.send(jsonString);
|
| | | event.target.blur(); // 取消输入框焦点
|
| | | },
|
| | | //提交方法
|
| | | submitDataToBackend (currentButtonName) {
|
| | |
| | | };
|
| | |
|
| | | // 收到消息
|
| | | let isMouseInInputBox = false; // 标记鼠标是否在输入框内
|
| | | // let isMouseInInputBox = false; // 标记鼠标是否在输入框内
|
| | |
|
| | | const inputBox = document.querySelectorAll('.input-box');
|
| | | inputBox.forEach(box => {
|
| | | box.addEventListener('mouseenter', () => {
|
| | | isMouseInInputBox = true;
|
| | | });
|
| | | box.addEventListener('mouseleave', () => {
|
| | | isMouseInInputBox = false;
|
| | | });
|
| | | });
|
| | | // const inputBox = document.querySelectorAll('.input-box');
|
| | | // inputBox.forEach(box => {
|
| | | // box.addEventListener('mouseenter', () => {
|
| | | // isMouseInInputBox = true;
|
| | | // });
|
| | | // box.addEventListener('mouseleave', () => {
|
| | | // isMouseInInputBox = false;
|
| | | // });
|
| | | // });
|
| | |
|
| | | socket.onmessage = (msg) => {
|
| | | if (!msg.data) {
|
| | | return; // 如果收到空数据,则直接返回,不执行后续逻辑
|
| | | }
|
| | |
|
| | | if (document.activeElement.tagName.toLowerCase() === 'input') {
|
| | | return;
|
| | | }
|
| | |
|
| | |
|
| | | let obj = JSON.parse(msg.data);
|
| | |
|
| | |
|
| | | // console.log(obj)
|
| | | const jsonData2 = this.jsonData;
|
| | | const weihuiling = obj.weihuiling;
|
| | |
| | |
|
| | |
|
| | |
|
| | | if (obj.zuhe1&& !isMouseInInputBox ) {
|
| | | if (obj.zuhe1 ) {
|
| | | // 执行更新逻辑
|
| | | for (let i = 0; i < 2; i++) {
|
| | | jsonData2[i].forEach((item, index) => {
|
| | |
| | | <el-input |
| | | v-if="item.type === '0' && groupIndex==15" |
| | | v-model="item.value" |
| | | @keyup.enter.native="timeout" |
| | | @keyup.enter.native="timeout($event)" |
| | | style="width: 300px" |
| | | class="input-box2" |
| | | ></el-input> |
| | |
| | | }, |
| | | |
| | | updateButtonValue(dataGroup, itemIndex) { |
| | | if (dataGroup[itemIndex].button.value === 1) { |
| | | if (dataGroup[itemIndex].button.value2 === 1) { |
| | | // 如果当前按钮的值是 0,将其设为 1 |
| | | this.$set(dataGroup[itemIndex].button, "value", 0); |
| | | this.$set(dataGroup[itemIndex].button, "value2", 0); |
| | | } else { |
| | | // 否则将其设为 0 |
| | | this.$set(dataGroup[itemIndex].button, "value", 1); |
| | | this.$set(dataGroup[itemIndex].button, "value2", 1); |
| | | } |
| | | }, |
| | | //范围 0-100 |
| | | timeout(){ |
| | | timeout(event){ |
| | | |
| | | |
| | | const data3 = []; |
| | | const resetButtonValues3 = [this.jsonData[15][0].value]; |
| | | |
| | | if (resetButtonValues3.length > 0) { |
| | | |
| | | let firstValue = resetButtonValues3[0]; |
| | | if (!(firstValue >= "0" && firstValue <= "100")) { |
| | | resetButtonValues3.shift(); |
| | | this.$message.error("Out of range"); |
| | | |
| | | return false; |
| | | } |
| | | } |
| | | |
| | | // 将得到的值添加到 data 数组中 |
| | | data3.push(resetButtonValues3.flat()); |
| | |
| | | // setTimeout(()=> |
| | | // window.location.reload(),2000 |
| | | // ) |
| | | |
| | | event.target.blur(); // 取消输入框焦点 |
| | | }, |
| | | |
| | | |
| | |
| | | ["清除ID", "Clear ID"].includes(subItem.button.name) |
| | | ); |
| | | |
| | | return buttonItem ? buttonItem.button.value : null; |
| | | return buttonItem ? buttonItem.button.value2 : null; |
| | | }) |
| | | .filter((value) => value !== null); |
| | | .filter((value2) => value2 !== null); |
| | | |
| | | // 将得到的值添加到 data 数组中 |
| | | data2.push(resetButtonValues.flat()); |
| | | data2.push([]); |
| | | data2.push([],[]); |
| | | // 在 data2 数组前面添加两个空数组 |
| | | |
| | | // 创建 jsonObject2 对象,并添加 data2 属性 |
| | |
| | | currentButtonName === "A02终止/继续" |
| | | ) { |
| | | const data3 = []; |
| | | const resetButtonValues3 = [this.jsonData[13][0].button.value,this.jsonData[14][0].button.value]; |
| | | const resetButtonValues3 = [this.jsonData[13][0].button.value2,this.jsonData[14][0].button.value2]; |
| | | |
| | | // 将得到的值添加到 data 数组中 |
| | | data3.push(resetButtonValues3.flat()); |
| | | data3.unshift([]); |
| | | data3.push([]); |
| | | // 在 data3 数组前面添加两个空数组 |
| | | |
| | | // 创建 jsonObject3 对象,并添加 data3 属性 |
| | |
| | | socket.onopen = function () { |
| | | console.log("websocket已打开"); |
| | | }; |
| | | let isMouseInInputBox = false; // 标记鼠标是否在输入框内 |
| | | |
| | | const inputBox = document.querySelectorAll('.input-box2'); |
| | | inputBox.forEach(box => { |
| | | box.addEventListener('mouseenter', () => { |
| | | isMouseInInputBox = true; |
| | | }); |
| | | box.addEventListener('mouseleave', () => { |
| | | isMouseInInputBox = false; |
| | | }); |
| | | }); |
| | | // let isMouseInInputBox = false; // 标记鼠标是否在输入框内 |
| | | let isUpdated = false; // 定义标志变量 |
| | | // const inputBox = document.querySelectorAll('.input-box2'); |
| | | // inputBox.forEach(box => { |
| | | // box.addEventListener('mouseenter', () => { |
| | | // isMouseInInputBox = true; |
| | | // }); |
| | | // box.addEventListener('mouseleave', () => { |
| | | // isMouseInInputBox = false; |
| | | // }); |
| | | // }); |
| | | // 收到消息 |
| | | socket.onmessage = (msg) => { |
| | | if (!msg.data) { |
| | | return; // 如果收到空数据,则直接返回,不执行后续逻辑 |
| | | } |
| | | if (document.activeElement.tagName.toLowerCase() === 'input') { |
| | | return; |
| | | } |
| | | |
| | | let obj = JSON.parse(msg.data); |
| | | |
| | |
| | | // const inputBox = document.querySelectorAll('.id'); |
| | | // const target = event.target; |
| | | |
| | | if (parms && !isMouseInInputBox) { |
| | | if (parms ) { |
| | | //急停按钮 |
| | | jsonData2[13][0].button.value = obj.jiting[0][0]; |
| | | jsonData2[14][0].button.value = obj.jiting[0][1]; |
| | |
| | | } |
| | | } |
| | | } |
| | | this.$forceUpdate(); |
| | | |
| | | //扫描枪扫码的ID |
| | | |
| | | jsonData2.forEach((item) => { |
| | |
| | | |
| | | jsonData2[15][0].value = obj.timeout[0]; |
| | | |
| | | |
| | | if (!isUpdated) { |
| | | for (let i = 0; i < jsonData2.length; i++) { |
| | | for (let j = 0; j < jsonData2[i].length; j++) { |
| | | if(jsonData2[i][j].button){ |
| | | |
| | | |
| | | jsonData2[i][j].button.value2 = jsonData2[i][j].button.value; |
| | | } |
| | | } |
| | | } |
| | | isUpdated = true; // 更新标志变量的值 |
| | | } |
| | | |
| | | |
| | | } |
| | |
| | | <el-input |
| | | v-if="item.type === '0'" |
| | | v-model="item.value" |
| | | class="input-box" |
| | | @keyup.enter.native="submitDataToBackend" |
| | | class="input-box" :oninput="`value=value.replace(/^0|[^0-9]/g,'');if(value<`+item.min+`){value=`+item.value+`}else if(value>`+item.max+`){value=`+item.value+`}`" |
| | | @keyup.enter.native="submitDataToBackend($event)" |
| | | ></el-input> |
| | | <span v-if="item.unit" :name="item.unit">{{ item.unit }}</span> |
| | | |
| | |
| | | this.$set(dataGroup[itemIndex].button, "value", 1); // 点击按钮后将值改为1 |
| | | }, |
| | | //提交数据到后端 |
| | | submitDataToBackend() { |
| | | submitDataToBackend(event) { |
| | | const inputData = this.jsonData.map((dataGroup) => { |
| | | return dataGroup.map((item) => { |
| | | if (item.type === "0") { |
| | |
| | | const jsonString = JSON.stringify(jsonObject); |
| | | console.log('提交以下数据到后端:', jsonString); |
| | | socket?.send(jsonString); |
| | | event.target.blur(); // 取消输入框焦点 |
| | | }, |
| | | initWebSocket() { |
| | | let viewname = "Positioning1"; |
| | |
| | | }; |
| | | |
| | | // 收到消息 |
| | | let isMouseInInputBox = false; // 标记鼠标是否在输入框内 |
| | | // let isMouseInInputBox = false; // 标记鼠标是否在输入框内 |
| | | |
| | | const inputBox = document.querySelectorAll('.input-box'); |
| | | inputBox.forEach(box => { |
| | | box.addEventListener('mouseenter', () => { |
| | | isMouseInInputBox = true; |
| | | }); |
| | | box.addEventListener('mouseleave', () => { |
| | | isMouseInInputBox = false; |
| | | }); |
| | | }); |
| | | // const inputBox = document.querySelectorAll('.input-box'); |
| | | // inputBox.forEach(box => { |
| | | // box.addEventListener('mouseenter', () => { |
| | | // isMouseInInputBox = true; |
| | | // }); |
| | | // box.addEventListener('mouseleave', () => { |
| | | // isMouseInInputBox = false; |
| | | // }); |
| | | // }); |
| | | |
| | | socket.onmessage = (msg) => { |
| | | if (!msg.data) { |
| | | return; // 如果收到空数据,则直接返回,不执行后续逻辑 |
| | | } |
| | | if (document.activeElement.tagName.toLowerCase() === 'input') { |
| | | return; |
| | | } |
| | | |
| | | let obj = JSON.parse(msg.data); |
| | |
| | | |
| | | const parms = obj.params; |
| | | |
| | | if(parms && !isMouseInInputBox){ // 只有在鼠标不在输入框内时才更新数据 |
| | | if(parms ){ // 只有在鼠标不在输入框内时才更新数据 |
| | | // console.log(parms) |
| | | |
| | | let index = 0; |
| | |
| | | <el-input |
| | | v-if="item.type === '0' && groupIndex === 0" |
| | | v-model="item.value" |
| | | @keyup.enter.native="zuhe1" |
| | | @keyup.enter.native="zuhe1($event)" |
| | | class="input-box" |
| | | :class="{ |
| | | 'special-class': groupIndex === 0, |
| | |
| | | <el-input |
| | | v-else-if="item.type === '0' && groupIndex === 1" |
| | | v-model="item.value" |
| | | @keyup.enter.native="zuhe2" |
| | | @keyup.enter.native="zuhe2($event)" |
| | | class="input-box" |
| | | :class="{ |
| | | 'special-class': groupIndex === 0, |
| | |
| | | this.$set(dataGroup[itemIndex].button, "value", 1); |
| | | } |
| | | }, |
| | | zuhe1() { |
| | | zuhe1(event) { |
| | | const data = []; |
| | | |
| | | for (let i = 0; i < 1; i++) { |
| | |
| | | }); |
| | | |
| | | const values = inputData.map((item) => item.value); |
| | | // console.log(values) |
| | | if (values.length > 0) { |
| | | |
| | | |
| | | if (!(values[1] == "1" || values[1] == "2")) { |
| | | values.shift(); |
| | | this.$message.error("Out of range"); |
| | | return false; |
| | | } |
| | | // if (!(values[2] < "380" ) ) { |
| | | // values.shift(); |
| | | // this.$message.error("Out of range"); |
| | | // return false; |
| | | // } |
| | | |
| | | |
| | | |
| | | if (!(values[4] >= "1" && values[4] <= "210") && values[4] !== "1000") { |
| | | values.shift(); |
| | | this.$message.error("Out of range"); |
| | | return false; |
| | | } |
| | | if (!(values[5] >= "1" && values[5] <= "210") && values[5] !== "1000") { |
| | | values.shift(); |
| | | this.$message.error("Out of range"); |
| | | return false; |
| | | } |
| | | |
| | | } |
| | | |
| | | data.push(values); |
| | | } |
| | | |
| | |
| | | }); |
| | | |
| | | const values = inputData.map((item) => item.value); |
| | | |
| | | data.push(values); |
| | | const pattern = /^[\w ]{1,14}$/; // 匹配长度为14的数字、字母、空格的组合 |
| | | if (!pattern.test(values[0])) { |
| | | values.shift(); |
| | | this.$message.error("Please enter a 14-character string."); |
| | | return false; |
| | | } |
| | | data.push(values); |
| | | } |
| | | data.push([], [], []); |
| | | |
| | |
| | | const jsonString = JSON.stringify(jsonObject); |
| | | console.log("所有Type为0的value:", jsonString); |
| | | socket?.send(jsonString); |
| | | event.target.blur(); // 取消输入框焦点 |
| | | }, |
| | | zuhe2() { |
| | | zuhe2(event) { |
| | | const data2 = []; |
| | | |
| | | for (let i = 1; i < 2; i++) { |
| | |
| | | }); |
| | | |
| | | const values2 = inputData.map((item) => item.value); |
| | | |
| | | if (values2.length > 0) { |
| | | |
| | | |
| | | |
| | | if (!(values2[1] >= "1" && values2[1] <= "210") && values2[1] !== "1000") { |
| | | values2.shift(); |
| | | this.$message.error("Out of range"); |
| | | return false; |
| | | } |
| | | if (!(values2[2] >= "1" && values2[2] <= "210") && values2[2] !== "1000") { |
| | | values2.shift(); |
| | | this.$message.error("Out of range"); |
| | | return false; |
| | | } |
| | | if (!(values2[3] == "1" || values2[3] == "2")) { |
| | | values2.shift(); |
| | | this.$message.error("Out of range"); |
| | | return false; |
| | | } |
| | | |
| | | |
| | | } |
| | | |
| | | data2.push(values2); |
| | | } |
| | |
| | | }); |
| | | |
| | | const values2 = inputData.map((item) => item.value); |
| | | |
| | | const pattern = /^[\w ]{1,14}$/; // 匹配长度为14的数字、字母、空格的组合 |
| | | if (!pattern.test(values2[0])) { |
| | | values2.shift(); |
| | | this.$message.error("Please enter a 14-character string."); |
| | | return false; |
| | | } |
| | | data2.push(values2); |
| | | data2.push([], [], []); |
| | | } |
| | |
| | | const jsonString = JSON.stringify(jsonObject); |
| | | console.log("所有Type为0的value:", jsonString); |
| | | socket?.send(jsonString); |
| | | event.target.blur(); // 取消输入框焦点 |
| | | }, |
| | | submitDataToBackend(currentButtonName) { |
| | | const data = []; |
| | |
| | | console.log("websocket已打开"); |
| | | }; |
| | | |
| | | let isMouseInInputBox = false; // 标记鼠标是否在输入框内 |
| | | // let isMouseInInputBox = false; // 标记鼠标是否在输入框内 |
| | | |
| | | const inputBox = document.querySelectorAll(".input-box"); |
| | | inputBox.forEach((box) => { |
| | | box.addEventListener("mouseenter", () => { |
| | | isMouseInInputBox = true; |
| | | }); |
| | | box.addEventListener("mouseleave", () => { |
| | | isMouseInInputBox = false; |
| | | }); |
| | | }); |
| | | // const inputBox = document.querySelectorAll(".input-box"); |
| | | // inputBox.forEach((box) => { |
| | | // box.addEventListener("mouseenter", () => { |
| | | // isMouseInInputBox = true; |
| | | // }); |
| | | // box.addEventListener("mouseleave", () => { |
| | | // isMouseInInputBox = false; |
| | | // }); |
| | | // }); |
| | | |
| | | socket.onmessage = (msg) => { |
| | | if (!msg.data) { |
| | |
| | | // console.log(obj) |
| | | const weihuiling = obj.weihuiling; |
| | | const jsonData2 = this.jsonData; |
| | | if (document.activeElement.tagName.toLowerCase() === 'input') { |
| | | return; |
| | | } |
| | | |
| | | if (obj.zuhe1 && !isMouseInInputBox) { |
| | | if (obj.zuhe1 ) { |
| | | //启动按钮 |
| | | |
| | | // 执行更新逻辑 |
| | |
| | | background-color: blue;
|
| | | }
|
| | |
|
| | | .red {
|
| | | background-color: red;
|
| | | }
|
| | |
|
| | | .yellow {
|
| | | background-color: yellow;
|
| | |
| | | text-align: right;
|
| | | }
|
| | |
|
| | | .hide {
|
| | | display: none;
|
| | | }
|
| | |
|
| | | .el-table .cell {
|
| | | display: flex;
|
| | | }
|
| | |
|
| | | /* .el-table td,
|
| | | .el-table th {
|
| | | padding: 0px 0;
|
| | |
| | | </div>
|
| | | </div>
|
| | | <div style="display:flex;justify-content: space-around;width: 9zz5%;margin: 0 auto;">
|
| | | <el-input style="width:15%;" :placeholder="$t('Enter the glass barcode')" v-model="glassid1"></el-input>
|
| | | <el-button type="primary" @click="SelectGlassByGlassIDs(2)" :disabled="ManuallyInfeedGlass">
|
| | | <el-input style="width:15%;" :placeholder="$t('Enter the glass barcode')" v-model="glassid1"
|
| | | :class="ManuallyInfeedGlass == true ? 'hide' : ''"></el-input>
|
| | | <el-button type="primary" @click="SelectGlassByGlassIDs(2)" :disabled="ManuallyInfeedGlass"
|
| | | :class="ManuallyInfeedGlass == true ? 'hide' : ''">
|
| | | {{ $t('Manually Infeed Glass') }}</el-button>
|
| | | <!-- <el-input style="width:15%;" :placeholder="$t('Enter the Order No')" v-model="order"></el-input>
|
| | | <el-button type="warning" @click="showform1();">{{ $t('Exit the glass by order number') }}</el-button> -->
|
| | | </div>
|
| | | <div>
|
| | | <el-table :data="this.tasklist1" border style="width: 100%">
|
| | | <el-table-column :width="180" prop="glassId" :label="$t('Outfeed glass barcode')"></el-table-column>
|
| | | <el-table-column :width="130" prop="cage" :label="$t('Cage No')"></el-table-column>
|
| | | <el-table-column :width="130" prop="cell" :label="$t('Slot No')"></el-table-column>
|
| | | <el-table-column :width="130" prop="orderId" :label="$t('Order No')"></el-table-column>
|
| | | <el-table-column :min-width="180" prop="glassId" :label="$t('Outfeed glass barcode')"></el-table-column>
|
| | | <el-table-column :min-width="130" prop="cage" :label="$t('Cage No')"></el-table-column>
|
| | | <el-table-column :min-width="130" prop="cell" :label="$t('Slot No')"></el-table-column>
|
| | | <el-table-column :min-width="130" prop="orderId" :label="$t('Order No')"></el-table-column>
|
| | | <el-table-column prop="orderId" :label="$t('List No')"></el-table-column>
|
| | | <el-table-column prop="orderId" :label="$t('Box No')"></el-table-column>
|
| | | <el-table-column :width="130" prop="lengthWidth" :label="$t('Dim')">
|
| | | <el-table-column :min-width="150" prop="lengthWidth" :label="$t('Dim')">
|
| | | <template slot-scope='scope'>
|
| | | {{ scope.row.glasswidthmm }}*{{ scope.row.glassheightmm }}
|
| | | </template>
|
| | |
| | | </el-table-column>
|
| | | </el-table>
|
| | | <el-table :data="this.tasklist2" border style="width: 100%">
|
| | | <el-table-column :width="180" prop="glassId" :label="$t('Infeed glass barcode')"></el-table-column>
|
| | | <el-table-column :width="130" prop="cage" :label="$t('Cage No')"></el-table-column>
|
| | | <el-table-column :width="130" prop="cell" :label="$t('Slot No')"></el-table-column>
|
| | | <el-table-column :width="130" prop="orderId" :label="$t('Order No')"></el-table-column>
|
| | | <el-table-column :min-width="180" prop="glassId" :label="$t('Infeed glass barcode')"></el-table-column>
|
| | | <el-table-column :min-width="130" prop="cage" :label="$t('Cage No')"></el-table-column>
|
| | | <el-table-column :min-width="130" prop="cell" :label="$t('Slot No')"></el-table-column>
|
| | | <el-table-column :min-width="130" prop="orderId" :label="$t('Order No')"></el-table-column>
|
| | | <el-table-column prop="orderId" :label="$t('List No')"></el-table-column>
|
| | | <el-table-column prop="orderId" :label="$t('Box No')"></el-table-column>
|
| | | <el-table-column :width="130" prop="lengthWidth" :label="$t('Dim')">
|
| | | <el-table-column :min-width="150" prop="lengthWidth" :label="$t('Dim')">
|
| | | <template slot-scope='scope'>
|
| | | {{ scope.row.glasswidthmm }}*{{ scope.row.glassheightmm }}
|
| | | </template>
|
| | |
| | | <div class="blocks-img" :style="{ left: car2 + 'px', top: '175px' }"></div>
|
| | | <div class="blocks-img2"></div>
|
| | | <div class="blocks-img3"></div>
|
| | | <el-button class="orderbutton1" type="primary" @click="showform2()" :disabled="OrderInfo">{{ $t('OrderInfo')
|
| | | }}</el-button>
|
| | | <el-button class="orderbutton2" type="primary" @click="showform6()" :disabled="OutingQueue">
|
| | | <el-button class="orderbutton1" type="primary" @click="showform2()" :disabled="OrderInfo"
|
| | | :class="OrderInfo == true ? 'hide' : ''">{{ $t('OrderInfo')
|
| | | }}</el-button>
|
| | | <el-button class="orderbutton2" type="primary" @click="showform6()" :disabled="OutingQueue"
|
| | | :class="OutingQueue == true ? 'hide' : ''">
|
| | | {{ $t('Outing Queue') }}</el-button>
|
| | |
|
| | | <!-- <div style="display:flex;position: absolute;float:left;z-index: 999;top:112px;left:328px;">
|
| | |
| | | <el-table-column :min-width="50" prop="cell" :label="$t('Slot No')"></el-table-column>
|
| | | <el-table-column :min-width="55" prop="tier" :label="$t('The Side')"></el-table-column>
|
| | | <el-table-column :min-width="145" prop="glassId" :label="$t('Barcode')"></el-table-column>
|
| | | <el-table-column :min-width="100" prop="orderId" :label="$t('Order No')"></el-table-column>
|
| | | <el-table-column :min-width="80" prop="orderId" :label="$t('Order No')"></el-table-column>
|
| | | <el-table-column :min-width="80" prop="listId" :label="$t('List No')"></el-table-column>
|
| | | <el-table-column :min-width="100" prop="boxId" :label="$t('Box No')"></el-table-column>
|
| | | <el-table-column :min-width="90" prop="state" :label="$t('Glass State')">
|
| | | <el-table-column :min-width="50" prop="boxId" :label="$t('Box No')"></el-table-column>
|
| | | <el-table-column :min-width="80" prop="state" :label="$t('Glass State')">
|
| | | <template slot-scope='scope'>
|
| | | {{
|
| | | scope.row.state == 1 ? $t('Normal') : scope.row.state == 2 ? $t('Entering') : scope.row.state == 3 ?
|
| | |
| | | {{ scope.row.glassWidthMm }}{{ scope.row.glassWidthMm > 0 ? "*" : "" }}{{ scope.row.glassHeightMm }}
|
| | | </template>
|
| | | </el-table-column>
|
| | | |
| | | <el-table-column :min-width="80" prop="lengthWidth" :label="$t('State')">
|
| | | <template slot-scope='scope'>
|
| | | {{ scope.row.disabled == 0 ? $t('Enable') : $t('Disable') }}
|
| | | </template>
|
| | | </el-table-column>
|
| | | <el-table-column :min-width="250" :label="$t('Operate')">
|
| | | <template slot-scope='scope'>
|
| | | <el-button type="primary" style="padding: 4px 10px;font-size: 12px;"
|
| | |
| | | @click="outglass(scope.row.glassId, scope.row.state)">{{ $t('Out') }}</el-button>
|
| | | <el-button type="primary" style="padding: 4px 10px;font-size: 12px;"
|
| | | @click="UpdateDisabled(scope.row.cage, scope.row.cell, scope.row.disabled == 0 ? 1 : 0)">
|
| | | {{ scope.row.disabled == 0 ? $t('Enable') : $t('Disable') }}</el-button>
|
| | | {{ scope.row.disabled == 0 ? $t('Disable') : $t('Enable') }}</el-button>
|
| | | <el-button type="primary" style="padding: 4px 10px;font-size: 12px;"
|
| | | :disabled="scope.row.glassId != null ? true : false"
|
| | | @click="insertglass(scope.row.cage, scope.row.cell, scope.row.tier)">{{ $t('Increase')
|
| | | @click="insertglass(scope.row.cage, scope.row.cell, scope.row.tier)">{{ $t('Add')
|
| | | }}</el-button>
|
| | | </template>
|
| | | </el-table-column>
|
| | |
| | | <el-form :model="form" label-width="100px" style="padding-right: 30px">
|
| | | <div style="display: flex;justify-content: space-around;">
|
| | | <label for="">{{ $t('Upper film position') }}</label>
|
| | | <div>
|
| | | {{ $t('Confirm State') }}:{{ this.isConfirm == true ? $t('Not Allow') : $t('Allow') }}
|
| | | <el-button type="primary" @click="isConfirmState()">
|
| | | {{ this.isConfirm == true ? "Allow" : "Not Allow" }}</el-button>
|
| | | {{ this.isConfirm == true ? $t('Allow') : $t('Not Allow') }}</el-button>
|
| | | </div>
|
| | | <label for="">{{ $t('Scan Code Point') }}</label>
|
| | | </div>
|
| | | <div style="display: flex;justify-content: space-around;height: 40px;">
|
| | |
| | | </el-dialog>
|
| | |
|
| | | <el-dialog :visible.sync="dialogFormVisible6" :title="$t('Outing Queue')" top="5vh">
|
| | | <el-button type="primary" @click="isAllowQueueState()" :disabled="!this.isAllowReordering">{{ this.isAllowQueue
|
| | | {{ $t('Queue State') }}:
|
| | | {{ this.isAllowQueue
|
| | | == true ? $t('Start') : $t('Stop')
|
| | | }}
|
| | | <el-button type="primary" @click="isAllowQueueState()" :disabled="!this.isAllowReordering">{{ this.isAllowQueue
|
| | | == true ? $t('Stop') : $t('Start')
|
| | | }}</el-button>
|
| | | <el-button type="primary" @click="isAllowReorderingState()" :disabled="this.isAllowQueue">{{
|
| | | {{ $t('Sorting State') }}:
|
| | | {{
|
| | | this.isAllowReordering == true ? $t('Not Allow') : $t('Allow')
|
| | | }}
|
| | | <el-button type="primary" @click="isAllowReorderings()" :disabled="this.isAllowQueue">{{
|
| | | this.isAllowReordering == true ? $t('Allow') : $t('Not Allow')
|
| | | }}</el-button>
|
| | | <el-input style="width:15%;" :placeholder="$t('Enter the Frame No')" v-model="framebarcode"></el-input>
|
| | | <el-button type="primary" @click="AddOutSliceS()">{{ $t('Add') }}</el-button>
|
| | | <label style="background-color:yellow;font-size: 23px;" for="">{{ isQueueWarning== true ? $t('The cage is disabled') : "" }}</label>
|
| | | <!-- <span style="background-color:yellow;">
|
| | | {{ isQueueWarning== true ? $t('The cage is disabled') : $t('The cage is disabled') }}
|
| | | </span> -->
|
| | | |
| | | <el-table :data="this.OutSlice" :height="700" :span-method="objectSpanMethod" border :cell-style="cellStyle"
|
| | | style="width: 100%;overflow: auto;font-size: 18px;">
|
| | | <el-table-column :min-width="100" prop="glassId" :label="$t('Barcode')"></el-table-column>
|
| | | <el-table-column prop="storageCage.orderId" :label="$t('Order No')"></el-table-column>
|
| | | <el-table-column prop="storageCage.listId" :label="$t('List No')"></el-table-column>
|
| | | <el-table-column prop="storageCage.boxId" :label="$t('Box No')"></el-table-column>
|
| | | <el-table-column prop="storageCage.glasswidthmm" :label="$t('Length')"></el-table-column>
|
| | | <el-table-column prop="storageCage.glassheightmm" :label="$t('Width')"></el-table-column>
|
| | | <el-table-column :min-width="175" prop="glassId" :label="$t('Barcode')"></el-table-column>
|
| | | <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="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('Completed') : scope.row.state == 3 ? $t('Absent') : $t('Deleted') }}
|
| | | ? $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="300" prop="position" :label="$t('Position')" style="font-size: 20px;">
|
| | | <template slot-scope='scope'>
|
| | | <!-- {{ scope.row.position == 1 ? "<>▄▄▄" : "▋" }} -->
|
| | | <div :style="'width:'+(scope.row.position==1?'300':'100') +'px;height:'+(scope.row.position==1?'100':'300') +'px;background-Color:gray;'">
|
| | | <!-- <div :style="'width:100px;height:300px;background-Color:red;'"></div> -->
|
| | | </div>
|
| | | <!-- {{ scope.row.position == 1 ? "<div></div>" : "<div></div>" }} -->
|
| | | </template>
|
| | | </el-table-column>
|
| | | <el-table-column prop="position" :label="$t('Flip')">
|
| | | <template slot-scope='scope'>
|
| | | {{ scope.row.flip == 1 ? $t('Yes') : $t('No') }}
|
| | | </template>
|
| | | </el-table-column>
|
| | | <el-table-column prop="barcode" :label="$t('Frame No')"></el-table-column>
|
| | |
|
| | | <el-table-column prop="barcode" :label="$t('Complete')">
|
| | | <template slot-scope='scope'>
|
| | | <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)"
|
| | | :disabled="!(!isAllowQueue && scope.row.state != 2 && scope.row.state != 4)"
|
| | | @click="CompleteQueue(scope.row.id, scope.row.barcode, scope.row.glassId)">{{ $t('Complete')
|
| | | }}</el-button>
|
| | | </template>
|
| | | </el-table-column>
|
| | | <el-table-column :width="280" :label="$t('Operate')">
|
| | | <el-table-column :min-width="300" prop="position" :label="$t('Position')" style="font-size: 20px;">
|
| | | <template slot-scope='scope'>
|
| | | <div
|
| | | :style="'width:' + (scope.row.position == 1 ? '300' : '100') + 'px;height:' + (scope.row.position == 1 ? '100' : '200') + 'px;background-Color:gray;margin:0 auto;'">
|
| | | |
| | | </div>
|
| | | </template>
|
| | | </el-table-column>
|
| | | <el-table-column prop="position" :label="$t('Flipped')" :min-width="200">
|
| | | <template slot-scope='scope'>
|
| | | {{ scope.row.flip == true ? $t('EXTERIQR OUT AND BYPASS TO THE LEFT')
|
| | | : $t('EXTERIQR OUT AND BYPASS TO THE RIGHT') }}
|
| | | </template>
|
| | | </el-table-column>
|
| | | <el-table-column prop="barcode" :label="$t('Frame No')"></el-table-column>
|
| | | <el-table-column :width="240" :label="$t('Operate')">
|
| | | <template slot-scope='scope'>
|
| | | <el-button type="text" size="small" @click="getTopMove(scope.row, scope.$index)"
|
| | | style="font-size: 15px;"
|
| | |
| | | </el-button>
|
| | | <el-button type="primary" style="padding: 4px 10px;font-size: 12px;" :disabled="isAllowQueue"
|
| | | @click="deleteproductionqueueglass(scope.row.barcode)">{{ $t('Delete') }}</el-button>
|
| | |
|
| | | <el-button type="primary" style="padding: 4px 10px;font-size: 12px;" :disabled="isAllowQueue"
|
| | | @click="FrameStateUpdate(scope.row.barcode,scope.row.framestate)">{{
|
| | | scope.row.framestate == 0 ? $t('Stop') : $t('Start') }}</el-button>
|
| | | </template>
|
| | | </el-table-column>
|
| | | </el-table>
|
| | |
| | | top="5vh">
|
| | | <el-input style="width:15%;" :placeholder="$t('Enter the Frame No')" v-model="framebarcode"></el-input>
|
| | | <el-button type="primary" @click="showform7()">{{ $t('Query') }}</el-button>
|
| | | <el-button type="primary" @click="addoutslice()">{{ $t('Increase') }}</el-button>
|
| | | <el-button type="primary" @click="addoutslice()">{{ $t('Add') }}</el-button>
|
| | | <el-table :data="this.AluminumFrame" :height="700" border style="width: 100%;overflow: auto;">
|
| | |
|
| | | <el-table-column prop="barcode" :label="$t('Barcode')"></el-table-column>
|
| | |
| | | <el-table-column prop="storageCage.cell" :label="$t('Slot No')"></el-table-column>
|
| | | <el-table-column prop="storageCage.tier" :label="$t('The Side')"></el-table-column>
|
| | | <el-table-column prop="FrameNo" :label="$t('Frame No')"></el-table-column>
|
| | | <el-table-column prop="Flip" :label="$t('Flip')"></el-table-column>
|
| | | <el-table-column prop="Flip" :label="$t('Flipped')"></el-table-column>
|
| | | <el-table-column prop="out_slice.state" :label="$t('In the queue')">
|
| | | <template slot-scope='scope'>
|
| | | {{ scope.row.out_slice != null ? $t('Yes') : $t('No') }}
|
| | |
| | | </el-table-column>
|
| | | </el-table>
|
| | | </el-dialog>
|
| | |
|
| | | <el-dialog :visible.sync="dialogFormCountDown" :title="$t('Approximately resettable time')" top="5vh">
|
| | | <div :style="'font-size: ' + PromptSize + 'px;text-align: center;'">
|
| | | <!-- {{ this.CountDowns }} -->
|
| | |
| | | import {
|
| | | home, home2, InsertOrder, Addglassid, UpdateTask, SelectAlarmmgInfo, SelectCageInfo, DeleteByGlassID, OutByGlassID, Loadcarlist,
|
| | | SelectPassword, SelectGlassByGlassID, Disabled, Inglassid, SelectGlass, InsertQueueGlassId, UpdateQueueState, DeleteQueueGlass, SelectGlassNo,
|
| | | SelectAluminumFrameInfoById, DeleteProductionQueueGlass, AddOutSliceS, isAllowQueues, isConfirmStates, SelectPermissionByUserName, currentUsername, CompleteQueue
|
| | | SelectAluminumFrameInfoById, DeleteProductionQueueGlass, AddOutSliceS, isAllowQueues, isConfirmStates, SelectPermissionByUserName, currentUsername, CompleteQueue,
|
| | | isAllowReorderings, FrameStateUpdate
|
| | | } from "../../api/home";
|
| | |
|
| | |
|
| | |
| | | OutingQueue: true,
|
| | | OrderInfo: true,
|
| | | CageDetails: true,
|
| | | CountDowns: "EMERGENCY \r\n STOP",
|
| | | CountDowns: "0",
|
| | | D01RequestState: false,
|
| | | EmergencyStop: false,
|
| | | PromptSize: 250,
|
| | | reset:false
|
| | | reset: false,
|
| | | isQueueWarning: false
|
| | | };
|
| | | },
|
| | | created() {
|
| | |
| | | this.tasklist1 = obj.tasklist1[0];
|
| | | this.tasklist2 = obj.tasklist2[0];
|
| | | this.alarm = obj.alarmmg[0];
|
| | | if (this.alarm.length > 0) {
|
| | | this.dialogFormVisible2 = true;
|
| | | } else {
|
| | | this.dialogFormVisible2 = false;
|
| | | }
|
| | | //是否急停
|
| | | this.EmergencyStop = obj.emergencystop[0];
|
| | | console.log(this.EmergencyStop);
|
| | | // 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;
|
| | | // }
|
| | | // }
|
| | | // //是否急停
|
| | | // if (obj.emergencystop != null) {
|
| | | // this.EmergencyStop = obj.emergencystop[0];
|
| | | // }
|
| | |
|
| | | //复位倒计时
|
| | | if ((obj.countdown[0] == true && this.CountDowns == 0) || this.EmergencyStop == true) {
|
| | | this.CountDown();
|
| | | }
|
| | | //复位完成信号
|
| | | this.reset=obj.reset[0];
|
| | | // //复位倒计时
|
| | | // 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];
|
| | | // }
|
| | |
|
| | | //是否有进片请求
|
| | | this.D01RequestState = obj.D01RequestState[0];
|
| | | if (obj.D01RequestState != null) {
|
| | | this.D01RequestState = obj.D01RequestState[0];
|
| | | }
|
| | | // this.D01RequestState=true;
|
| | |
|
| | | //是否允许出片
|
| | | this.isAllowQueue = obj.isAllowQueue[0];
|
| | | //当前出片格子是否被禁用
|
| | | this.isQueueWarning = obj.isQueueWarning[0];
|
| | | //是否允许出片队列调序
|
| | | this.isAllowReordering = obj.isAllowReordering[0];
|
| | | //出片队列
|
| | | if (this.isAllowReordering == true) {
|
| | | this.OutSlice = obj.listoutslice[0];
|
| | |
| | | SelectAlarmmgInfo().then(res => {
|
| | | this.alarm = res.data.alarmmg;
|
| | | });
|
| | | |
| | |
|
| | | //加载确认密码
|
| | | SelectPassword().then(res => {
|
| | | this.password = res.data.password;
|
| | |
| | | } else if (state == 2) {
|
| | | return "yellow gezi";
|
| | | } else if (state == 3) {
|
| | | return "red gezi";
|
| | | return "black gezi";
|
| | | } else {
|
| | | return "black gezi";
|
| | | }
|
| | |
| | | this.load();
|
| | | });
|
| | | }
|
| | |
|
| | | },
|
| | | //手动上片
|
| | | sbumitglassid() {
|
| | |
| | | this.form5 = {};
|
| | | this.$message.success(this.$t('Operation successful'));
|
| | | } else {
|
| | | alert(1);
|
| | | this.$message.error(this.$t('This glass ID already exists in the sorting cage'));
|
| | | }
|
| | | });
|
| | |
| | | this.AluminumFrame.forEach(item => { item.barcode = glassid; item.isCheck = isChecked })
|
| | | },
|
| | | //添加到出片队列
|
| | | addoutslice() {
|
| | | var dats_ = new Array();
|
| | | this.AluminumFrame.forEach(item => {
|
| | | var dats2_ = new Array();
|
| | | dats2_[0] = item.barcode;
|
| | | dats2_[1] = item.isCheck;
|
| | | dats2_[2] = item.Flip;
|
| | | dats2_[3] = item.FrameNo;
|
| | | dats2_[4] = item.glasslengthmm;
|
| | | dats2_[5] = item.glassheightmm;
|
| | | dats_[dats_.length] = dats2_;
|
| | | });
|
| | | AddOutSliceS(dats_).then(res => {
|
| | | AddOutSliceS() {
|
| | | // var dats_ = new Array();
|
| | | // this.AluminumFrame.forEach(item => {
|
| | | // var dats2_ = new Array();
|
| | | // dats2_[0] = item.barcode;
|
| | | // dats2_[1] = item.isCheck;
|
| | | // dats2_[2] = item.Flip;
|
| | | // dats2_[3] = item.FrameNo;
|
| | | // dats2_[4] = item.glasslengthmm;
|
| | | // dats2_[5] = item.glassheightmm;
|
| | | // dats_[dats_.length] = dats2_;
|
| | | // });
|
| | | // AddOutSliceS(dats_).then(res => {
|
| | | // if (res.data.message == 200) {
|
| | | // this.$message.success(this.$t('Operation successful'));
|
| | | // }
|
| | | // });
|
| | | AddOutSliceS(this.framebarcode).then(res => {
|
| | | if (res.data.message == 200) {
|
| | | this.$message.success(this.$t('Operation successful'));
|
| | | }
|
| | |
| | | }
|
| | | })
|
| | | },
|
| | | //
|
| | | isAllowReorderingState() {
|
| | | this.isAllowReordering = !this.isAllowReordering;
|
| | | //是否允许出片队列排序
|
| | | isAllowReorderings() {
|
| | | isAllowReorderings(!this.isAllowReordering, this.OutSlice).then(res => {
|
| | | if (res.data.message == 200) {
|
| | | this.$message.success(this.$t('Operation successful'));
|
| | | }
|
| | | })
|
| | | },
|
| | | //切换上片是否需要确认玻璃信息
|
| | | isConfirmState() {
|
| | |
| | | });
|
| | | }
|
| | | ,
|
| | | cellStyle({ row, column, rowIndex, columnIndex }) {
|
| | | // console.log(row, column, "ss");
|
| | | //表格样式
|
| | | cellStyle({ column, rowIndex, columnIndex }) {
|
| | | column = rowIndex;
|
| | | rowIndex = column;
|
| | | let style = "";
|
| | | if (columnIndex === 8) {
|
| | | style = "font-size:200px;text-align: center;height:200px;";
|
| | | style = "font-size:200px;text-align: center;";
|
| | | }
|
| | | if (columnIndex === 9 && row.flip == 1) {
|
| | | style = "background-Color:yellow;";
|
| | | }
|
| | | if (columnIndex === 6 && row.state == 3) {
|
| | | style = "background-Color:gray;";
|
| | | }
|
| | | style
|
| | | // if (columnIndex === 9 && row.flip == 1) {
|
| | | // style = "background-Color:yellow;";
|
| | | // }
|
| | | // if (columnIndex === 6 && row.state == 3) {
|
| | | // style = "background-Color:gray;";
|
| | | // }
|
| | | return style;
|
| | | }
|
| | | ,
|
| | |
| | | if (rowIndex != 0) {
|
| | | barcode2 = arrOutSlice[rowIndex - 1].barcode;
|
| | | }
|
| | | if (columnIndex === 12) {
|
| | | if (columnIndex === 12 || columnIndex === 9 || columnIndex === 10 || columnIndex === 11) {
|
| | | if (barcode != barcode2) {
|
| | | // this.FrameNoFlag = barcode;
|
| | | for (let i = rowIndex; i < this.OutSlice.length; i++) {
|
| | |
| | | barcode = arrOutSlice[i].barcode;
|
| | | rowspans += 1;
|
| | | } else {
|
| | |
|
| | | break;
|
| | | }
|
| | | }
|
| | |
| | | }
|
| | | });
|
| | | },
|
| | | //45秒复位倒数计时
|
| | | CountDown() {
|
| | | //50秒倒数计时
|
| | | let count = 45;
|
| | | let timer = setInterval(
|
| | | () => {
|
| | | if (this.EmergencyStop == true) {
|
| | | this.dialogFormCountDown = false;
|
| | | clearInterval(timer);
|
| | | this.PromptSize = 250;
|
| | | this.CountDowns = "EMERGENCY \n STOP";
|
| | | this.CountDowns = "0";
|
| | | } else {
|
| | | if (count > 0) {
|
| | | this.PromptSize = 500;
|
| | | this.CountDowns = count;
|
| | | count--;
|
| | | this.CountDowns = count;
|
| | | this.dialogFormCountDown = true;
|
| | | }
|
| | | else {
|
| | | this.PromptSize = 250;
|
| | | this.CountDowns = "Waiting \n for \n reset";
|
| | | if(this.reset==true){
|
| | | this.PromptSize = 200;
|
| | | this.CountDowns = "Waiting for reset";
|
| | | if (this.reset == true) {
|
| | | clearInterval(timer);
|
| | | this.dialogFormCountDown = false;
|
| | | }
|
| | |
| | | },
|
| | | 1000
|
| | | );
|
| | | this.dialogFormCountDown = true;
|
| | |
|
| | | },
|
| | | FrameStateUpdate(frameno,framestate){
|
| | | if(framestate == 1){
|
| | | framestate=0;
|
| | | }else{
|
| | | framestate=1;
|
| | | }
|
| | | FrameStateUpdate(frameno,framestate).then(res=>{
|
| | | if(res.data.message == 200){
|
| | | this.$message.success("Operation successful");
|
| | | }
|
| | | });
|
| | | }
|
| | | }
|
| | | }
|
| | |
| | | System.err.println("An error occurred while writing string to PLC: " + e.getMessage());
|
| | | }
|
| | | }
|
| | |
|
| | |
|
| | |
|
| | | public void writeBitandrenwuToPLC(JSONArray messageArray, List<String> addresses, int index) {
|
| | | try {
|
| | | // 检查索引是否有效
|
| | | if (messageArray.getJSONArray(index).size() > 0) {
|
| | | // 获取消息数组
|
| | | JSONArray jsonArray = messageArray.getJSONArray(index);
|
| | | // 创建一个布尔值列表
|
| | | List<Boolean> sValue = new ArrayList<>();
|
| | | // 遍历消息数组
|
| | | for (int i = 0; i < jsonArray.size(); i++) {
|
| | | // 获取消息数组中的值
|
| | | Object value = jsonArray.get(i);
|
| | | // 检查值是否有效
|
| | | if (value != null && !value.toString().equals("null")) {
|
| | | try {
|
| | | // 移除非数字和数字字符
|
| | | String cleanedValue = value.toString().replaceAll("[^0-9-]", "");
|
| | | // 解析为布尔值
|
| | | boolean val = "1".equals(cleanedValue.trim());
|
| | | // 将布尔值添加到布尔值列表中
|
| | | sValue.add(val);
|
| | | System.out.println("messageValue: " + Arrays.asList(val) + " added to the list");
|
| | | if(sValue.get(1)){
|
| | |
|
| | | }
|
| | |
|
| | |
|
| | |
|
| | | } catch (NumberFormatException e) {
|
| | | // 如果无法解析为 boolean 类型,则忽略该部分
|
| | | System.err.println("Could not parse value: " + value);
|
| | | }
|
| | | }
|
| | | }
|
| | | // 检查布尔值列表是否为空
|
| | | if (!sValue.isEmpty()) {
|
| | |
|
| | | // 调用 S7control.getinstance().WriteBit 方法将布尔值列表写入地址列表
|
| | | S7control.getinstance().WriteBit(addresses, sValue);
|
| | | System.out.println("Values " + sValue + " written to PLC at address " + addresses);
|
| | | }
|
| | | }
|
| | | } catch (Exception e) {
|
| | | System.err.println("An error occurred while writing bit to PLC: " + e.getMessage());
|
| | | }
|
| | | }
|
| | |
|
| | |
|
| | |
|
| | | public short[] convertBooleanListToShortArray(List<Boolean> booleanList) {
|
| | | short[] shortArray = new short[booleanList.size()];
|
| | | for (int i = 0; i < booleanList.size(); i++) {
|
| | | boolean value = booleanList.get(i);
|
| | | shortArray[i] = value ? (short) 1 : (short) 0;
|
| | | }
|
| | | return shortArray;
|
| | | }
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | | }
|
| | |
| | | // \\ TODO Auto-generated catch block |
| | | e.printStackTrace(); |
| | | } |
| | | if (S7control.getinstance().CheckConnected() == true) { |
| | | spianService = WebSocketServer.applicationContext.getBean(SpianService.class); |
| | | spianMapper = WebSocketServer.applicationContext.getBean(SpianMapper.class); |
| | | jdbcConnections = WebSocketServer.applicationContext.getBean(JdbcConnections.class); |
| | |
| | | |
| | | // 判断当前是否有未执行的任务 |
| | | int outnum = spianMapper.SelectOutSliceshu(); |
| | | int cageoutsum=spianMapper.Selectcageout(3); |
| | | // 当没有任务执行并且出片车空闲时 |
| | | if (outnum == 0 && outstate == true && Plchome.isAllowQueue == true) { |
| | | if (outnum == 0 && outstate == true && Plchome.isAllowQueue == true&&cageoutsum==0) { |
| | | // 判断铝框出片队列表是否有待出片的玻璃 |
| | | String outglassid = spianMapper.SelectOutSlice(); |
| | | if (outglassid != null) { |
| | |
| | | spianService.overtask(B02glassid.toString());// 完成任务 |
| | | S7control.getinstance().WriteWord("DB106.62", (short) 0);// 恢复B02小车应答改为0 |
| | | System.out.println("汇报时B02|" + B02glassid); |
| | | boolean yingda = spianService.listbool("DB106.62");// b01汇报 |
| | | System.out.println("汇报时B01|第"+aaa+"次"+ B02glassid+"应答"+yingda); |
| | | boolean yingda = spianService.listbool("DB106.62");// b02汇报 |
| | | System.out.println("汇报时B02|第"+aaa+"次"+ B02glassid+"应答"+yingda); |
| | | } |
| | | |
| | | // 获取DO1数据 |
| | |
| | | |
| | | } |
| | | } |
| | | } |
| | | |
| | | } |
| | |
| | | // 写入A02 |
| | | customS7Control.WriteWordToPLC(messageArray, addresses2, 1); |
| | | |
| | | |
| | | // 写入B01 |
| | | customS7Control.WriteWordToPLC(messageArray, addresses3, 2); |
| | | |
| | |
| | | addresses2.add("DB100.118");
|
| | | addresses2.add("DB100.192");
|
| | |
|
| | | addresses2.add("DB103.22");
|
| | | addresses2.add("DB106.14");
|
| | | List<Short> arraylist2 = S7control.getinstance().readWords(addresses2);
|
| | |
|
| | | List<String> addresses9 = new ArrayList<>();
|
| | |
| | | |
| | | import cn.hutool.json.JSONArray; |
| | | import cn.hutool.json.JSONObject; |
| | | import com.example.springboot.controller.HomeController; |
| | | import com.example.springboot.mapper.HomeMapper; |
| | | import org.apache.commons.io.FileUtils; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import com.example.springboot.service.StorageCageService; |
| | | |
| | | import java.io.*; |
| | | import java.util.ArrayList; |
| | |
| | | |
| | | |
| | | public class PlcParameter2 extends Thread { |
| | | |
| | | // 用于存储应用程序的配置信息 |
| | | private Configuration config; |
| | | |
| | | @Autowired |
| | | StorageCageService storageCageService; |
| | | // 创建一个自定义的 S7 控制器消息处理器对象 |
| | | MessageHandler customS7Control = new MessageHandler(); |
| | | // 用于存储应用程序的配置信息 |
| | | private Configuration config; |
| | | |
| | | |
| | | public PlcParameter2() throws IOException { |
| | |
| | | } catch (InterruptedException e) { |
| | | e.printStackTrace(); |
| | | } |
| | | |
| | | storageCageService = WebSocketServer.applicationContext.getBean(StorageCageService.class); |
| | | // id |
| | | List<String> addressList1 = Arrays.asList(config.getProperty("Parameter2.id").split(",")); |
| | | |
| | | List<String> paramlist = S7control.getinstance().readStrings(addressList1); |
| | | |
| | | // System.out.println(paramlist); |
| | | |
| | | //手动状态 |
| | | List<String> addresses = Arrays.asList(config.getProperty("Parameter2.state").split(",")); |
| | |
| | | |
| | | |
| | | List<Short> data4 = S7control.getinstance().readWords(addresses4); |
| | | |
| | | //System.out.println(data); |
| | | // List<Long> TIME2 = Collections.singletonList(S7control.getinstance().readtime("DB100.194")); |
| | | // System.out.println("addressList:" + TIME2); |
| | | |
| | |
| | | // List<Short> data4 = new ArrayList<>(Arrays.asList(values4)); |
| | | // |
| | | // |
| | | // JSONObject jsonObject = new JSONObject(); |
| | | // short[] params = new short[data2.size()]; |
| | | // for (int i = 0; i < data2.size(); i++) { |
| | | // boolean value = data2.get(i); |
| | | // params[i] = value ? (short) 1 : (short) 0; |
| | | // } |
| | | //// |
| | | // short[] anniuparams = new short[anniuread.size()]; |
| | | // for (int i = 0; i < anniuread.size(); i++) { |
| | | // boolean value = anniuread.get(i); |
| | | // anniuparams[i] = value ? (short) 1 : (short) 0; |
| | | // } |
| | | //boolean转为0 1 |
| | | short[] params = customS7Control.convertBooleanListToShortArray(data2); |
| | | short[] anniuparams = customS7Control.convertBooleanListToShortArray(anniuread); |
| | | JSONObject jsonObject = new JSONObject(); |
| | | short[] params = new short[data2.size()]; |
| | | for (int i = 0; i < data2.size(); i++) { |
| | | boolean value = data2.get(i); |
| | | params[i] = value ? (short) 1 : (short) 0; |
| | | } |
| | | // |
| | | short[] anniuparams = new short[anniuread.size()]; |
| | | for (int i = 0; i < anniuread.size(); i++) { |
| | | boolean value = anniuread.get(i); |
| | | anniuparams[i] = value ? (short) 1 : (short) 0; |
| | | } |
| | | |
| | | jsonObject.append("params", params); |
| | | jsonObject.append("params", paramlist); |
| | | jsonObject.append("params", data); |
| | |
| | | // jsonObject.set("message", "Hello, Parameter2!"); |
| | | // sendwServer.sendMessage(jsonObject.toString()); |
| | | // } |
| | | |
| | | // HomeController controller = new HomeController(); |
| | | ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("Parameter2"); |
| | | if (sendwServer != null) { |
| | | for (WebSocketServer webserver : sendwServer) { |
| | |
| | | |
| | | if (webserver != null) { |
| | | |
| | | |
| | | List<String> messages = webserver.getMessages(); |
| | | |
| | | |
| | | if (!messages.isEmpty()) { |
| | | // 将最后一个消息转换为整数类型的列表 |
| | |
| | | // System.out.println("lastMessage:" + lastMessage); |
| | | JSONArray messageArray = new JSONArray(lastMessage); |
| | | //清除ID |
| | | customS7Control.writeBitToPLC(messageArray, addressList0, 0); |
| | | // customS7Control.writeBitToPLC(messageArray, addressList0, 0); |
| | | |
| | | |
| | | try { |
| | | // 检查索引是否有效 |
| | | if (messageArray.getJSONArray(0).size() > 0) { |
| | | // 获取消息数组 |
| | | JSONArray jsonArray = messageArray.getJSONArray(0); |
| | | // 创建一个布尔值列表 |
| | | List<Boolean> sValue = new ArrayList<>(); |
| | | // 遍历消息数组 |
| | | for (int i = 0; i < jsonArray.size(); i++) { |
| | | // 获取消息数组中的值 |
| | | Object value = jsonArray.get(i); |
| | | // 检查值是否有效 |
| | | if (value != null && !value.toString().equals("null")) { |
| | | try { |
| | | // 移除非数字和数字字符 |
| | | String cleanedValue = value.toString().replaceAll("[^0-9-]", ""); |
| | | // 解析为布尔值 |
| | | boolean val = "1".equals(cleanedValue.trim()); |
| | | // 将布尔值添加到布尔值列表中 |
| | | sValue.add(val); |
| | | System.out.println("messageValue: " + Arrays.asList(val) + " added to the list"); |
| | | |
| | | |
| | | } catch (NumberFormatException e) { |
| | | // 如果无法解析为 boolean 类型,则忽略该部分 |
| | | System.err.println("Could not parse value: " + value); |
| | | } |
| | | } |
| | | } |
| | | //完成出片 |
| | | boolean containsOne = data.stream().anyMatch(number -> number == 1); |
| | | for (int i = 1; i <= 5; i++) { |
| | | boolean value = sValue.get(i); |
| | | String id = paramlist.get(i); |
| | | //判断是否自动状态 |
| | | if (!containsOne) { |
| | | //判断id是否包含数字 |
| | | if (id.matches(".*\\d.*")) { |
| | | //判断清楚id是否true |
| | | if (value) { |
| | | System.out.println(id); |
| | | switch (i) { |
| | | case 1: |
| | | storageCageService.UpdateTask(2, 0, paramlist.get(i)); |
| | | break; |
| | | case 2: |
| | | case 3: |
| | | case 4: |
| | | case 5: |
| | | storageCageService.UpdateTask(3, 0, paramlist.get(i)); |
| | | break; |
| | | default: |
| | | // 处理索引值不在范围内的情况 |
| | | break; |
| | | } |
| | | } |
| | | } |
| | | |
| | | } |
| | | // 检查布尔值列表是否为空 |
| | | if (!sValue.isEmpty()) { |
| | | |
| | | // 调用 S7control.getinstance().WriteBit 方法将布尔值列表写入地址列表 |
| | | S7control.getinstance().WriteBit(addressList0, sValue); |
| | | System.out.println("Values " + sValue + " written to PLC at address " + addressList0); |
| | | } |
| | | } |
| | | } |
| | | } catch (Exception e) { |
| | | System.err.println("An error occurred while writing bit to PLC: " + e.getMessage()); |
| | | } |
| | | |
| | | |
| | | //急停 |
| | | customS7Control.writeBitToPLC(messageArray, niuanaddressList3, 1); |
| | | // customS7Control.writeBitToPLC(messageArray, niuanaddressList3, 1); |
| | | |
| | | try { |
| | | // 检查索引是否有效 |
| | | if (messageArray.getJSONArray(1).size() > 0) { |
| | | // 获取消息数组 |
| | | JSONArray jsonArray = messageArray.getJSONArray(1); |
| | | // 创建一个布尔值列表 |
| | | List<Boolean> sValue = new ArrayList<>(); |
| | | // 遍历消息数组 |
| | | for (int i = 0; i < jsonArray.size(); i++) { |
| | | // 获取消息数组中的值 |
| | | Object value = jsonArray.get(i); |
| | | // 检查值是否有效 |
| | | if (value != null && !value.toString().equals("null")) { |
| | | try { |
| | | // 移除非数字和数字字符 |
| | | String cleanedValue = value.toString().replaceAll("[^0-9-]", ""); |
| | | // 解析为布尔值 |
| | | boolean val = "1".equals(cleanedValue.trim()); |
| | | // 将布尔值添加到布尔值列表中 |
| | | sValue.add(val); |
| | | System.out.println("messageValue: " + Arrays.asList(val) + " added to the list"); |
| | | |
| | | |
| | | } catch (NumberFormatException e) { |
| | | // 如果无法解析为 boolean 类型,则忽略该部分 |
| | | System.err.println("Could not parse value: " + value); |
| | | } |
| | | } |
| | | } |
| | | // 终止进片任务 |
| | | boolean Value1 = sValue.get(0); |
| | | boolean Value2 = sValue.get(1); |
| | | |
| | | if (Value1) { |
| | | storageCageService.EndTask(0); |
| | | |
| | | } |
| | | if (Value2) { |
| | | storageCageService.EndTask(1); |
| | | |
| | | } |
| | | // 检查布尔值列表是否为空 |
| | | if (!sValue.isEmpty()) { |
| | | |
| | | // 调用 S7control.getinstance().WriteBit 方法将布尔值列表写入地址列表 |
| | | S7control.getinstance().WriteBit(niuanaddressList3, sValue); |
| | | System.out.println("Values " + sValue + " written to PLC at address " + niuanaddressList3); |
| | | } |
| | | } |
| | | } catch (Exception e) { |
| | | System.err.println("An error occurred while writing bit to PLC: " + e.getMessage()); |
| | | } |
| | | |
| | | |
| | | //存片等待延迟 |
| | | customS7Control.Writetime(messageArray, timeout2, 2); |
| | | |
| | |
| | | FileInputStream fileInputStream; |
| | | try { |
| | | // 从文件中读取字节数据存入 fileInputStream |
| | | fileInputStream = new FileInputStream("D:/canadames/Alarm.json"); |
| | | fileInputStream = new FileInputStream("D:/code/canadames/Alarm.json"); |
| | | // 读取 fileInputStream 中字节并将其解码为字符 |
| | | InputStreamReader inputStreamReader = new InputStreamReader(fileInputStream, "utf-8"); |
| | | // 提高读取效率,在 BufferedReader 内包装 InputStreamReader |
| | |
| | | package com.example.springboot.component;
|
| | |
|
| | | import cn.hutool.json.JSONArray;
|
| | | import cn.hutool.json.JSONObject;
|
| | |
|
| | | import java.io.IOException;
|
| | | import java.sql.SQLException;
|
| | | import java.util.ArrayList;
|
| | | import java.util.Arrays;
|
| | | import java.util.List;
|
| | |
|
| | | import com.example.springboot.service.*;
|
| | | import org.springframework.beans.factory.annotation.Autowired;
|
| | |
|
| | | import com.example.springboot.entity.Out_slice;
|
| | |
| | | import com.example.springboot.entity.alarmmg;
|
| | | import com.example.springboot.mapper.HomeMapper;
|
| | | import com.example.springboot.mapper.SpianMapper;
|
| | | import com.example.springboot.service.JdbcConnections;
|
| | | import com.example.springboot.service.North_Glass_Buffer1Service;
|
| | | import com.example.springboot.service.OutSliceServive;
|
| | | import com.example.springboot.service.SpianService;
|
| | |
|
| | | public class Plchome extends Thread {
|
| | |
|
| | |
| | | private JdbcConnections dbserve;
|
| | | // 出片队列是否允许出片
|
| | | public static Boolean isAllowQueue = true;
|
| | | public static Boolean isAllowReordering = true;
|
| | | //出片队列警告
|
| | | public static Boolean isQueueWarning=false;
|
| | | // 铝框id
|
| | | public static String FrameNo;
|
| | | public static String FrameNo = "";
|
| | | // 是否需要手动确认玻璃
|
| | | public static Boolean isConfirm = false;
|
| | |
|
| | | private Configuration config;
|
| | |
|
| | | private StorageCageService storageCageService;
|
| | |
|
| | | public Plchome() throws IOException {
|
| | | config = new Configuration("config.properties");
|
| | | }
|
| | |
|
| | | // public static Map b=new HashMap<>();
|
| | | // b.put()
|
| | |
| | | JSONObject jsonObject = new JSONObject();
|
| | |
|
| | | // 注入mapper
|
| | |
|
| | | homeMapper = WebSocketServer.applicationContext.getBean(HomeMapper.class);
|
| | | spianMapper = WebSocketServer.applicationContext.getBean(SpianMapper.class);
|
| | | spianService = WebSocketServer.applicationContext.getBean(SpianService.class);
|
| | |
| | | // 查询报警信息
|
| | | List<alarmmg> alarmmg = homeMapper.SelectAlarmmgInfo();
|
| | | jsonObject.append("alarmmg", alarmmg);
|
| | | // 读去Plc进片车与出片车位置W
|
| | | List<String> addressList = new ArrayList<String>();
|
| | | addressList.add("DB106.12");
|
| | | addressList.add("DB106.0");
|
| | | List<Short> paramlist = S7control.getinstance().ReadWord(addressList);
|
| | | if (paramlist != null) {
|
| | | jsonObject.append("params", paramlist);
|
| | | }
|
| | | // 获取进片车状态
|
| | | List<Short> datas1ListState = S7control.getinstance().ReadWord("DB106.8",
|
| | | 1);// 获取进片车状态
|
| | | boolean exist1 = datas1ListState.contains((short) 0);
|
| | | jsonObject.append("zhuangtai", exist1);
|
| | | // 获取进片玻璃信息
|
| | | List<Short> inglassInfo = S7control.getinstance().ReadWord("DB106.24", 1);
|
| | | if (inglassInfo != null) {
|
| | | if (inglassInfo.size() > 0)
|
| | | jsonObject.append("loadglassheight", inglassInfo.get(0) * 70);
|
| | | }
|
| | |
|
| | | // 伍 获取进是否有待确认的玻璃id
|
| | | String queid = spianMapper.Selectqueueid();
|
| | | int state = spianMapper.Selectqueuestate();
|
| | |
| | | // 获取出片队列信息
|
| | | List<Out_slice> listoutslice = outSliceServive.SelectProductionqueue();
|
| | | jsonObject.append("listoutslice", listoutslice);
|
| | | // 获取当前出片队列状态
|
| | | // 获取当前出片队列出片状态
|
| | | jsonObject.append("isAllowQueue", Plchome.isAllowQueue);
|
| | |
|
| | | // 获取铝框idDB106.DBW64
|
| | | // String frameno=spianService.queGlassid("DB103.270",14).toString();
|
| | | // if(frameno!=Plchome.FrameNo&&frameno!=""){
|
| | | // Plchome.FrameNo=frameno;
|
| | | // }
|
| | | // try {
|
| | | // north_Glass_Buffer1Service.AddOutSliceS(Plchome.FrameNo);
|
| | | // } catch (SQLException e) {
|
| | | // // TODO Auto-generated catch block
|
| | | // e.printStackTrace();
|
| | | // }
|
| | | //获取出片队列警告状态
|
| | | jsonObject.append("isQueueWarning", Plchome.isQueueWarning);
|
| | | // 获取当前出片队列调序状态
|
| | | jsonObject.append("isAllowReordering", Plchome.isAllowReordering);
|
| | | // 是否需要人工确认上片玻璃
|
| | | jsonObject.append("isConfirm", isConfirm);
|
| | | // String framenos="X21763329601FB";
|
| | | // if (!framenos.equals(Plchome.FrameNo)) {
|
| | | // Plchome.FrameNo = framenos;
|
| | | // try {
|
| | | // north_Glass_Buffer1Service.AddOutSliceS(Plchome.FrameNo);
|
| | | // } catch (SQLException e) {
|
| | | // // TODO Auto-generated catch block
|
| | | // e.printStackTrace();
|
| | | // }
|
| | | // }
|
| | | if (S7control.getinstance().CheckConnected() == true) {
|
| | | // 读去Plc进片车与出片车位置W
|
| | | List<String> addressList = new ArrayList<String>();
|
| | | addressList.add("DB106.12");
|
| | | addressList.add("DB106.0");
|
| | | List<Short> paramlist = S7control.getinstance().ReadWord(addressList);
|
| | | if (paramlist != null) {
|
| | | jsonObject.append("params", paramlist);
|
| | | }
|
| | | // 获取进片车状态
|
| | | List<Short> datas1ListState = S7control.getinstance().ReadWord("DB106.8",
|
| | | 1);// 获取进片车状态
|
| | | if (datas1ListState != null) {
|
| | | boolean exist1 = datas1ListState.contains((short) 0);
|
| | | jsonObject.append("zhuangtai", exist1);
|
| | | }
|
| | |
|
| | | // 获取进片请求状态
|
| | | List<Short> D01Request = S7control.getinstance().ReadWord("DB106.24", 1);
|
| | | boolean D01RequestState = D01Request.contains((short) 1);
|
| | | // boolean D01RequestState =true;
|
| | | jsonObject.append("D01RequestState", D01RequestState);
|
| | | // 获取进片玻璃信息
|
| | | List<Short> inglassInfo = S7control.getinstance().ReadWord("DB106.24", 1);
|
| | | if (inglassInfo != null) {
|
| | | if (inglassInfo.size() > 0) {
|
| | | jsonObject.append("loadglassheight", inglassInfo.get(0) * 70);
|
| | | }
|
| | |
|
| | | // 复位倒计时
|
| | | // 地址104.9.6
|
| | | List<Boolean> countdown = S7control.getinstance().ReadBits("DB104.9.6", 1);
|
| | | for (Boolean countdowns : countdown) {
|
| | | jsonObject.append("countdown", countdowns);
|
| | | }
|
| | | // jsonObject.append("countdown", true);
|
| | | // 复位完成信号
|
| | | List<Boolean> resets = S7control.getinstance().ReadBits("DB103.284", 1);
|
| | | for (Boolean reset : resets) {
|
| | | jsonObject.append("reset", reset);
|
| | | }
|
| | | }
|
| | |
|
| | | // 是否急停
|
| | | List<Boolean> emergencystops = S7control.getinstance().ReadBits("DB104.5.1", 1);
|
| | | for (Boolean emergencystop : emergencystops) {
|
| | | jsonObject.append("emergencystop", emergencystop);
|
| | | // 获取铝框idDB106.DBW64,添加到出片队列
|
| | | String frameno = spianService.queGlassid("DB103.270", 14).toString();
|
| | | // String frameno="X12345611002GV";
|
| | | // frameno="X21763329601FB";
|
| | | if (!frameno.equals(Plchome.FrameNo)) {
|
| | | Plchome.FrameNo = frameno;
|
| | | try {
|
| | | north_Glass_Buffer1Service.AddOutSliceS(Plchome.FrameNo);
|
| | | } catch (SQLException e) {
|
| | | // TODO Auto-generated catch block
|
| | | e.printStackTrace();
|
| | | }
|
| | | }
|
| | |
|
| | | // 获取进片请求状态
|
| | | List<Short> D01Request = S7control.getinstance().ReadWord("DB106.24", 1);
|
| | | boolean D01RequestState = D01Request.contains((short) 1);
|
| | | // boolean D01RequestState =true;
|
| | | jsonObject.append("D01RequestState", D01RequestState);
|
| | |
|
| | | // 复位倒计时
|
| | | // 地址104.9.6
|
| | | List<Boolean> countdown = S7control.getinstance().ReadBits("DB104.9.6", 1);
|
| | | for (Boolean countdowns : countdown) {
|
| | | jsonObject.append("countdown", countdowns);
|
| | | }
|
| | | // jsonObject.append("countdown", true);
|
| | | // 复位完成信号ss
|
| | | List<Boolean> resetss = S7control.getinstance().ReadBits("DB103.284", 1);
|
| | | for (Boolean reset : resetss) {
|
| | | jsonObject.append("reset", reset);
|
| | | }
|
| | |
|
| | | // 是否急停
|
| | | List<Boolean> emergencystops = S7control.getinstance().ReadBits("DB104.5.1", 1);
|
| | | for (Boolean emergencystop : emergencystops) {
|
| | | jsonObject.
|
| | | append("emergencystop", emergencystop);
|
| | | }
|
| | | |
| | |
|
| | | // // 终止继续按钮
|
| | | // List<String> niuanaddressList3 = Arrays.asList(config.getProperty("Parameter2.stop").split(","));
|
| | | // List<Boolean> anniuread = S7control.getinstance().readBits(niuanaddressList3);
|
| | | // // Boolean[] value4 = { false, false};
|
| | | // // List<Boolean> anniuread = new ArrayList<>(Arrays.asList(value4));
|
| | | // Boolean[] value5 = { true };
|
| | | // List<Boolean> resets = new ArrayList<>(Arrays.asList(value5));
|
| | | // short[] anniuparams = new short[anniuread.size()];
|
| | | // for (int i = 0; i < anniuread.size(); i++) {
|
| | | // boolean value = anniuread.get(i);
|
| | | // anniuparams[i] = value ? (short) 1 : (short) 0;
|
| | | // }
|
| | |
|
| | | // short[] resets2 = new short[resets.size()];
|
| | | // for (int i = 0; i < resets.size(); i++) {
|
| | | // boolean value = resets.get(i);
|
| | | // resets2[i] = value ? (short) 1 : (short) 0;
|
| | | // }
|
| | |
|
| | | // for (short number : resets2) {
|
| | |
|
| | | // if (number == 1) {
|
| | | // jsonObject.append("Abort", anniuparams);
|
| | |
|
| | | // }
|
| | |
|
| | | // }
|
| | | }
|
| | |
|
| | | // 铝框线交互
|
| | |
| | | // }
|
| | | // S7control.getinstance().WriteWord("铝框翻转发送地址", (short)send);
|
| | | // }
|
| | |
|
| | | storageCageService = WebSocketServer.applicationContext.getBean(StorageCageService.class);
|
| | | dbserve = WebSocketServer.applicationContext.getBean(JdbcConnections.class);
|
| | | boolean dbconnected = false;
|
| | | try {
|
| | |
| | | if (sendwServer != null) {
|
| | | for (WebSocketServer webserver : sendwServer) {
|
| | | webserver.sendMessage(jsonObject.toString());
|
| | |
|
| | | if (webserver != null) {
|
| | |
|
| | | List<String> messages = webserver.getMessages();
|
| | |
|
| | | if (!messages.isEmpty()) {
|
| | | // // 将最后一个消息转换为整数类型的列表
|
| | | // String lastMessage = messages.get(messages.size() - 1);
|
| | | // System.out.println("lastMessage:" + lastMessage);
|
| | | // JSONArray messageArray = new JSONArray(lastMessage);
|
| | | |
| | | // try {
|
| | | // // 检查索引是否有效
|
| | | // if (messageArray.getJSONArray(0).size() > 0) {
|
| | | // // 获取消息数组
|
| | | // JSONArray jsonArray = messageArray.getJSONArray(0);
|
| | | // // 创建一个布尔值列表
|
| | | // List<Boolean> sValue = new ArrayList<>();
|
| | | // // 遍历消息数组
|
| | | // for (int i = 0; i < jsonArray.size(); i++) {
|
| | | // // 获取消息数组中的值
|
| | | // Object value = jsonArray.get(i);
|
| | | // // 检查值是否有效
|
| | | // if (value != null && !value.toString().equals("null")) {
|
| | | // try {
|
| | | // // 移除非数字和数字字符
|
| | | // String cleanedValue = value.toString().replaceAll("[^0-9-]", "");
|
| | | // // 解析为布尔值
|
| | | // boolean val = "1".equals(cleanedValue.trim());
|
| | | // // 将布尔值添加到布尔值列表中
|
| | | // sValue.add(val);
|
| | | // System.out.println(
|
| | | // "messageValue: " + Arrays.asList(val) + " added to the list");
|
| | |
|
| | | // } catch (NumberFormatException e) {
|
| | | // // 如果无法解析为 boolean 类型,则忽略该部分
|
| | | // System.err.println("Could not parse value: " + value);
|
| | | // }
|
| | | // }
|
| | | // }
|
| | | // // 终止进片任务
|
| | | // boolean Value1 = sValue.get(0);
|
| | | // boolean Value2 = sValue.get(1);
|
| | |
|
| | | // if (Value1) {
|
| | | // storageCageService.EndTask(0);
|
| | |
|
| | | // }
|
| | | // if (Value2) {
|
| | | // storageCageService.EndTask(1);
|
| | |
|
| | | // }
|
| | | // // 检查布尔值列表是否为空
|
| | | // if (!sValue.isEmpty()) {
|
| | |
|
| | | // // 调用 S7control.getinstance().WriteBit 方法将布尔值列表写入地址列表
|
| | | // S7control.getinstance().WriteBit(niuanaddressList3, sValue);
|
| | | // System.out.println(
|
| | | // "Values " + sValue + " written to PLC at address " + niuanaddressList3);
|
| | | // }
|
| | | // }
|
| | | // } catch (Exception e) {
|
| | | // System.err.println("An error occurred while writing bit to PLC: " + e.getMessage());
|
| | | // }
|
| | | webserver.clearMessages();
|
| | | }
|
| | |
|
| | | }
|
| | |
|
| | | }
|
| | | }
|
| | |
|
| | | }
|
| | | }
|
| | | }
|
| | |
| | | } |
| | | return instance; |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 关闭西门子s7通讯连接 |
| | | */ |
| | | public void CloseS7client() { |
| | | if (s7PLC == null) |
| | | s7PLC.close(); |
| | | s7PLC.checkConnected(); |
| | | } |
| | | |
| | | /** |
| | | * s7通讯连接状态 |
| | | */ |
| | | public boolean CheckConnected() { |
| | | return s7PLC.checkConnected(); |
| | | } |
| | | |
| | | /** |
| | |
| | | if (s7PLC==null) |
| | | return null; |
| | | // List<String> addresslist = GetAddressList(address, count, 16); |
| | | return s7PLC.readByte(address,count); |
| | | |
| | | try { |
| | | return s7PLC.readByte(address, count); |
| | | }catch (Exception e) { |
| | | // 处理异常 |
| | | System.out.println("读取 " + address + " 失败:" + e.getMessage()); |
| | | return null; |
| | | } |
| | | |
| | | } |
| | | |
| | | /** |
| | |
| | | } |
| | | |
| | | //读取时间 |
| | | public Long readtime(String address) { |
| | | if (s7PLC==null) |
| | | return null; |
| | | public Long readtime(String address) { |
| | | if (s7PLC == null) |
| | | return null; |
| | | try { |
| | | return s7PLC.readTime(address); |
| | | } catch (Exception e) { |
| | | System.out.println("读取 " + address + " 失败:" + e.getMessage()); |
| | | return null; |
| | | } |
| | | } |
| | | |
| | | |
| | | public void writetime(String address, long datas) { |
| | | if (s7PLC == null) |
| | |
| | | // |
| | | System.out.println("启动完成"); |
| | | |
| | | new PlcHold().start(); |
| | | new PlcHold().start(); |
| | | |
| | | new Plchome().start(); |
| | | |
| | | new Plcalarm().start(); |
| | | new Plcalarm().start(); |
| | | |
| | | new Plcsign().start(); |
| | | new Plcsign().start(); |
| | | |
| | | new Plcstate().start(); |
| | | new PlcPositioning1().start(); |
| | | |
| | | new Plcstate().start(); |
| | | new PlcPositioning1().start(); |
| | | new PlcParameter2().start(); |
| | | |
| | | new PlcParameter2().start(); |
| | | new PLCAutomaticParameterSetting().start(); |
| | | |
| | | new PLCAutomaticParameterSetting().start(); |
| | | |
| | | new PlcManualonePosition().start(); |
| | | new PlcManualonePosition2().start(); |
| | | new PlcServoManualone().start(); |
| | | new PLCManualJog().start(); |
| | | new PlcManualonePosition().start(); |
| | | new PlcManualonePosition2().start(); |
| | | new PlcServoManualone().start(); |
| | | new PLCManualJog().start(); |
| | | new Plclog().start(); |
| | | } |
| | | } |
| | |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | | import javax.servlet.http.Cookie; |
| | | import javax.servlet.http.HttpServletRequest; |
| | | |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.context.annotation.Bean; |
| | | |
| | | import com.example.springboot.mapper.HomeMapper; |
| | | import com.example.springboot.mapper.SpianMapper; |
| | | import com.example.springboot.security.constant.SystemConstant; |
| | | import com.example.springboot.security.util.JwtUtil; |
| | | import com.example.springboot.security.util.SecurityUtil; |
| | | import com.example.springboot.service.HomeService; |
| | | import com.example.springboot.service.JdbcConnections; |
| | | import com.example.springboot.service.North_Glass_Buffer1Service; |
| | | import com.example.springboot.service.OutSliceServive; |
| | | import com.example.springboot.service.PermissionService; |
| | | import com.example.springboot.service.SpianService; |
| | | import com.example.springboot.service.StorageCageService; |
| | | |
| | | import cn.hutool.core.util.StrUtil; |
| | | |
| | | import com.example.springboot.common.Result; |
| | | import com.example.springboot.component.Plchome; |
| | | import com.example.springboot.component.S7control; |
| | | import com.example.springboot.entity.CarPosition; |
| | | import com.example.springboot.entity.StorageCage; |
| | | import com.example.springboot.entity.User; |
| | | import com.example.springboot.entity.alarmmg; |
| | | import com.example.springboot.entity.north_glass_buffer1; |
| | | import com.example.springboot.entity.Out_slice; |
| | | import com.example.springboot.entity.Permission; |
| | | import com.example.springboot.entity.Queue; |
| | | import com.example.springboot.entity.RolePermission; |
| | | |
| | | import org.springframework.web.bind.annotation.*; |
| | | import org.springframework.web.context.request.RequestContextHolder; |
| | | import org.springframework.web.context.request.ServletRequestAttributes; |
| | | |
| | | @RestController |
| | | @RequestMapping("/home") |
| | | public class HomeController { |
| | | @Autowired |
| | | |
| | | HomeMapper homeMapper; |
| | | |
| | | @Autowired |
| | |
| | | |
| | | @Autowired |
| | | OutSliceServive outSliceServive; |
| | | |
| | | @Autowired |
| | | StorageCageService storageCageService; |
| | | |
| | | @Autowired |
| | | North_Glass_Buffer1Service north_Glass_Buffer1Service; |
| | |
| | | // 查询理片笼使用情况 |
| | | @GetMapping("/load") |
| | | public Result selectAll() { |
| | | // storageCageService.EndTask(1); |
| | | // UpdateTask(2,0,"X12345610402GV"); |
| | | List<StorageCage> storageCagelist = homeMapper.selectAll(); |
| | | Map<String, Object> map = new HashMap<>(); |
| | | map.put("list", storageCagelist); |
| | |
| | | // 查询理片笼玻璃情况 |
| | | @GetMapping("/loads") |
| | | public Result selectRack() { |
| | | |
| | | List<StorageCage> storageCagelist1 = homeMapper.selectRack1(); |
| | | List<StorageCage> storageCagelist2 = homeMapper.selectRack2(); |
| | | List<StorageCage> storageCagelist3 = homeMapper.selectRack3(); |
| | |
| | | return Result.success(map); |
| | | } |
| | | |
| | | // 手动完成进/出片任务 |
| | | // 手动完成进/出片任务 终止进片/出片任务 |
| | | @GetMapping("/UpdateTask") |
| | | public Result UpdateTask(Integer types, Integer shelfrack, String glassid) { |
| | | storageCageService.UpdateTask(types, shelfrack, glassid); |
| | | Map<String, Object> map = new HashMap<>(); |
| | | homeMapper.UpdateTask(types, glassid); |
| | | // StorageCage glass = homeMapper.SelectGlassInfo(glassid); |
| | | if (types == 0) { |
| | | homeMapper.UpdateCageTask1(glassid); |
| | | // S7control.getinstance().WriteWord("DB105.16", (short) 0); |
| | | } else { |
| | | // spianMapper.UpdataOutCage1(glass.getGlassWidth(), glass.getCage(), glass.getCell()); |
| | | homeMapper.DeleteByGlassID(glassid); |
| | | // S7control.getinstance().WriteWord("DB105.18", (short) 0); |
| | | } |
| | | map.put("message3", "200"); |
| | | return Result.success(map); |
| | | } |
| | | |
| | | //终止进片/出片任务 |
| | | @GetMapping("/EndTask") |
| | | public Result EndTask(int types) { |
| | | storageCageService.EndTask(types); |
| | | |
| | | Map<String, Object> map = new HashMap<>(); |
| | | map.put("message3", "200"); |
| | | return Result.success(map); |
| | | } |
| | |
| | | // 手动删除理片笼玻璃 |
| | | @GetMapping("/DeleteByGlassID") |
| | | public Result DeleteByGlassID(String glassid) { |
| | | StorageCage glassinfor = homeMapper.SelectGlassInfo(glassid); |
| | | spianMapper.UpdataOutCage1(glassinfor.getGlassWidth(), glassinfor.getCage(), glassinfor.getCell()); |
| | | homeMapper.DeleteByGlassID(glassid); |
| | | outSliceServive.DeleteByGlassIDs(glassid); |
| | | Map<String, Object> map = new HashMap<>(); |
| | | map.put("message3", "200"); |
| | | return Result.success(map); |
| | |
| | | String position = jdbcConnections.SelectPositionByFrameBarcode(north_glass_buffer1.getFrameBarcode()); |
| | | if (position != null) { |
| | | int sequence = homeMapper.SelectMaxSquence(); |
| | | |
| | | homeMapper.AddOutSliceS(glassid, flip, north_glass_buffer1.getFrameBarcode(), |
| | | north_glass_buffer1.getglasslengthmm().toString(), north_glass_buffer1.getglassheightmm().toString(), |
| | | sequence, position, (short)0); |
| | | sequence, position, (short) 0, north_glass_buffer1.getordernumber(), north_glass_buffer1.getlistnumber(), |
| | | north_glass_buffer1.getboxnumber(), north_glass_buffer1.getglasslength().toString(), |
| | | north_glass_buffer1.getglassheight().toString()); |
| | | map.put("message2", "200"); |
| | | } else { |
| | | map.put("message2", "300"); |
| | |
| | | } else { |
| | | map.put("message2", "400"); |
| | | } |
| | | |
| | | } else { |
| | | map.put("message2", "500"); |
| | | } |
| | |
| | | map.put("message", "200"); |
| | | } |
| | | } |
| | | return Result.success(map); |
| | | return Result.success(map); |
| | | } |
| | | |
| | | // 查询玻璃信息 |
| | |
| | | @PostMapping("/DeleteProductionQueueGlass") |
| | | public Result DeleteProductionQueueGlass(String FrameNo) { |
| | | homeMapper.CompleteQueueByFrameNo(FrameNo); |
| | | |
| | | Map<String, Object> map = new HashMap<>(); |
| | | map.put("message", "200"); |
| | | return Result.success(map); |
| | |
| | | |
| | | // 添加铝框id对应玻璃到出片队列 |
| | | @PostMapping("/AddOutSliceS") |
| | | public Result AddOutSliceS(@RequestBody String[][] AluminumFrames) throws SQLException { |
| | | outSliceServive.AddOutSliceS(AluminumFrames); |
| | | public Result AddOutSliceS(String FrameNo) throws SQLException { |
| | | //public Result AddOutSliceS(@RequestBody String[][] AluminumFrames) throws SQLException { |
| | | north_Glass_Buffer1Service.AddOutSliceS(FrameNo); |
| | | Map<String, Object> map = new HashMap<>(); |
| | | map.put("message", "200"); |
| | | return Result.success(map); |
| | | } |
| | | |
| | | // 修改出片队列状态与出片队列调序 |
| | | // 修改出片队列出片状态 |
| | | @PostMapping("/isAllowQueues") |
| | | public Result isAllowQueues(Boolean isAllowQueue, @RequestBody List<Out_slice> out_slice) { |
| | | Plchome.isAllowQueue = isAllowQueue; |
| | | if (isAllowQueue == true) { |
| | | // if (isAllowQueue == true) { |
| | | // for (Out_slice out_slice2 : out_slice) { |
| | | // homeMapper.UpdateOutSliceSequence(out_slice2.getGlassId(), out_slice2.getSequence()); |
| | | // } |
| | | // } |
| | | Map<String, Object> map = new HashMap<>(); |
| | | map.put("message", "200"); |
| | | return Result.success(map); |
| | | } |
| | | |
| | | // 修改出片队列调序状态与出片队列调序 |
| | | @PostMapping("/isAllowReorderings") |
| | | public Result isAllowReorderings(Boolean isAllowReordering, @RequestBody List<Out_slice> out_slice) { |
| | | Plchome.isAllowReordering = isAllowReordering; |
| | | if (isAllowReordering == true) { |
| | | for (Out_slice out_slice2 : out_slice) { |
| | | homeMapper.UpdateOutSliceSequence(out_slice2.getGlassId(), out_slice2.getSequence()); |
| | | } |
| | |
| | | @PostMapping("/CompleteQueue") |
| | | public Result CompleteQueue(String id, String frameid, String glassid) { |
| | | return outSliceServive.CompleteQueue(id, frameid, glassid); |
| | | |
| | | } |
| | | |
| | | // 手动完成任务 |
| | | @PostMapping("/FrameStateUpdate") |
| | | public Result FrameStateUpdate(String frameno, String framestate) { |
| | | return outSliceServive.FrameStateUpdate(frameno, framestate); |
| | | } |
| | | |
| | | |
| | | } |
| | |
| | | private String time;//修改时间 |
| | | private int sequence;//出片顺序 |
| | | private String position;//玻璃摆放位置 |
| | | private String orderId;//玻璃id |
| | | private String listId;//集合id |
| | | private String boxId;//箱子id |
| | | private double glasswidthmm;//玻璃宽mm |
| | | private double glassheightmm;//玻璃高mm |
| | | private String position_x;//x坐标 |
| | | private int framestate;//y坐标 |
| | | |
| | | public String getPosition() { |
| | | return position; |
| | |
| | | public void setSequence(int sequence) { |
| | | this.sequence = sequence; |
| | | } |
| | | |
| | | public String getOrderId() { |
| | | return orderId; |
| | | } |
| | | |
| | | public void setOrderId(String orderId) { |
| | | this.orderId = orderId; |
| | | } |
| | | |
| | | public Double getGlassWidthMm() { |
| | | return glasswidthmm; |
| | | } |
| | | |
| | | public void setGlassWidthMm(Double glasswidthmm) { |
| | | this.glasswidthmm = glasswidthmm; |
| | | } |
| | | |
| | | public Double getGlassHeightMm() { |
| | | return glassheightmm; |
| | | } |
| | | |
| | | public void setGlassHeightMm(Double glassheightmm) { |
| | | this.glassheightmm = glassheightmm; |
| | | } |
| | | public String getListId() { |
| | | return listId; |
| | | } |
| | | |
| | | public void setListno(String listId) { |
| | | this.listId = listId; |
| | | } |
| | | |
| | | public String getBoxId() { |
| | | return boxId; |
| | | } |
| | | |
| | | public void setBoxno(String boxId) { |
| | | this.boxId = boxId; |
| | | } |
| | | |
| | | public int getFrameState() { |
| | | return framestate; |
| | | } |
| | | |
| | | public void SetFrameState(int framestate) { |
| | | this.framestate = framestate; |
| | | } |
| | | } |
| | |
| | | package com.example.springboot.entity; |
| | | |
| | | import java.util.Comparator; |
| | | |
| | | //客户玻璃信息表 |
| | | public class north_glass_buffer1 { |
| | | private Integer id; //自增id |
| | | private String ordernumber;//订单id |
| | | private String listnumber;//集合id |
| | | private String boxnumber;//箱子id |
| | | private String barcode;//玻璃id |
| | | private double glasslength;//玻璃宽 |
| | | private double glassheight;//玻璃高 |
| | | private double glasslengthmm;//玻璃宽mm |
| | | private double glassheightmm;//玻璃高mm |
| | | private Integer id; // 自增id |
| | | private String ordernumber;// 订单id |
| | | private String listnumber;// 集合id |
| | | private String boxnumber;// 箱子id |
| | | private String barcode;// 玻璃id |
| | | private double glasslength;// 玻璃宽 |
| | | private double glassheight;// 玻璃高 |
| | | private double glasslengthmm;// 玻璃宽mm |
| | | private double glassheightmm;// 玻璃高mm |
| | | |
| | | private String glassoutside;// |
| | | private String glassinside;// |
| | | private String glassbetween;// |
| | | private String itemtype;// |
| | | private String slotnumber;//格子 |
| | | private String slotnumber;// 格子 |
| | | private String datemodified;// |
| | | private String datecreated;// |
| | | private String FrameBarcode;//铝框id |
| | | private String FrameBarcode;// 铝框id |
| | | |
| | | private StorageCage storageCage; |
| | | |
| | | public StorageCage storageCage; |
| | | |
| | | |
| | | |
| | | public void setstorageCage(StorageCage storageCage) { |
| | | this.storageCage = storageCage; |
| | | } |
| | | |
| | | |
| | | public StorageCage getstorageCage() { |
| | | return storageCage; |
| | | } |
| | | |
| | | |
| | | private Out_slice out_slice; |
| | | |
| | | |
| | | public void setOut_slice(Out_slice out_slice) { |
| | | this.out_slice = out_slice; |
| | | } |
| | | |
| | | |
| | | public Out_slice getOut_slice() { |
| | | return out_slice; |
| | | } |
| | |
| | | public Integer getId() { |
| | | return id; |
| | | } |
| | | |
| | | public String getordernumber() { |
| | | return ordernumber; |
| | | } |
| | | |
| | | public void setordernumber(String ordernumber) { |
| | | this.ordernumber = ordernumber; |
| | | } |
| | | |
| | | public String getlistnumber() { |
| | | return listnumber; |
| | | } |
| | | |
| | | public void setlistnumber(String listnumber) { |
| | | this.listnumber = listnumber; |
| | | } |
| | |
| | | public String getboxnumber() { |
| | | return boxnumber; |
| | | } |
| | | |
| | | public void setboxnumber(String boxnumber) { |
| | | this.boxnumber = boxnumber; |
| | | } |
| | | |
| | | |
| | | public String getbarcode() { |
| | | return barcode; |
| | | } |
| | | |
| | | public void setbarcode(String barcode) { |
| | | this.barcode = barcode; |
| | | } |
| | | |
| | | |
| | | public Double getglasslength() { |
| | | return glasslength; |
| | | } |
| | | |
| | | public void setglasslength(Double glasslength) { |
| | | this.glasslength = glasslength; |
| | | } |
| | |
| | | public Double getglassheight() { |
| | | return glassheight; |
| | | } |
| | | |
| | | public void setglassheight(Double glassheight) { |
| | | this.glassheight = glassheight; |
| | | } |
| | |
| | | public Double getglasslengthmm() { |
| | | return glasslengthmm; |
| | | } |
| | | |
| | | public void setglasslengthmm(Double glasslengthmm) { |
| | | this.glasslengthmm = glasslengthmm; |
| | | } |
| | |
| | | public Double getglassheightmm() { |
| | | return glassheightmm; |
| | | } |
| | | |
| | | public void setglassheightmm(Double glassheightmm) { |
| | | this.glassheightmm = glassheightmm; |
| | | } |
| | |
| | | public String getitemtype() { |
| | | return itemtype; |
| | | } |
| | | |
| | | public void setitemtype(String itemtype) { |
| | | this.itemtype = itemtype; |
| | | } |
| | | |
| | | public String getslotnumber() { |
| | | return slotnumber; |
| | | } |
| | | |
| | | public void setslotnumber(String slotnumber) { |
| | | this.slotnumber = slotnumber; |
| | | } |
| | | |
| | | public String getdatemodified() { |
| | | return datemodified; |
| | | } |
| | | |
| | | public void setdatemodified(String datemodified) { |
| | | this.datemodified = datemodified; |
| | | } |
| | | |
| | | public String getdatecreated() { |
| | | return datecreated; |
| | | } |
| | | |
| | | public void setdatecreated(String datecreated) { |
| | | this.datecreated = datecreated; |
| | | } |
| | | |
| | | public String getFrameBarcode() { |
| | | return FrameBarcode; |
| | | } |
| | | |
| | | public void setFrameBarcode(String FrameBarcode) { |
| | | this.FrameBarcode = FrameBarcode; |
| | | } |
| | | |
| | | |
| | | } |
| | |
| | | |
| | | import com.example.springboot.entity.CarPosition; |
| | | import com.example.springboot.entity.StorageCage; |
| | | import com.example.springboot.entity.StorageTask; |
| | | import com.example.springboot.entity.alarmmg; |
| | | import com.example.springboot.entity.north_glass_buffer1; |
| | | import com.example.springboot.entity.Out_slice; |
| | |
| | | // 查询5-1笼外层格子状态 |
| | | @Select("SELECT case when tier=1 then cage else 0 end as cage,case when tier=1 then state else 0 end as state,sum(case when tier=1 then glasswidth/2750*2 else 0 end) as glasswidth,sum(case when tier=2 then glasswidth/2750*2 else 0 end) as width from storage_cage where cage<=5 group by cage,cell order by cage desc,cell desc") |
| | | List<StorageCage> selectRack4(); |
| | | |
| | | |
| | | |
| | | // 根据任务类型查询当前正在出片,进片的玻璃信息 |
| | | @Select("select * from storage_cage where state=#{task_type}") |
| | |
| | | List<StorageCage> SelectCageInfo(String cage); |
| | | |
| | | // 手动完成出片任务修改笼子数据 |
| | | @Update("update storage_cage set state=0,glass_id=null,order_id=null,glasswidth=null,glassheight=null,glasswidthmm=null,glassheightmm=null,listid=null,boxid=null where glass_id=#{glassid}") |
| | | @Update("update storage_cage set state=0,glass_id=null,order_id=null,glasswidth=null,glassheight=null,glasswidthmm=null,glassheightmm=null,listid=null,boxid=null,FrameBarcode=null where glass_id=#{glassid}") |
| | | void DeleteByGlassID(String glassid); |
| | | |
| | | //查询小车位置 |
| | |
| | | @Select("select * from storage_cage where glass_id=#{glassid}") |
| | | StorageCage SelectStorageGlassById(String glassid); |
| | | |
| | | //根据玻璃id查询笼内玻璃信息 |
| | | @Select("select * from storage_cage where glass_id=#{glassid}") |
| | | List<StorageCage> SelectStoragesGlassById(String glassid); |
| | | |
| | | |
| | | // //根据玻璃id删除出片队列玻璃 |
| | | // @Update("update out_slice set state=4 where barcode=#{FrameNo} and (state=0 or state=1 or state=2)") |
| | |
| | | List<north_glass_buffer1> SelectAluminumFrameInfoById(String FrameBarcode); |
| | | |
| | | |
| | | //查询玻璃是否已存在于出片队列 |
| | | @Select("select * from out_slice where glassid=#{getbarcode} and (state=0 or state=1 or state=2 or state=3)") |
| | | //根据玻璃id查询出片队列信息 |
| | | @Select("select * from out_slice where glassid=#{getbarcode}") |
| | | Out_slice SelectQueueByglassid(String getbarcode); |
| | | |
| | | //添加出片队列 |
| | | @Insert("INSERT INTO out_slice( `glassId`, `barcode`, `glasswidth`, `glassheight`, `state`, `flip`, `sequence`, `time` ,`position`) VALUES ( #{glassid}, #{FrameNo}, #{glasslengthMm}, #{glassheightMm}, #{state}, #{flip}, #{sequence}, now(), #{position});") |
| | | void AddOutSliceS(String glassid, String flip, String FrameNo, String glasslengthMm, String glassheightMm, int sequence, String position, Short state); |
| | | @Insert("INSERT INTO out_slice( `glassId`, `barcode`, `glasswidth`, `glassheight`, `state`, `flip`, `sequence`, `time` ,`position` ,`orderid` ,`listid` ,`boxid` ,`glasswidthmm` ,`glassheightmm`) VALUES ( #{glassid}, #{FrameNo}, #{glasslengthMm}, #{glassheightMm}, #{state}, #{flip}, #{sequence}, now(), #{position}, #{orderid}, #{listid}, #{boxid}, #{glasswidth}, #{glassheight});") |
| | | void AddOutSliceS(String glassid, String flip, String FrameNo, String glasslengthMm, String glassheightMm, int sequence, String position, Short state,String orderid, String listid, String boxid, String glasswidth, String glassheight); |
| | | |
| | | //出片队列调序 |
| | | @Update("update out_slice set sequence=#{sequence} where glassid=#{glassId}") |
| | |
| | | //查询用户权限 |
| | | @Select("select rp.* from role_permission rp inner join user r on rp.role_id=r.role_id and r.username=#{username} and (permission_id=32 or permission_id=33 or permission_id=34 or permission_id=35)") |
| | | List<RolePermission> SelectPermissionByUserName(String username); |
| | | //完成出片任务 |
| | | @Update("update out_slice set state=2 where id=#{id}") |
| | | |
| | | //根据玻璃完成出片任务 |
| | | @Update("update out_slice set state=4 where id=#{id}") |
| | | void CompleteQueue(String id); |
| | | |
| | | //根据玻璃完成出片任务 |
| | | @Update("update out_slice set state=4 where id=#{id}") |
| | | void CompleteQueueByGlassId(String glassid); |
| | | |
| | | //查询铝框id对应玻璃完成数量 |
| | | @Select("select count(*) from out_slice where barcode=#{frameid} and state<2") |
| | | @Select("select count(*) from out_slice where barcode=#{frameid} and state!=4") |
| | | Short SelectCountByFrameNo(String frameid); |
| | | |
| | | //删除已完成的任务 |
| | | @Update("delete from out_slice where Barcode=#{frameid}") |
| | | @Delete("delete from out_slice where Barcode=#{frameid}") |
| | | void CompleteQueueByFrameNo(String frameid); |
| | | |
| | | //查询笼内格子剩余宽度 |
| | | @Select("Select width from storage_cage where cage=#{cage} and cell=#{cell} limit 1") |
| | | Double SelectCageWidth(short cage, short cell); |
| | | |
| | | //修改出片队列玻璃状态为缺失 |
| | | @Update("update out_slice set state=3 where glassId=#{glassid} and state<3") |
| | | void UpdateOutSliceGlass(String glassid); |
| | | |
| | | //查询未完成的任务 |
| | | @Select("select * from storage_task where task_state=0 and task_type=#{task_type}") |
| | | List<StorageTask> SelectTaskByState(int task_type); |
| | | |
| | | //修改出片队列铝框状态 |
| | | @Select("update out_slice set framestate=#{framestate} where barcode=#{frameno}") |
| | | void FrameStateUpdate(String frameno, String framestate); |
| | | |
| | | } |
| | |
| | | @Select("select COUNT(if(a.state1=0,cell,0))as cell,ROUND(id/2)as id from (select *,max(state)as state1 from storage_cage a GROUP BY cage,cell)as a where (a.cage=#{cage1}-1 or a.cage=#{cage1}+1)and if(a.cage<6,a.cage>0 and a.cage<6,a.cage>5) and disabled=0 GROUP BY cage ORDER BY cell desc LIMIT 1") |
| | | int selectCage(int cage1); |
| | | // 获取订单号排序的空订单笼子 |
| | | @Select("select a.cage,FrameBarcode,COUNT(if(a.order_id=#{orderids},a.order_id,null))as orderid,b.shu,c.shu2,a.cell,min(a.state)as state1,disabled,FrameBarcode from storage_cage a left join (select COUNT(*)shu,cage from storage_cage where order_id=#{orderids} GROUP BY cage)as b on a.cage=b.cage left join(select cage ,COUNT(glass_id)as shu2 from storage_cage GROUP BY cage)c on a.cage=c.cage where (order_id=#{orderids} or ''='') GROUP BY cage,cell HAVING state1=0 ORDER BY FrameBarcode=#{Fbarcode} desc,shu desc,shu2,cage asc; ") |
| | | @Select("select a.cage,FrameBarcode,COUNT(if(a.order_id=#{orderids},a.order_id,null))as orderid,b.shu,c.shu2,a.cell,min(a.state)as state1,disabled,FrameBarcode from storage_cage a left join (select COUNT(*)shu,cage from storage_cage where order_id=#{orderids} GROUP BY cage)as b on a.cage=b.cage left join(select cage ,COUNT(glass_id)as shu2 from storage_cage GROUP BY cage)c on a.cage=c.cage where (order_id=#{orderids} or ''='') GROUP BY cage,cell HAVING state1=0 ORDER BY (FrameBarcode=#{Fbarcode} or ''='') desc,shu desc,shu2,cage asc; ") |
| | | List<StorageCage> selectAll(String orderids,String Fbarcode); |
| | | |
| | | // 获取判断该格子是否需要把外片推入内片位置 |
| | |
| | | // 完成进片中的玻璃状态 |
| | | @Update("update storage_cage set state=#{state} where glass_id=#{glassid} and state=3;") |
| | | void UpdateCageOver(String glassid, int state); |
| | | |
| | | |
| | | @Update("update storage_cage set state=#{state} where glass_id=#{glassid} and state=2;") |
| | | void UpdateCageadd(String glassid, int state); |
| | | |
| | |
| | | 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};") |
| | | void UpdataAddCage2(String orderid, String glassid, north_glass_buffer1 glass, int cage, int cell, int id, |
| | | int state); |
| | | void UpdataAddCage2(String orderid, String glassid, north_glass_buffer1 glass, int cage, int cell, int id,int state); |
| | | |
| | | // 修改笼子信息(多片进片) |
| | | @Update("update storage_cage set state=#{state},glass_id=#{glassid},order_id=#{orderid},glasswidth=#{width} where cage=#{cage} and cell=#{cell} and tier=#{tier};") |
| | |
| | | void UpdataOutCage1(double width, int cage, int cell); |
| | | |
| | | // 调拨更换笼子信息 |
| | | @Update("update storage_cage as a,(select*from storage_cage b where b.cage=#{cage} and b.cell=#{cell} and b.tier=#{tier})as b set a.glass_id=b.glass_id,a.order_id=b.order_id,a.state=2,a.glasswidth=b.glasswidth,a.glassheight=b.glassheight,a.glasswidthmm=b.glasswidthmm,a.glassheightmm=b.glassheightmm,a.listid=b.listid,a.boxid=b.boxid where a.id=#{id1}") |
| | | @Update("update storage_cage as a,(select*from storage_cage b where b.cage=#{cage} and b.cell=#{cell} and b.tier=#{tier})as b set a.glass_id=b.glass_id,a.order_id=b.order_id,a.state=1,a.glasswidth=b.glasswidth,a.glassheight=b.glassheight,a.glasswidthmm=b.glasswidthmm,a.glassheightmm=b.glassheightmm,a.listid=b.listid,a.boxid=b.boxid,a.FrameBarcode=b.FrameBarcode where a.id=#{id1}") |
| | | void UpdateDBCage(int id1, int cage, int cell, int tier); |
| | | |
| | | // @Insert("insert into user(name, date, address, user_no) values (#{name}, |
| | |
| | | String SelectOrderout(); |
| | | |
| | | // 内外片调换 |
| | | @Update("update storage_cage as a,(select*from storage_cage b where b.cage=#{cage} and b.cell=#{cell} and b.tier=1)as b set a.glass_id=b.glass_id,a.order_id=b.order_id,a.state=1,a.glasswidth=b.glasswidth,a.glassheight=b.glassheight,a.glasswidthmm=b.glasswidthmm,a.glassheightmm=b.glassheightmm,a.listid=b.listid,a.boxid=b.boxid where a.cage=#{cage} and a.cell=#{cell} and a.tier=2") |
| | | @Update("update storage_cage as a,(select*from storage_cage b where b.cage=#{cage} and b.cell=#{cell} and b.tier=1)as b set a.glass_id=b.glass_id,a.order_id=b.order_id,a.state=1,a.glasswidth=b.glasswidth,a.glassheight=b.glassheight,a.glasswidthmm=b.glasswidthmm,a.glassheightmm=b.glassheightmm,a.listid=b.listid,a.boxid=b.boxid,a.FrameBarcode=b.FrameBarcode where a.cage=#{cage} and a.cell=#{cell} and a.tier=2") |
| | | void UpdateDBCage1(int cage, int cell); |
| | | |
| | | // 清除内片数据 |
| | | @Update("update storage_cage a set glass_id='',order_id='',state=0,glasswidth=0,glassheight=0,glasswidthmm=0,glassheightmm=0,listid=null,boxid=null where a.cage=#{cage} and a.cell=#{cell} and a.tier=1;") |
| | | @Update("update storage_cage a set glass_id=null,order_id=null,state=0,glasswidth=null,glassheight=null,glasswidthmm=null,glassheightmm=null,listid=null,boxid=null,FrameBarcode=null where a.cage=#{cage} and a.cell=#{cell} and a.tier=1;") |
| | | void UpdateDBCage2(int cage, int cell); |
| | | |
| | | // 判断是否有调拨完后出片的任务 |
| | |
| | | // 判断铝框出片表是否有玻璃正在出片中 |
| | | @Select("SELECT count(*) FROM `out_slice` where state=1;") |
| | | int SelectOutSliceshu(); |
| | | //判断是否有调拨任务未完成 |
| | | @Select("SELECT count(*) FROM `storage_cage` where state=#{state};") |
| | | int Selectcageout(int state); |
| | | |
| | | // 更新出片队列的任务状态 |
| | | @Update("update out_slice set state=#{state} where glassid=#{glassid} and state=1") |
| | | void OverOutSlice(String glassid, int state); |
| | | @Update("update out_slice set state=#{state} where glassid=#{glassid} and state=#{state2}") |
| | | void OverOutSlice(String glassid, int state,int state2); |
| | | |
| | | // 获取玻璃的铝框id |
| | | @Select("select barcode from out_slice where glassid=#{glassid};") |
| | |
| | | package com.example.springboot.service; |
| | | |
| | | import java.sql.SQLException; |
| | | import java.util.Collection; |
| | | import java.util.Comparator; |
| | | import java.util.List; |
| | | |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | import com.example.springboot.entity.StorageCage; |
| | | import com.example.springboot.entity.north_glass_buffer1; |
| | | import com.example.springboot.mapper.HomeMapper; |
| | | import java.util.Collections; |
| | | |
| | | @Service |
| | | public class North_Glass_Buffer1Service { |
| | |
| | | @Autowired |
| | | private JdbcConnections jdbcConnections; |
| | | |
| | | //获取玻璃是否在笼子,是否在出片队列 |
| | | class north_glass_buffer1Comparator implements Comparator<north_glass_buffer1> { |
| | | @Override |
| | | public int compare(north_glass_buffer1 n1, north_glass_buffer1 n2) {//对查询到的铝框对应的玻璃数据进行排序,将离出片位置近的,靠近笼子出片侧的玻璃排在前面 |
| | | if (n1.getstorageCage() != null) { |
| | | if (n2.getstorageCage() != null) { |
| | | int cageComparison = n2.getstorageCage().getCage().compareTo(n1.getstorageCage().getCage());//靠出片口近的笼子优先 |
| | | if (cageComparison != 0) { |
| | | return cageComparison; |
| | | } else { |
| | | int cellComparison = n2.getstorageCage().getCell().compareTo(n1.getstorageCage().getCell());//靠出片口近的格子优先 |
| | | if (cellComparison != 0) { |
| | | return cellComparison; |
| | | } else { |
| | | return n2.getstorageCage().getTier().compareTo(n1.getstorageCage().getTier());//靠出片口近的格子外层优先 |
| | | } |
| | | } |
| | | } else { |
| | | return -1; |
| | | } |
| | | |
| | | } else { |
| | | return 1; |
| | | } |
| | | |
| | | } |
| | | } |
| | | |
| | | // 获取玻璃是否在笼子,是否在出片队列 |
| | | public List<north_glass_buffer1> SelectAluminumFrameInfoById(String FrameBarcode) throws SQLException { |
| | | List<north_glass_buffer1> listAluminumFrame = jdbcConnections |
| | | .SelectGlassByGlassIdOrderIdFrameIdss(FrameBarcode); |
| | |
| | | north_glass_buffer1.setstorageCage(homeMapper.SelectStorageGlassById(north_glass_buffer1.getbarcode())); |
| | | north_glass_buffer1.setOut_slice(homeMapper.SelectQueueByglassid(north_glass_buffer1.getbarcode())); |
| | | } |
| | | // 对嵌套类的其中一列进行排序 |
| | | Collections.sort(listAluminumFrame, new north_glass_buffer1Comparator()); |
| | | return listAluminumFrame; |
| | | } |
| | | |
| | | //根据铝框id添加玻璃到出片队列 |
| | | public void AddOutSliceS(String FrameBarcode) throws SQLException{ |
| | | List<north_glass_buffer1> north_glass_buffer1s=SelectAluminumFrameInfoById(FrameBarcode); |
| | | // 根据铝框id添加玻璃到出片队列 |
| | | public void AddOutSliceS(String FrameBarcode) throws SQLException { |
| | | List<north_glass_buffer1> north_glass_buffer1s = SelectAluminumFrameInfoById(FrameBarcode); |
| | | String flip = jdbcConnections.SelectFlipByFrameBarcode(FrameBarcode); |
| | | String position =jdbcConnections.SelectPositionByFrameBarcode(FrameBarcode); |
| | | int sequence=homeMapper.SelectMaxSquence(); |
| | | |
| | | String position = jdbcConnections.SelectPositionByFrameBarcode(FrameBarcode); |
| | | int sequence = homeMapper.SelectMaxSquence(); |
| | | for (north_glass_buffer1 north_glass_buffer1 : north_glass_buffer1s) { |
| | | Short state=0; |
| | | if(north_glass_buffer1.getOut_slice()==null){ |
| | | if(north_glass_buffer1.getstorageCage()==null){ |
| | | state=3; |
| | | Short state = 0; |
| | | if (north_glass_buffer1.getOut_slice() == null) { |
| | | if (north_glass_buffer1.getstorageCage() == null) { |
| | | state = 3; |
| | | } |
| | | homeMapper.AddOutSliceS(north_glass_buffer1.getbarcode(), flip, FrameBarcode, north_glass_buffer1.getglasslengthmm().toString(), north_glass_buffer1.getglassheightmm().toString(), sequence, position, state); |
| | | sequence+=1; |
| | | homeMapper.AddOutSliceS(north_glass_buffer1.getbarcode(), flip, FrameBarcode, |
| | | north_glass_buffer1.getglasslengthmm().toString(), |
| | | north_glass_buffer1.getglassheightmm().toString(), sequence, position, state, |
| | | north_glass_buffer1.getordernumber(), north_glass_buffer1.getlistnumber(), |
| | | north_glass_buffer1.getboxnumber(), north_glass_buffer1.getglasslength().toString(), |
| | | north_glass_buffer1.getglassheight().toString()); |
| | | sequence += 1; |
| | | } |
| | | } |
| | | } |
| | | |
| | | |
| | | } |
| | |
| | | import java.util.Map; |
| | | |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.boot.autoconfigure.mongo.embedded.EmbeddedMongoProperties.Storage; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | import com.example.springboot.common.Result; |
| | | import com.example.springboot.component.S7control; |
| | | import com.example.springboot.entity.Out_slice; |
| | | import com.example.springboot.entity.StorageCage; |
| | | import com.example.springboot.mapper.HomeMapper; |
| | |
| | | private HomeMapper homeMapper; |
| | | @Autowired |
| | | private SpianMapper spianMapper; |
| | | |
| | | @Autowired |
| | | private JdbcConnections jdbcConnections; |
| | | SpianService spianService; |
| | | |
| | | |
| | | public void AddOutSliceS(String[][] AluminumFrames) throws SQLException { |
| | | int sequence = homeMapper.SelectMaxSquence(); |
| | | // int sequence = homeMapper.SelectMaxSquence(); |
| | | |
| | | // 添加到数据库 |
| | | for (String[] item : AluminumFrames) { |
| | | if (item[1] == "true") { |
| | | Short state=0; |
| | | String position = jdbcConnections.SelectPositionByFrameBarcode(item[3]); |
| | | homeMapper.AddOutSliceS(item[0], item[2], item[3], item[4], item[5], sequence, position,state ); |
| | | sequence += 1; |
| | | } |
| | | } |
| | | // for (String[] item : AluminumFrames) { |
| | | // if (item[1] == "true") { |
| | | // Short state=0; |
| | | // String position = jdbcConnections.SelectPositionByFrameBarcode(item[3]); |
| | | // homeMapper.AddOutSliceS(item[0], item[2], item[3], item[4], item[5], |
| | | // sequence, position,state ); |
| | | // sequence += 1; |
| | | // } |
| | | // } |
| | | } |
| | | |
| | | // 查询出片队列 |
| | | public List<Out_slice> SelectProductionqueue() { |
| | | List<Out_slice> listoutslice = homeMapper.SelectProductionqueue(); |
| | | for (Out_slice out_slice : listoutslice) { |
| | | out_slice.setstorageCage(homeMapper.SelectStorageGlassById(out_slice.getGlassId())); |
| | | } |
| | | // for (Out_slice out_slice : listoutslice) { |
| | | // out_slice.setstorageCage(homeMapper.SelectStorageGlassById(out_slice.getGlassId())); |
| | | // } |
| | | return listoutslice; |
| | | } |
| | | |
| | | // 完成出片任务 |
| | | public Result CompleteQueue(String id, String frameid, String glassid) { |
| | | homeMapper.CompleteQueue(id); |
| | | Short num = homeMapper.SelectCountByFrameNo(frameid); |
| | |
| | | homeMapper.CompleteQueueByFrameNo(frameid); |
| | | } |
| | | StorageCage storageCage = homeMapper.SelectGlassInfo(glassid); |
| | | if(storageCage!=null){ |
| | | if (storageCage != null&&storageCage.getState().equals("3")) { |
| | | spianMapper.UpdataOutCage1(storageCage.getGlassWidth(), storageCage.getCage(), storageCage.getCell()); |
| | | homeMapper.DeleteByGlassID(glassid); |
| | | } |
| | | homeMapper.DeleteByGlassID(glassid); |
| | | S7control.getinstance().WriteWord("DB105.12", (short) 0); |
| | | Map<String, Object> map = new HashMap<>(); |
| | | map.put("message", "200"); |
| | | return Result.success(map); |
| | | } |
| | | |
| | | // 确认后完成修改出片队列状态 |
| | | public void CompleteQueueByGlassId(String glassid) { |
| | | homeMapper.CompleteQueueByGlassId(glassid); |
| | | Out_slice outslice=homeMapper.SelectQueueByglassid(glassid); |
| | | Short num = homeMapper.SelectCountByFrameNo(outslice.getBarCode()); |
| | | if (num == 0) { |
| | | homeMapper.CompleteQueueByFrameNo(outslice.getBarCode()); |
| | | } |
| | | } |
| | | |
| | | //终止进片/出片 |
| | | public void StopTask(String glassid, int i) { |
| | | if (i == 0) {// 进片终止 |
| | | spianService.overtask(glassid); |
| | | DeleteByGlassIDs(glassid); |
| | | homeMapper.UpdateOutSliceGlass(glassid); |
| | | } else {// 出片终止 |
| | | spianMapper.UpdatetaskOut(glassid);//完成出片任务 |
| | | spianMapper.UpdataGlassCage(glassid, 0);// 清除出片格子玻璃信息 |
| | | spianMapper.UpdateCageOver(glassid, 0);// 更改笼子表出片状态 |
| | | homeMapper.UpdateOutSliceGlass(glassid);//修改出片队列此玻璃状态为缺失 |
| | | |
| | | } |
| | | } |
| | | |
| | | //删除笼内玻璃还原宽度 |
| | | public void DeleteByGlassIDs(String glassid) { |
| | | StorageCage glassinfor = homeMapper.SelectGlassInfo(glassid); |
| | | spianMapper.UpdataOutCage1(glassinfor.getGlassWidth(), glassinfor.getCage(), glassinfor.getCell()); |
| | | homeMapper.DeleteByGlassID(glassid); |
| | | } |
| | | |
| | | public Result FrameStateUpdate(String frameno, String framestate) { |
| | | homeMapper.FrameStateUpdate(frameno, framestate); |
| | | Map<String, Object> map = new HashMap<>(); |
| | | map.put("message", "200"); |
| | | return Result.success(map); |
| | | } |
| | | |
| | | } |
| | |
| | | spianMapper.UpdataAddCage1(widths, cage1, cells);// 减少格子宽度 |
| | | spianMapper.Inserttask(0, 0, 1000, ids, glassid.toString(), prctier);// 新增任务 |
| | | S7control.getinstance().WriteWord(adddresslist, datas); |
| | | System.out.println("出片任务|" + datas); |
| | | System.out.println("进片任务|" + datas); |
| | | |
| | | } else { |
| | | // 数据库修改笼子表新增一条玻璃 |
| | |
| | | spianMapper.UpdataAddCage1(widths, cage1, cells);// 减少格子宽度 |
| | | spianMapper.Inserttask(0, 0, 1000, ids, glassid.toString(), prctier);// 新增任务 |
| | | S7control.getinstance().WriteWord(adddresslist, datas); |
| | | System.out.println("出片任务|" + datas); |
| | | System.out.println("进片任务|" + datas); |
| | | |
| | | // S7control.getinstance().WriteByte("DB105.16",glassid); |
| | | } |
| | |
| | | datas.add((short) 1000); |
| | | datas.add((short) state); |
| | | datas.add((short) 1); |
| | | spianMapper.OverOutSlice(glassid, 1);// 更新出片队列任务状态为进行中 |
| | | spianMapper.OverOutSlice(glassid.toString(), 1,0);// 更新出片队列任务状态为进行中 |
| | | spianMapper.UpdataOutCage1(glasswidth, cage, cell);// 增加原格子宽度 |
| | | spianMapper.UpdataGlassCageState(glassid, 3);// 更改笼子表的玻璃状态 |
| | | spianMapper.UpdataGlassCageState(glassid.toString(), 3);// 更改笼子表的玻璃状态 |
| | | |
| | | spianMapper.Inserttask(1, 0, cageout.getId(), 1000, glassid, state);// 新增任务 |
| | | // int state = spianMapper.selectGlassState(cage, cell);//获取格子数量 |
| | |
| | | datas.add((short) 1000); |
| | | datas.add((short) 1); |
| | | datas.add((short) 1); |
| | | spianMapper.OverOutSlice(glassid, 1);// 更新出片队列任务状态为进行中 |
| | | spianMapper.OverOutSlice(glassid.toString(), 1,0);// 更新出片队列任务状态为进行中 |
| | | spianMapper.Inserttask(1, 0, cageout.getId(), 1000, glassid, 1);// 新增任务 |
| | | spianMapper.UpdataOutCage1(glasswidth, cage, cell);// 增加原格子宽度 |
| | | spianMapper.UpdataGlassCageState(glassid, 3);// 更改笼子表的玻璃状态 |
| | | spianMapper.OverOutSlice(glassid, 1);// 更新出片队列任务 |
| | | |
| | | System.out.println("出片任务|" + datas); |
| | | outmesid(glassid, "DB105.34");// 派发出片ID |
| | | S7control.getinstance().WriteWord(adddresslist, datas);// 派发出片车任务 |
| | |
| | | public void overtask(String glassid) { |
| | | |
| | | spianMapper.UpdatetaskOut(glassid.toString());// 完成上一次 出片或者进片任务 |
| | | spianMapper.OverOutSlice(glassid.toString(), 2);// 完成出片队列任务 |
| | | spianMapper.OverOutSlice(glassid.toString(), 2,1);// 完成出片队列任务 |
| | | spianMapper.UpdataGlassCage(glassid.toString(), 0);// 清除出片格子玻璃信息 |
| | | spianMapper.UpdateCageOver(glassid.toString(), 0);// 更改笼子表出片状态 |
| | | spianMapper.UpdateCageadd(glassid.toString(), 1);// 更改笼子表进片状态 |
New file |
| | |
| | | package com.example.springboot.service; |
| | | |
| | | import java.util.List; |
| | | |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | import com.example.springboot.entity.StorageCage; |
| | | import com.example.springboot.entity.StorageTask; |
| | | import com.example.springboot.mapper.HomeMapper; |
| | | |
| | | @Service |
| | | public class StorageCageService { |
| | | @Autowired |
| | | private HomeMapper homeMapper; |
| | | |
| | | @Autowired |
| | | private OutSliceServive outSliceServive; |
| | | |
| | | @Autowired |
| | | private SpianService spianService; |
| | | |
| | | public void EndTask(int types) { |
| | | if (types == 0) {// 终止进片任务 |
| | | List<StorageTask> cageList = homeMapper.SelectTaskByState(types); |
| | | for (StorageTask storageTask : cageList) { |
| | | outSliceServive.StopTask(storageTask.getGlassId(), types); |
| | | } |
| | | // 发送终止进片任务信号 |
| | | } else {// 终止出片任务 |
| | | List<StorageCage> storageCages = homeMapper.selectinout(3); |
| | | for (StorageCage storageCage : storageCages) { |
| | | List<StorageCage> storageCagess = homeMapper.SelectStoragesGlassById(storageCage.getGlassId()); |
| | | for (StorageCage storageCagez : storageCagess) { |
| | | if (storageCagez.getState().equals("2")) {// 调拨进片 |
| | | outSliceServive.StopTask(storageCagez.getGlassId(), 0); |
| | | } else {// 出片 |
| | | outSliceServive.StopTask(storageCagez.getGlassId(), types); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | public void UpdateTask(Integer types, Integer shelfrack, String glassid) { |
| | | if (types == 0) {// 完成进片 |
| | | spianService.overtask(glassid); |
| | | } else if (types == 1) {// 完成出片 |
| | | spianService.overtask(glassid); |
| | | } else if (types == 2) {// 终止进片任务 |
| | | outSliceServive.StopTask(glassid, 0); |
| | | // 发送终止进片任务信号 |
| | | } else {// 终止出片任务 |
| | | outSliceServive.StopTask(glassid, 1); |
| | | } |
| | | } |
| | | |
| | | } |
| | |
| | | <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> |
| | | <mapper namespace="com.example.springboot.mapper.device.DeviceMapper"> |
| | | |
| | | <resultMap id="myResultMap" type="com.example.springboot.entity.device.DeviceEntity"> |
| | | <!-- 根据你的实际情况定义结果映射 --> |
| | | <!-- 示例中将结果映射到实体类的属性 --> |
| | | <id property="id" column="id"/> |
| | | <result property="name" column="device_name"/> |
| | | <!-- 其他属性映射 --> |
| | | </resultMap> |
| | | <!-- <resultMap id="myResultMap" type="com.example.springboot.entity.device.DeviceEntity">--> |
| | | <!-- <!– 根据你的实际情况定义结果映射 –>--> |
| | | <!-- <!– 示例中将结果映射到实体类的属性 –>--> |
| | | <!-- <id property="id" column="id"/>--> |
| | | <!-- <result property="name" column="device_name"/>--> |
| | | <!-- <!– 其他属性映射 –>--> |
| | | <!-- </resultMap>--> |
| | | |
| | | <select id="selectAllDevices" resultMap="myResultMap"> |
| | | SELECT * |
| | | FROM device |
| | | </select> |
| | | <!-- <select id="selectAllDevices" resultMap="myResultMap">--> |
| | | <!-- SELECT *--> |
| | | <!-- FROM device--> |
| | | <!-- </select>--> |
| | | |
| | | <select id="callStoredProc" statementType="CALLABLE" resultMap="myResultMap"> |
| | | { call Your_Stored_Procedure( |
| | | #{id, mode=IN, jdbcType=VARCHAR}, |
| | | #{name, mode=IN, jdbcType=VARCHAR} |
| | | <!-- <select id="callStoredProc" statementType="CALLABLE" resultMap="myResultMap">--> |
| | | <!-- { call Your_Stored_Procedure(--> |
| | | <!-- #{id, mode=IN, jdbcType=VARCHAR},--> |
| | | <!-- #{name, mode=IN, jdbcType=VARCHAR}--> |
| | | |
| | | ) } |
| | | </select> |
| | | <!-- ) }--> |
| | | <!-- </select>--> |
| | | |
| | | <update id="updateDeviceName"> |
| | | UPDATE device SET |
| | | device_name = #{deviceName}, |
| | | address = #{address} |
| | | WHERE id = #{id} |
| | | </update> |
| | | <update id="updateMultipleDevices" parameterType="java.util.List"> |
| | | <foreach collection="list" item="device" separator=";"> |
| | | UPDATE device SET |
| | | device_name = #{device.deviceName}, |
| | | address = #{device.address} |
| | | WHERE id = #{device.id} |
| | | </foreach> |
| | | </update> |
| | | <!-- <update id="updateDeviceName">--> |
| | | <!-- UPDATE device SET--> |
| | | <!-- device_name = #{deviceName},--> |
| | | <!-- address = #{address}--> |
| | | <!-- WHERE id = #{id}--> |
| | | <!-- </update>--> |
| | | <!-- <update id="updateMultipleDevices" parameterType="java.util.List">--> |
| | | <!-- <foreach collection="list" item="device" separator=";">--> |
| | | <!-- UPDATE device SET--> |
| | | <!-- device_name = #{device.deviceName},--> |
| | | <!-- address = #{device.address}--> |
| | | <!-- WHERE id = #{device.id}--> |
| | | <!-- </foreach>--> |
| | | <!-- </update>--> |
| | | </mapper> |
| | |
| | | Target Server Version : 80022
|
| | | File Encoding : 65001
|
| | |
|
| | | Date: 11/12/2023 13:35:48
|
| | | Date: 20/12/2023 15:38:31
|
| | | */
|
| | |
|
| | | SET NAMES utf8mb4;
|
| | |
| | | `timeon` datetime(0) NULL DEFAULT NULL COMMENT '开始时间',
|
| | | `endTime` datetime(0) NULL DEFAULT NULL COMMENT '结束时间',
|
| | | PRIMARY KEY (`id`) USING BTREE
|
| | | ) ENGINE = InnoDB AUTO_INCREMENT = 1742 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = DYNAMIC;
|
| | | ) ENGINE = InnoDB AUTO_INCREMENT = 1990 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = DYNAMIC;
|
| | |
|
| | | -- ----------------------------
|
| | | -- Records of alarmmg
|
| | |
| | | INSERT INTO `alarmmg` VALUES (1739, 'A02 servo turn error', '2023-12-08 15:23:23', '2023-12-08 15:24:01');
|
| | | INSERT INTO `alarmmg` VALUES (1740, 'A01 servo travel error', '2023-12-08 15:23:55', '2023-12-08 15:23:59');
|
| | | INSERT INTO `alarmmg` VALUES (1741, 'A02 servo turn error', '2023-12-08 15:24:02', '2023-12-08 15:24:03');
|
| | | INSERT INTO `alarmmg` VALUES (1742, 'A01 servo turn error', '2023-12-13 09:55:07', '2023-12-13 10:15:12');
|
| | | INSERT INTO `alarmmg` VALUES (1743, 'A02 servo turn error', '2023-12-13 09:55:07', '2023-12-13 10:15:12');
|
| | | INSERT INTO `alarmmg` VALUES (1744, 'A01 servo travel error', '2023-12-13 10:50:47', '2023-12-13 10:51:29');
|
| | | INSERT INTO `alarmmg` VALUES (1745, 'A02 servo travel error', '2023-12-13 10:50:50', '2023-12-13 10:51:29');
|
| | | INSERT INTO `alarmmg` VALUES (1746, 'A02 servo travel error', '2023-12-13 10:52:03', '2023-12-13 10:54:11');
|
| | | INSERT INTO `alarmmg` VALUES (1747, 'A01 servo travel error', '2023-12-13 10:52:05', '2023-12-13 10:54:11');
|
| | | INSERT INTO `alarmmg` VALUES (1748, 'A01 servo turn error', '2023-12-13 10:54:33', '2023-12-13 10:55:09');
|
| | | INSERT INTO `alarmmg` VALUES (1749, 'A02 servo turn error', '2023-12-13 10:54:33', '2023-12-13 10:55:09');
|
| | | INSERT INTO `alarmmg` VALUES (1750, 'A02 servo travel error', '2023-12-13 10:54:44', '2023-12-13 10:55:10');
|
| | | INSERT INTO `alarmmg` VALUES (1751, 'A01 servo travel error', '2023-12-13 10:54:50', '2023-12-13 10:55:10');
|
| | | INSERT INTO `alarmmg` VALUES (1752, 'A01 servo travel error', '2023-12-13 10:55:44', '2023-12-13 10:56:09');
|
| | | INSERT INTO `alarmmg` VALUES (1753, 'A02 servo travel error', '2023-12-13 10:55:47', '2023-12-13 10:56:09');
|
| | | INSERT INTO `alarmmg` VALUES (1754, 'A01 servo travel error', '2023-12-13 10:56:43', '2023-12-13 10:58:29');
|
| | | INSERT INTO `alarmmg` VALUES (1755, 'A02 servo travel error', '2023-12-13 10:56:46', '2023-12-13 10:58:29');
|
| | | INSERT INTO `alarmmg` VALUES (1756, 'A01 servo turn error', '2023-12-13 10:58:29', '2023-12-13 10:58:30');
|
| | | INSERT INTO `alarmmg` VALUES (1757, 'A01 servo travel error', '2023-12-13 10:59:26', '2023-12-13 10:59:44');
|
| | | INSERT INTO `alarmmg` VALUES (1758, 'A02 servo travel error', '2023-12-13 10:59:26', '2023-12-13 10:59:44');
|
| | | INSERT INTO `alarmmg` VALUES (1759, 'A01 servo turn error', '2023-12-13 10:59:44', '2023-12-13 10:59:47');
|
| | | INSERT INTO `alarmmg` VALUES (1760, 'A01 conveyor right safety alarm', '2023-12-13 11:19:58', '2023-12-13 11:20:01');
|
| | | INSERT INTO `alarmmg` VALUES (1761, 'A01 conveyor right safety alarm', '2023-12-13 11:20:10', '2023-12-13 11:20:12');
|
| | | INSERT INTO `alarmmg` VALUES (1762, '1# buffer safety alarm', '2023-12-13 11:20:11', '2023-12-13 11:20:13');
|
| | | INSERT INTO `alarmmg` VALUES (1763, 'A01 conveyor right safety alarm', '2023-12-13 11:26:44', '2023-12-13 11:26:47');
|
| | | INSERT INTO `alarmmg` VALUES (1764, 'More glass than known', '2023-12-13 11:26:51', '2023-12-13 11:27:46');
|
| | | INSERT INTO `alarmmg` VALUES (1765, 'A01 servo travel error', '2023-12-13 11:29:12', '2023-12-13 11:29:15');
|
| | | INSERT INTO `alarmmg` VALUES (1766, 'A02 servo travel error', '2023-12-13 11:29:14', '2023-12-13 11:29:15');
|
| | | INSERT INTO `alarmmg` VALUES (1767, 'A01 servo turn error', '2023-12-13 11:29:15', '2023-12-13 11:29:30');
|
| | | INSERT INTO `alarmmg` VALUES (1768, 'A02 servo turn error', '2023-12-13 11:29:15', '2023-12-13 11:29:30');
|
| | | INSERT INTO `alarmmg` VALUES (1769, 'A01 conveyor right safety alarm', '2023-12-13 11:30:35', '2023-12-13 11:30:37');
|
| | | INSERT INTO `alarmmg` VALUES (1770, 'A01 conveyor right safety alarm', '2023-12-13 11:30:46', '2023-12-13 11:30:49');
|
| | | INSERT INTO `alarmmg` VALUES (1771, '1# buffer safety alarm', '2023-12-13 11:30:46', '2023-12-13 11:30:50');
|
| | | INSERT INTO `alarmmg` VALUES (1772, '2# buffer safety alarm', '2023-12-13 11:35:31', '2023-12-13 11:35:34');
|
| | | INSERT INTO `alarmmg` VALUES (1773, 'A02 conveyor Left safety alarm', '2023-12-13 11:35:32', '2023-12-13 11:35:34');
|
| | | INSERT INTO `alarmmg` VALUES (1774, 'More glass than known', '2023-12-13 11:35:45', '2023-12-13 11:45:23');
|
| | | INSERT INTO `alarmmg` VALUES (1775, 'More glass than known', '2023-12-13 11:47:33', '2023-12-13 11:48:58');
|
| | | INSERT INTO `alarmmg` VALUES (1776, 'A01 servo turn error', '2023-12-13 11:48:59', '2023-12-13 11:49:29');
|
| | | INSERT INTO `alarmmg` VALUES (1777, 'A02 servo turn error', '2023-12-13 11:48:59', '2023-12-13 11:49:29');
|
| | | INSERT INTO `alarmmg` VALUES (1778, 'A02 servo travel error', '2023-12-13 11:49:20', '2023-12-13 11:49:23');
|
| | | INSERT INTO `alarmmg` VALUES (1779, 'A01 servo travel error', '2023-12-13 11:49:22', '2023-12-13 11:49:23');
|
| | | INSERT INTO `alarmmg` VALUES (1780, 'A01 servo travel error', '2023-12-14 09:30:09', '2023-12-14 10:07:16');
|
| | | INSERT INTO `alarmmg` VALUES (1781, 'A02 servo travel error', '2023-12-14 09:30:09', '2023-12-14 10:07:16');
|
| | | INSERT INTO `alarmmg` VALUES (1782, 'emergency stop alarm', '2023-12-14 10:07:16', '2023-12-14 10:07:18');
|
| | | INSERT INTO `alarmmg` VALUES (1783, 'A01 servo travel error', '2023-12-14 10:07:51', '2023-12-14 10:07:55');
|
| | | INSERT INTO `alarmmg` VALUES (1784, 'A02 servo travel error', '2023-12-14 10:07:54', '2023-12-14 10:07:55');
|
| | | INSERT INTO `alarmmg` VALUES (1785, 'A01 servo turn error', '2023-12-14 10:07:55', '2023-12-14 10:08:02');
|
| | | INSERT INTO `alarmmg` VALUES (1786, 'A02 servo turn error', '2023-12-14 10:07:55', '2023-12-14 10:07:56');
|
| | | INSERT INTO `alarmmg` VALUES (1787, 'emergency stop alarm', '2023-12-14 10:14:10', '2023-12-14 10:18:21');
|
| | | INSERT INTO `alarmmg` VALUES (1788, 'A01 servo turn error', '2023-12-14 10:18:36', '2023-12-14 10:19:26');
|
| | | INSERT INTO `alarmmg` VALUES (1789, 'A02 servo turn error', '2023-12-14 10:18:36', '2023-12-14 10:19:26');
|
| | | INSERT INTO `alarmmg` VALUES (1790, 'A01 servo travel error', '2023-12-14 10:18:54', '2023-12-14 10:19:42');
|
| | | INSERT INTO `alarmmg` VALUES (1791, 'A02 servo turn error', '2023-12-14 10:37:57', '2023-12-14 10:40:21');
|
| | | INSERT INTO `alarmmg` VALUES (1792, 'emergency stop alarm', '2023-12-14 10:40:21', '2023-12-14 10:40:31');
|
| | | INSERT INTO `alarmmg` VALUES (1793, 'A02 servo turn error', '2023-12-14 10:41:47', '2023-12-14 10:51:01');
|
| | | INSERT INTO `alarmmg` VALUES (1794, 'A02 servo travel error', '2023-12-14 10:44:01', '2023-12-14 10:44:10');
|
| | | INSERT INTO `alarmmg` VALUES (1795, 'A02 servo travel error', '2023-12-14 10:44:12', '2023-12-14 10:44:53');
|
| | | INSERT INTO `alarmmg` VALUES (1796, 'emergency stop alarm', '2023-12-14 10:51:01', '2023-12-14 10:53:59');
|
| | | INSERT INTO `alarmmg` VALUES (1797, 'D01 VFD error', '2023-12-14 10:53:59', '2023-12-14 10:54:55');
|
| | | INSERT INTO `alarmmg` VALUES (1798, 'D02 VFD error', '2023-12-14 10:53:59', '2023-12-14 10:54:55');
|
| | | INSERT INTO `alarmmg` VALUES (1799, 'D03 VFD error', '2023-12-14 10:53:59', '2023-12-14 10:54:55');
|
| | | INSERT INTO `alarmmg` VALUES (1800, 'D04 VFD error', '2023-12-14 10:53:59', '2023-12-14 10:54:55');
|
| | | INSERT INTO `alarmmg` VALUES (1801, 'D05 VFD error', '2023-12-14 10:53:59', '2023-12-14 10:54:55');
|
| | | INSERT INTO `alarmmg` VALUES (1802, 'D06 VFD error', '2023-12-14 10:53:59', '2023-12-14 10:54:54');
|
| | | INSERT INTO `alarmmg` VALUES (1803, 'B01 VFD error', '2023-12-14 10:53:59', '2023-12-14 10:54:55');
|
| | | INSERT INTO `alarmmg` VALUES (1804, 'B02 VFD error', '2023-12-14 10:53:59', '2023-12-14 10:54:55');
|
| | | INSERT INTO `alarmmg` VALUES (1805, 'A02 servo turn error', '2023-12-14 10:53:59', '2023-12-14 10:54:53');
|
| | | INSERT INTO `alarmmg` VALUES (1806, 'A01 servo travel error', '2023-12-14 10:53:59', '2023-12-14 10:54:54');
|
| | | INSERT INTO `alarmmg` VALUES (1807, 'A02 servo travel error', '2023-12-14 10:53:59', '2023-12-14 10:54:54');
|
| | | INSERT INTO `alarmmg` VALUES (1808, 'emergency stop alarm', '2023-12-14 10:54:53', '2023-12-14 10:55:04');
|
| | | INSERT INTO `alarmmg` VALUES (1809, 'A01 servo turn error', '2023-12-14 10:55:56', '2023-12-14 10:56:00');
|
| | | INSERT INTO `alarmmg` VALUES (1810, 'A02 servo turn error', '2023-12-14 10:55:56', '2023-12-14 11:20:58');
|
| | | INSERT INTO `alarmmg` VALUES (1811, 'emergency stop alarm', '2023-12-14 11:20:58', '2023-12-14 11:21:24');
|
| | | INSERT INTO `alarmmg` VALUES (1812, 'emergency stop alarm', '2023-12-14 11:23:01', '2023-12-14 11:23:03');
|
| | | INSERT INTO `alarmmg` VALUES (1813, 'A01 servo travel error', '2023-12-14 11:23:40', '2023-12-14 11:23:49');
|
| | | INSERT INTO `alarmmg` VALUES (1814, 'A02 servo travel error', '2023-12-14 11:23:40', '2023-12-14 11:23:49');
|
| | | INSERT INTO `alarmmg` VALUES (1815, 'A01 servo turn error', '2023-12-14 11:23:49', '2023-12-14 11:29:17');
|
| | | INSERT INTO `alarmmg` VALUES (1816, 'A02 servo turn error', '2023-12-14 11:23:49', '2023-12-14 11:29:17');
|
| | | INSERT INTO `alarmmg` VALUES (1817, 'D01 VFD error', '2023-12-14 11:29:17', '2023-12-14 11:30:29');
|
| | | INSERT INTO `alarmmg` VALUES (1818, 'D02 VFD error', '2023-12-14 11:29:17', '2023-12-14 11:30:29');
|
| | | INSERT INTO `alarmmg` VALUES (1819, 'D03 VFD error', '2023-12-14 11:29:17', '2023-12-14 11:30:29');
|
| | | INSERT INTO `alarmmg` VALUES (1820, 'D04 VFD error', '2023-12-14 11:29:17', '2023-12-14 11:30:29');
|
| | | INSERT INTO `alarmmg` VALUES (1821, 'D05 VFD error', '2023-12-14 11:29:17', '2023-12-14 11:30:29');
|
| | | INSERT INTO `alarmmg` VALUES (1822, 'D06 VFD error', '2023-12-14 11:29:17', '2023-12-14 11:30:29');
|
| | | INSERT INTO `alarmmg` VALUES (1823, 'B01 VFD error', '2023-12-14 11:29:17', '2023-12-14 11:30:00');
|
| | | INSERT INTO `alarmmg` VALUES (1824, 'B02 VFD error', '2023-12-14 11:29:17', '2023-12-14 11:30:00');
|
| | | INSERT INTO `alarmmg` VALUES (1825, 'A01 servo travel error', '2023-12-14 11:29:17', '2023-12-14 11:30:00');
|
| | | INSERT INTO `alarmmg` VALUES (1826, 'A02 servo travel error', '2023-12-14 11:29:17', '2023-12-14 11:30:00');
|
| | | INSERT INTO `alarmmg` VALUES (1827, 'emergency stop alarm', '2023-12-14 11:30:26', '2023-12-14 11:30:33');
|
| | | INSERT INTO `alarmmg` VALUES (1828, 'A01 servo travel error', '2023-12-14 11:31:05', '2023-12-14 11:31:14');
|
| | | INSERT INTO `alarmmg` VALUES (1829, 'A02 servo travel error', '2023-12-14 11:31:05', '2023-12-14 11:31:14');
|
| | | INSERT INTO `alarmmg` VALUES (1830, 'emergency stop alarm', '2023-12-14 11:31:39', '2023-12-14 11:31:49');
|
| | | INSERT INTO `alarmmg` VALUES (1831, 'A01 servo turn error', '2023-12-14 11:32:28', '2023-12-14 11:34:11');
|
| | | INSERT INTO `alarmmg` VALUES (1832, 'D01 VFD error', '2023-12-14 11:34:11', '2023-12-14 11:35:32');
|
| | | INSERT INTO `alarmmg` VALUES (1833, 'D02 VFD error', '2023-12-14 11:34:11', '2023-12-14 11:35:32');
|
| | | INSERT INTO `alarmmg` VALUES (1834, 'D03 VFD error', '2023-12-14 11:34:11', '2023-12-14 11:35:32');
|
| | | INSERT INTO `alarmmg` VALUES (1835, 'D04 VFD error', '2023-12-14 11:34:11', '2023-12-14 11:35:32');
|
| | | INSERT INTO `alarmmg` VALUES (1836, 'D05 VFD error', '2023-12-14 11:34:11', '2023-12-14 11:35:32');
|
| | | INSERT INTO `alarmmg` VALUES (1837, 'D06 VFD error', '2023-12-14 11:34:11', '2023-12-14 11:35:32');
|
| | | INSERT INTO `alarmmg` VALUES (1838, 'B01 VFD error', '2023-12-14 11:34:11', '2023-12-14 11:35:03');
|
| | | INSERT INTO `alarmmg` VALUES (1839, 'B02 VFD error', '2023-12-14 11:34:11', '2023-12-14 11:35:03');
|
| | | INSERT INTO `alarmmg` VALUES (1840, 'A01 servo travel error', '2023-12-14 11:34:11', '2023-12-14 11:35:03');
|
| | | INSERT INTO `alarmmg` VALUES (1841, 'A02 servo travel error', '2023-12-14 11:34:12', '2023-12-14 11:35:03');
|
| | | INSERT INTO `alarmmg` VALUES (1842, 'emergency stop alarm', '2023-12-14 11:35:30', '2023-12-14 11:35:40');
|
| | | INSERT INTO `alarmmg` VALUES (1843, 'A01 servo travel error', '2023-12-15 10:11:02', '2023-12-15 10:11:19');
|
| | | INSERT INTO `alarmmg` VALUES (1844, 'A02 servo travel error', '2023-12-15 10:11:02', '2023-12-15 10:11:19');
|
| | | INSERT INTO `alarmmg` VALUES (1845, 'A01 conveyor right safety alarm', '2023-12-15 11:04:15', '2023-12-15 11:04:17');
|
| | | INSERT INTO `alarmmg` VALUES (1846, 'A01 conveyor right safety alarm', '2023-12-15 11:04:27', '2023-12-15 11:31:52');
|
| | | INSERT INTO `alarmmg` VALUES (1847, '1# buffer safety alarm', '2023-12-15 11:04:27', '2023-12-15 11:31:52');
|
| | | INSERT INTO `alarmmg` VALUES (1848, '2# buffer safety alarm', '2023-12-15 11:06:47', '2023-12-15 11:06:49');
|
| | | INSERT INTO `alarmmg` VALUES (1849, 'A01 conveyor right safety alarm', '2023-12-15 11:32:51', '2023-12-15 11:32:54');
|
| | | INSERT INTO `alarmmg` VALUES (1850, 'A01 conveyor right safety alarm', '2023-12-15 11:33:03', '2023-12-15 11:33:06');
|
| | | INSERT INTO `alarmmg` VALUES (1851, '1# buffer safety alarm', '2023-12-15 11:33:04', '2023-12-15 11:33:06');
|
| | | INSERT INTO `alarmmg` VALUES (1852, 'A02 conveyor Left safety alarm', '2023-12-15 11:35:56', '2023-12-15 11:35:58');
|
| | | INSERT INTO `alarmmg` VALUES (1853, '2# buffer safety alarm', '2023-12-15 11:35:56', '2023-12-15 11:35:58');
|
| | | INSERT INTO `alarmmg` VALUES (1854, 'A02 conveyor Left safety alarm', '2023-12-15 11:36:12', '2023-12-15 11:36:16');
|
| | | INSERT INTO `alarmmg` VALUES (1855, '2# buffer safety alarm', '2023-12-15 11:36:12', '2023-12-15 11:36:16');
|
| | | INSERT INTO `alarmmg` VALUES (1856, 'A02 conveyor Left safety alarm', '2023-12-15 11:36:29', '2023-12-15 11:36:32');
|
| | | INSERT INTO `alarmmg` VALUES (1857, '2# buffer safety alarm', '2023-12-15 11:36:29', '2023-12-15 11:36:32');
|
| | | INSERT INTO `alarmmg` VALUES (1858, 'less glass than known', '2023-12-15 11:36:45', '2023-12-15 11:40:24');
|
| | | INSERT INTO `alarmmg` VALUES (1859, 'A01 servo turn error', '2023-12-15 13:53:38', '2023-12-15 13:58:17');
|
| | | INSERT INTO `alarmmg` VALUES (1860, 'A02 servo turn error', '2023-12-15 13:53:38', '2023-12-15 13:58:17');
|
| | | INSERT INTO `alarmmg` VALUES (1861, 'D01 VFD error', '2023-12-15 13:58:17', '2023-12-15 13:58:25');
|
| | | INSERT INTO `alarmmg` VALUES (1862, 'D02 VFD error', '2023-12-15 13:58:17', '2023-12-15 13:58:25');
|
| | | INSERT INTO `alarmmg` VALUES (1863, 'D03 VFD error', '2023-12-15 13:58:17', '2023-12-15 13:58:25');
|
| | | INSERT INTO `alarmmg` VALUES (1864, 'D04 VFD error', '2023-12-15 13:58:17', '2023-12-15 13:58:25');
|
| | | INSERT INTO `alarmmg` VALUES (1865, 'D05 VFD error', '2023-12-15 13:58:17', '2023-12-15 13:58:25');
|
| | | INSERT INTO `alarmmg` VALUES (1866, 'D06 VFD error', '2023-12-15 13:58:17', '2023-12-15 13:58:25');
|
| | | INSERT INTO `alarmmg` VALUES (1867, 'B01 VFD error', '2023-12-15 13:58:17', '2023-12-15 13:58:25');
|
| | | INSERT INTO `alarmmg` VALUES (1868, 'B02 VFD error', '2023-12-15 13:58:17', '2023-12-15 13:58:25');
|
| | | INSERT INTO `alarmmg` VALUES (1869, 'A01 servo travel error', '2023-12-15 13:58:17', '2023-12-15 13:58:25');
|
| | | INSERT INTO `alarmmg` VALUES (1870, 'A02 servo travel error', '2023-12-15 13:58:17', '2023-12-15 13:58:25');
|
| | | INSERT INTO `alarmmg` VALUES (1871, 'emergency stop alarm', '2023-12-15 13:58:24', '2023-12-15 13:58:31');
|
| | | INSERT INTO `alarmmg` VALUES (1872, 'A01 servo travel error', '2023-12-15 13:59:02', '2023-12-15 13:59:15');
|
| | | INSERT INTO `alarmmg` VALUES (1873, 'A02 servo travel error', '2023-12-15 13:59:02', '2023-12-15 13:59:15');
|
| | | INSERT INTO `alarmmg` VALUES (1874, 'A01 servo turn error', '2023-12-15 13:59:16', '2023-12-15 13:59:20');
|
| | | INSERT INTO `alarmmg` VALUES (1875, 'A02 servo turn error', '2023-12-15 13:59:16', '2023-12-15 13:59:20');
|
| | | INSERT INTO `alarmmg` VALUES (1876, 'B01 servo travel error', '2023-12-15 13:59:16', '2023-12-15 13:59:20');
|
| | | INSERT INTO `alarmmg` VALUES (1877, 'B02 servo travel error', '2023-12-15 13:59:16', '2023-12-15 13:59:20');
|
| | | INSERT INTO `alarmmg` VALUES (1878, 'D01 VFD error', '2023-12-15 14:00:49', '2023-12-15 14:01:57');
|
| | | INSERT INTO `alarmmg` VALUES (1879, 'D02 VFD error', '2023-12-15 14:00:49', '2023-12-15 14:01:57');
|
| | | INSERT INTO `alarmmg` VALUES (1880, 'D03 VFD error', '2023-12-15 14:00:49', '2023-12-15 14:01:57');
|
| | | INSERT INTO `alarmmg` VALUES (1881, 'D04 VFD error', '2023-12-15 14:00:49', '2023-12-15 14:01:57');
|
| | | INSERT INTO `alarmmg` VALUES (1882, 'D05 VFD error', '2023-12-15 14:00:49', '2023-12-15 14:01:57');
|
| | | INSERT INTO `alarmmg` VALUES (1883, 'D06 VFD error', '2023-12-15 14:00:49', '2023-12-15 14:01:57');
|
| | | INSERT INTO `alarmmg` VALUES (1884, 'B01 VFD error', '2023-12-15 14:00:49', '2023-12-15 14:01:57');
|
| | | INSERT INTO `alarmmg` VALUES (1885, 'B02 VFD error', '2023-12-15 14:00:49', '2023-12-15 14:01:57');
|
| | | INSERT INTO `alarmmg` VALUES (1886, 'A01 servo travel error', '2023-12-15 14:00:49', '2023-12-15 14:01:55');
|
| | | INSERT INTO `alarmmg` VALUES (1887, 'A02 servo travel error', '2023-12-15 14:00:49', '2023-12-15 14:01:55');
|
| | | INSERT INTO `alarmmg` VALUES (1888, 'emergency stop alarm', '2023-12-15 14:01:53', '2023-12-15 14:02:04');
|
| | | INSERT INTO `alarmmg` VALUES (1889, 'A01 servo turn error', '2023-12-15 14:02:50', '2023-12-15 14:02:51');
|
| | | INSERT INTO `alarmmg` VALUES (1890, 'A02 servo turn error', '2023-12-15 14:02:50', '2023-12-15 14:02:51');
|
| | | INSERT INTO `alarmmg` VALUES (1891, 'B01 servo travel error', '2023-12-15 14:02:50', '2023-12-15 14:02:51');
|
| | | INSERT INTO `alarmmg` VALUES (1892, 'B02 servo travel error', '2023-12-15 14:02:50', '2023-12-15 14:02:51');
|
| | | INSERT INTO `alarmmg` VALUES (1893, 'emergency stop alarm', '2023-12-15 14:03:10', '2023-12-15 14:03:15');
|
| | | INSERT INTO `alarmmg` VALUES (1894, 'A01 servo travel error', '2023-12-15 14:03:46', '2023-12-15 14:04:01');
|
| | | INSERT INTO `alarmmg` VALUES (1895, 'A02 servo travel error', '2023-12-15 14:03:50', '2023-12-15 14:04:01');
|
| | | INSERT INTO `alarmmg` VALUES (1896, 'A01 servo turn error', '2023-12-15 14:04:01', '2023-12-15 14:05:17');
|
| | | INSERT INTO `alarmmg` VALUES (1897, 'A02 servo turn error', '2023-12-15 14:04:01', '2023-12-15 14:04:03');
|
| | | INSERT INTO `alarmmg` VALUES (1898, 'emergency stop alarm', '2023-12-15 14:05:17', '2023-12-15 14:05:23');
|
| | | INSERT INTO `alarmmg` VALUES (1899, 'A02 servo travel error', '2023-12-15 14:05:56', '2023-12-15 14:06:30');
|
| | | INSERT INTO `alarmmg` VALUES (1900, 'A01 servo travel error', '2023-12-15 14:06:00', '2023-12-15 14:06:30');
|
| | | INSERT INTO `alarmmg` VALUES (1901, 'A01 servo turn error', '2023-12-15 14:06:31', '2023-12-15 14:10:52');
|
| | | INSERT INTO `alarmmg` VALUES (1902, 'A02 servo turn error', '2023-12-15 14:06:31', '2023-12-15 14:06:33');
|
| | | INSERT INTO `alarmmg` VALUES (1903, 'emergency stop alarm', '2023-12-15 14:10:52', '2023-12-15 14:10:57');
|
| | | INSERT INTO `alarmmg` VALUES (1904, 'A01 servo travel error', '2023-12-15 14:11:29', '2023-12-15 14:12:03');
|
| | | INSERT INTO `alarmmg` VALUES (1905, 'A02 servo travel error', '2023-12-15 14:11:29', '2023-12-15 14:12:03');
|
| | | INSERT INTO `alarmmg` VALUES (1906, 'A01 servo turn error', '2023-12-15 14:12:03', '2023-12-15 14:13:39');
|
| | | INSERT INTO `alarmmg` VALUES (1907, 'A01 servo travel error', '2023-12-15 14:14:40', '2023-12-15 14:14:49');
|
| | | INSERT INTO `alarmmg` VALUES (1908, 'A02 servo travel error', '2023-12-15 14:14:40', '2023-12-15 14:14:49');
|
| | | INSERT INTO `alarmmg` VALUES (1909, '2# buffer safety alarm', '2023-12-15 14:16:18', '2023-12-15 14:16:21');
|
| | | INSERT INTO `alarmmg` VALUES (1910, 'A02 conveyor Left safety alarm', '2023-12-15 14:16:19', '2023-12-15 14:16:21');
|
| | | INSERT INTO `alarmmg` VALUES (1911, 'A02 conveyor Left safety alarm', '2023-12-15 14:16:48', '2023-12-15 14:16:52');
|
| | | INSERT INTO `alarmmg` VALUES (1912, 'A02 conveyor Left safety alarm', '2023-12-15 15:06:23', '2023-12-15 15:06:25');
|
| | | INSERT INTO `alarmmg` VALUES (1913, '2# buffer safety alarm', '2023-12-15 15:06:23', '2023-12-15 15:06:25');
|
| | | INSERT INTO `alarmmg` VALUES (1914, 'A02 conveyor Left safety alarm', '2023-12-15 15:06:53', '2023-12-15 15:06:57');
|
| | | INSERT INTO `alarmmg` VALUES (1915, 'A02 conveyor Left safety alarm', '2023-12-15 15:14:23', '2023-12-15 15:14:27');
|
| | | INSERT INTO `alarmmg` VALUES (1916, '2# buffer safety alarm', '2023-12-15 15:14:24', '2023-12-15 15:14:27');
|
| | | INSERT INTO `alarmmg` VALUES (1917, 'A02 conveyor Left safety alarm', '2023-12-15 15:14:55', '2023-12-15 15:14:59');
|
| | | INSERT INTO `alarmmg` VALUES (1918, '2# buffer safety alarm', '2023-12-15 15:16:18', '2023-12-15 15:16:21');
|
| | | INSERT INTO `alarmmg` VALUES (1919, 'A02 conveyor Left safety alarm', '2023-12-15 15:16:19', '2023-12-15 15:16:21');
|
| | | INSERT INTO `alarmmg` VALUES (1920, 'A02 conveyor Left safety alarm', '2023-12-15 15:16:50', '2023-12-15 15:16:53');
|
| | | INSERT INTO `alarmmg` VALUES (1921, 'A01 conveyor right safety alarm', '2023-12-15 15:46:56', '2023-12-15 15:46:58');
|
| | | INSERT INTO `alarmmg` VALUES (1922, 'A01 conveyor right safety alarm', '2023-12-15 15:47:07', '2023-12-15 15:47:17');
|
| | | INSERT INTO `alarmmg` VALUES (1923, '1# buffer safety alarm', '2023-12-15 15:47:08', '2023-12-15 15:47:17');
|
| | | INSERT INTO `alarmmg` VALUES (1924, 'A01 conveyor right safety alarm', '2023-12-15 15:50:17', '2023-12-15 15:50:20');
|
| | | INSERT INTO `alarmmg` VALUES (1925, 'A01 conveyor right safety alarm', '2023-12-15 15:50:29', '2023-12-15 15:50:31');
|
| | | INSERT INTO `alarmmg` VALUES (1926, '1# buffer safety alarm', '2023-12-15 15:50:29', '2023-12-15 15:50:32');
|
| | | INSERT INTO `alarmmg` VALUES (1927, 'A01 conveyor right safety alarm', '2023-12-15 16:00:31', '2023-12-15 16:00:34');
|
| | | INSERT INTO `alarmmg` VALUES (1928, 'A01 conveyor right safety alarm', '2023-12-15 16:00:43', '2023-12-15 16:00:47');
|
| | | INSERT INTO `alarmmg` VALUES (1929, '1# buffer safety alarm', '2023-12-15 16:00:44', '2023-12-15 16:00:47');
|
| | | INSERT INTO `alarmmg` VALUES (1930, 'A01 conveyor right safety alarm', '2023-12-15 16:03:01', '2023-12-15 16:03:04');
|
| | | INSERT INTO `alarmmg` VALUES (1931, 'A01 conveyor right safety alarm', '2023-12-15 16:03:13', '2023-12-15 16:03:16');
|
| | | INSERT INTO `alarmmg` VALUES (1932, '1# buffer safety alarm', '2023-12-15 16:03:13', '2023-12-15 16:03:17');
|
| | | INSERT INTO `alarmmg` VALUES (1933, '2# buffer safety alarm', '2023-12-15 16:05:19', '2023-12-15 16:05:22');
|
| | | INSERT INTO `alarmmg` VALUES (1934, 'A02 conveyor Left safety alarm', '2023-12-15 16:05:20', '2023-12-15 16:05:22');
|
| | | INSERT INTO `alarmmg` VALUES (1935, 'A02 conveyor Left safety alarm', '2023-12-15 16:05:50', '2023-12-15 16:05:55');
|
| | | INSERT INTO `alarmmg` VALUES (1936, 'A02 conveyor Left safety alarm', '2023-12-15 16:08:34', '2023-12-15 16:08:36');
|
| | | INSERT INTO `alarmmg` VALUES (1937, '2# buffer safety alarm', '2023-12-15 16:08:34', '2023-12-15 16:08:36');
|
| | | INSERT INTO `alarmmg` VALUES (1938, 'A02 conveyor Left safety alarm', '2023-12-15 16:08:51', '2023-12-15 16:08:53');
|
| | | INSERT INTO `alarmmg` VALUES (1939, '2# buffer safety alarm', '2023-12-15 16:08:51', '2023-12-15 16:08:53');
|
| | | INSERT INTO `alarmmg` VALUES (1940, 'emergency stop alarm', '2023-12-15 16:09:08', '2023-12-15 16:09:22');
|
| | | INSERT INTO `alarmmg` VALUES (1941, 'less glass than known', '2023-12-15 16:19:51', '2023-12-15 16:21:50');
|
| | | INSERT INTO `alarmmg` VALUES (1942, 'emergency stop alarm', '2023-12-15 16:20:52', '2023-12-15 16:21:08');
|
| | | INSERT INTO `alarmmg` VALUES (1943, 'A02 servo turn error', '2023-12-15 16:21:51', '2023-12-15 16:21:53');
|
| | | INSERT INTO `alarmmg` VALUES (1944, 'A01 conveyor right safety alarm', '2023-12-15 16:24:24', '2023-12-15 16:24:26');
|
| | | INSERT INTO `alarmmg` VALUES (1945, '1# buffer safety alarm', '2023-12-15 16:24:38', '2023-12-15 16:24:40');
|
| | | INSERT INTO `alarmmg` VALUES (1946, 'A02 conveyor Left safety alarm', '2023-12-15 16:25:59', '2023-12-15 16:26:01');
|
| | | INSERT INTO `alarmmg` VALUES (1947, '2# buffer safety alarm', '2023-12-15 16:25:59', '2023-12-15 16:26:01');
|
| | | INSERT INTO `alarmmg` VALUES (1948, 'A02 conveyor Left safety alarm', '2023-12-15 16:26:30', '2023-12-15 16:26:33');
|
| | | INSERT INTO `alarmmg` VALUES (1949, 'A01 conveyor right safety alarm', '2023-12-15 16:27:56', '2023-12-15 16:27:59');
|
| | | INSERT INTO `alarmmg` VALUES (1950, 'A01 conveyor right safety alarm', '2023-12-15 16:28:08', '2023-12-15 16:28:11');
|
| | | INSERT INTO `alarmmg` VALUES (1951, '1# buffer safety alarm', '2023-12-15 16:28:09', '2023-12-15 16:28:11');
|
| | | INSERT INTO `alarmmg` VALUES (1952, 'A02 conveyor Left safety alarm', '2023-12-15 16:29:16', '2023-12-15 16:29:20');
|
| | | INSERT INTO `alarmmg` VALUES (1953, '2# buffer safety alarm', '2023-12-15 16:29:16', '2023-12-15 16:29:20');
|
| | | INSERT INTO `alarmmg` VALUES (1954, 'A02 conveyor Left safety alarm', '2023-12-15 16:29:48', '2023-12-15 16:29:51');
|
| | | INSERT INTO `alarmmg` VALUES (1955, 'A02 conveyor Left safety alarm', '2023-12-15 16:30:39', '2023-12-15 16:30:41');
|
| | | INSERT INTO `alarmmg` VALUES (1956, '2# buffer safety alarm', '2023-12-15 16:30:39', '2023-12-15 16:30:41');
|
| | | INSERT INTO `alarmmg` VALUES (1957, 'A02 conveyor Left safety alarm', '2023-12-15 16:31:09', '2023-12-15 16:31:13');
|
| | | INSERT INTO `alarmmg` VALUES (1958, 'A01 conveyor right safety alarm', '2023-12-15 16:33:11', '2023-12-15 16:33:15');
|
| | | INSERT INTO `alarmmg` VALUES (1959, 'A01 conveyor right safety alarm', '2023-12-15 16:33:23', '2023-12-15 16:33:26');
|
| | | INSERT INTO `alarmmg` VALUES (1960, '1# buffer safety alarm', '2023-12-15 16:33:23', '2023-12-15 16:33:26');
|
| | | INSERT INTO `alarmmg` VALUES (1961, 'A01 conveyor right safety alarm', '2023-12-15 16:34:17', '2023-12-15 16:34:19');
|
| | | INSERT INTO `alarmmg` VALUES (1962, 'A01 conveyor right safety alarm', '2023-12-15 16:34:28', '2023-12-15 16:34:31');
|
| | | INSERT INTO `alarmmg` VALUES (1963, '1# buffer safety alarm', '2023-12-15 16:34:29', '2023-12-15 16:34:31');
|
| | | INSERT INTO `alarmmg` VALUES (1964, 'A02 conveyor Left safety alarm', '2023-12-15 16:35:22', '2023-12-15 16:35:25');
|
| | | INSERT INTO `alarmmg` VALUES (1965, '2# buffer safety alarm', '2023-12-15 16:35:22', '2023-12-15 16:35:25');
|
| | | INSERT INTO `alarmmg` VALUES (1966, 'A02 conveyor Left safety alarm', '2023-12-15 16:35:53', '2023-12-15 16:35:57');
|
| | | INSERT INTO `alarmmg` VALUES (1967, 'A02 conveyor Left safety alarm', '2023-12-15 16:36:29', '2023-12-15 16:36:33');
|
| | | INSERT INTO `alarmmg` VALUES (1968, '2# buffer safety alarm', '2023-12-15 16:36:29', '2023-12-15 16:36:33');
|
| | | INSERT INTO `alarmmg` VALUES (1969, 'A02 conveyor Left safety alarm', '2023-12-15 16:36:59', '2023-12-15 16:37:03');
|
| | | INSERT INTO `alarmmg` VALUES (1970, 'A01 conveyor right safety alarm', '2023-12-15 16:42:08', '2023-12-15 16:42:11');
|
| | | INSERT INTO `alarmmg` VALUES (1971, 'A01 conveyor right safety alarm', '2023-12-15 16:42:19', '2023-12-15 16:42:22');
|
| | | INSERT INTO `alarmmg` VALUES (1972, '1# buffer safety alarm', '2023-12-15 16:42:19', '2023-12-15 16:42:22');
|
| | | INSERT INTO `alarmmg` VALUES (1973, 'D01 VFD error', '2023-12-20 11:07:17', '2023-12-20 11:07:46');
|
| | | INSERT INTO `alarmmg` VALUES (1974, 'D02 VFD error', '2023-12-20 11:07:17', '2023-12-20 11:07:46');
|
| | | INSERT INTO `alarmmg` VALUES (1975, 'D03 VFD error', '2023-12-20 11:07:17', '2023-12-20 11:07:46');
|
| | | INSERT INTO `alarmmg` VALUES (1976, 'D04 VFD error', '2023-12-20 11:07:17', '2023-12-20 11:07:46');
|
| | | INSERT INTO `alarmmg` VALUES (1977, 'D05 VFD error', '2023-12-20 11:07:17', '2023-12-20 11:07:46');
|
| | | INSERT INTO `alarmmg` VALUES (1978, 'D06 VFD error', '2023-12-20 11:07:17', '2023-12-20 11:07:46');
|
| | | INSERT INTO `alarmmg` VALUES (1979, 'B01 VFD error', '2023-12-20 11:07:18', '2023-12-20 11:07:46');
|
| | | INSERT INTO `alarmmg` VALUES (1980, 'B02 VFD error', '2023-12-20 11:07:18', '2023-12-20 11:07:46');
|
| | | INSERT INTO `alarmmg` VALUES (1981, 'A01 servo travel error', '2023-12-20 11:07:18', '2023-12-20 11:07:44');
|
| | | INSERT INTO `alarmmg` VALUES (1982, 'A02 servo travel error', '2023-12-20 11:07:18', '2023-12-20 11:07:44');
|
| | | INSERT INTO `alarmmg` VALUES (1983, 'emergency stop alarm', '2023-12-20 11:07:44', '2023-12-20 11:07:49');
|
| | | INSERT INTO `alarmmg` VALUES (1984, 'emergency stop alarm', '2023-12-20 11:13:13', '2023-12-20 11:13:16');
|
| | | INSERT INTO `alarmmg` VALUES (1985, 'A02 servo turn error', '2023-12-20 11:15:15', '2023-12-20 11:18:01');
|
| | | INSERT INTO `alarmmg` VALUES (1986, 'emergency stop alarm', '2023-12-20 11:18:01', '2023-12-20 11:19:10');
|
| | | INSERT INTO `alarmmg` VALUES (1987, 'A02 servo turn error', '2023-12-20 11:20:46', '2023-12-20 11:23:13');
|
| | | INSERT INTO `alarmmg` VALUES (1988, 'A01 servo travel error', '2023-12-20 11:24:04', '2023-12-20 11:24:15');
|
| | | INSERT INTO `alarmmg` VALUES (1989, 'A02 servo travel error', '2023-12-20 11:24:04', '2023-12-20 11:24:15');
|
| | |
|
| | | -- ----------------------------
|
| | | -- Table structure for car_position
|
| | |
| | | `create_time` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) COMMENT '创建时间',
|
| | | `update_time` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP(0) ON UPDATE CURRENT_TIMESTAMP(0) COMMENT '更新时间',
|
| | | PRIMARY KEY (`id`) USING BTREE
|
| | | ) ENGINE = InnoDB AUTO_INCREMENT = 2 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '商品分类' ROW_FORMAT = DYNAMIC;
|
| | | ) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '商品分类' ROW_FORMAT = DYNAMIC;
|
| | |
|
| | | -- ----------------------------
|
| | | -- Records of category
|
| | |
| | | `last_product_count_date` date NULL DEFAULT NULL,
|
| | | PRIMARY KEY (`id`) USING BTREE,
|
| | | UNIQUE INDEX `device_id_idx`(`device_id`) USING BTREE
|
| | | ) ENGINE = InnoDB AUTO_INCREMENT = 47 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = DYNAMIC;
|
| | | ) ENGINE = InnoDB AUTO_INCREMENT = 46 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = DYNAMIC;
|
| | |
|
| | | -- ----------------------------
|
| | | -- Records of device
|
| | |
| | | `height` decimal(10, 2) NULL DEFAULT NULL,
|
| | | `Conversionrate` varchar(16) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
|
| | | PRIMARY KEY (`id`) USING BTREE
|
| | | ) ENGINE = InnoDB AUTO_INCREMENT = 4 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = DYNAMIC;
|
| | | ) ENGINE = InnoDB AUTO_INCREMENT = 3 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = DYNAMIC;
|
| | |
|
| | | -- ----------------------------
|
| | | -- Records of glass
|
| | |
| | | INSERT INTO `menu_list` VALUES (12, 6, '角色列表', '', 12, 'role', 1, '2021-11-28 14:30:28', '2021-11-28 15:06:04');
|
| | | INSERT INTO `menu_list` VALUES (49, 2, '报警信息', '', 49, 'Electrical/alarm', 1, '2021-11-28 14:30:28', '2023-09-08 11:14:08');
|
| | | INSERT INTO `menu_list` VALUES (51, 2, '设备状态', NULL, 51, 'Electrical/State', 1, '2023-08-25 13:29:13', '2023-09-11 17:07:08');
|
| | | INSERT INTO `menu_list` VALUES (52, 2, '开关控制', NULL, 52, 'Electrical/Action', 1, '2023-08-25 13:29:18', '2023-09-12 17:02:54');
|
| | | INSERT INTO `menu_list` VALUES (53, 2, '参数下发', NULL, 53, 'Electrical/Servomanual', 1, '2023-08-25 13:29:22', '2023-12-07 09:10:42');
|
| | | INSERT INTO `menu_list` VALUES (54, 2, 'IO状态', NULL, 54, 'Electrical/Sign', 1, '2023-08-25 13:29:22', '2023-12-08 11:35:20');
|
| | |
|
| | |
| | | `order_id` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '订单号',
|
| | | `state` int NULL DEFAULT NULL COMMENT '状态(0:按此订单号出片,1结束出片)',
|
| | | PRIMARY KEY (`id`) USING BTREE
|
| | | ) ENGINE = InnoDB AUTO_INCREMENT = 5 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = DYNAMIC;
|
| | | ) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = DYNAMIC;
|
| | |
|
| | | -- ----------------------------
|
| | | -- Records of order_out
|
| | |
| | | -- ----------------------------
|
| | | -- Records of queue
|
| | | -- ----------------------------
|
| | | INSERT INTO `queue` VALUES (1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 0, '2023-12-08 14:03:55');
|
| | | INSERT INTO `queue` VALUES (2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, 0, '2023-12-08 14:04:09');
|
| | | INSERT INTO `queue` VALUES (1, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1, 0, '2023-12-12 16:35:47');
|
| | | INSERT INTO `queue` VALUES (2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 2, 0, '2023-12-12 16:36:09');
|
| | |
|
| | | -- ----------------------------
|
| | | -- Table structure for role
|
| | |
| | | INSERT INTO `role_menu_list` VALUES (19, 1, 50, 1, '2023-08-24 09:13:00', '2023-12-08 11:55:22');
|
| | | INSERT INTO `role_menu_list` VALUES (20, 1, 49, 1, '2023-08-24 10:08:38', '2023-12-08 11:55:22');
|
| | | INSERT INTO `role_menu_list` VALUES (21, 1, 51, 1, '2023-08-24 10:08:56', '2023-12-08 11:55:22');
|
| | | INSERT INTO `role_menu_list` VALUES (22, 1, 52, 1, '2023-08-24 10:08:56', '2023-12-08 11:55:22');
|
| | | INSERT INTO `role_menu_list` VALUES (22, 1, 52, 0, '2023-08-24 10:08:56', '2023-12-14 16:10:00');
|
| | | INSERT INTO `role_menu_list` VALUES (23, 1, 53, 1, '2023-08-24 10:08:56', '2023-12-08 11:55:22');
|
| | | INSERT INTO `role_menu_list` VALUES (25, 1, 60, 1, '2023-08-25 13:05:53', '2023-12-08 11:55:22');
|
| | | INSERT INTO `role_menu_list` VALUES (26, 1, 1, 1, '2023-08-28 14:29:17', '2023-12-08 11:55:22');
|
| | |
| | | INSERT INTO `role_menu_list` VALUES (42, 2, 50, 1, '2023-08-28 15:14:27', '2023-12-08 14:18:20');
|
| | | INSERT INTO `role_menu_list` VALUES (43, 2, 49, 1, '2023-08-28 15:14:27', '2023-12-08 14:18:20');
|
| | | INSERT INTO `role_menu_list` VALUES (44, 2, 51, 1, '2023-08-28 15:14:27', '2023-12-08 14:18:20');
|
| | | INSERT INTO `role_menu_list` VALUES (45, 2, 52, 1, '2023-08-28 15:14:27', '2023-12-08 14:18:20');
|
| | | INSERT INTO `role_menu_list` VALUES (45, 2, 52, 0, '2023-08-28 15:14:27', '2023-12-14 16:10:07');
|
| | | INSERT INTO `role_menu_list` VALUES (46, 2, 53, 1, '2023-08-28 15:14:27', '2023-12-08 14:18:20');
|
| | | INSERT INTO `role_menu_list` VALUES (47, 2, 60, 1, '2023-08-28 15:14:27', '2023-12-08 14:18:20');
|
| | | INSERT INTO `role_menu_list` VALUES (51, 2, 49, 1, '2023-08-28 15:14:27', '2023-12-08 14:18:20');
|
| | |
| | | -- ----------------------------
|
| | | -- Records of role_permission
|
| | | -- ----------------------------
|
| | | INSERT INTO `role_permission` VALUES (1, 1, 1, 1, '2021-11-28 15:07:54', '2023-12-08 11:53:19', NULL);
|
| | | INSERT INTO `role_permission` VALUES (2, 1, 2, 1, '2021-11-28 15:07:54', '2023-12-08 11:53:19', NULL);
|
| | | INSERT INTO `role_permission` VALUES (3, 1, 3, 1, '2021-11-28 15:07:54', '2023-12-08 11:53:19', NULL);
|
| | | INSERT INTO `role_permission` VALUES (7, 1, 7, 1, '2021-11-28 15:07:54', '2023-12-08 11:53:19', NULL);
|
| | | INSERT INTO `role_permission` VALUES (8, 1, 8, 1, '2021-11-28 15:07:54', '2023-12-08 11:53:19', NULL);
|
| | | INSERT INTO `role_permission` VALUES (9, 1, 9, 1, '2021-11-28 15:07:54', '2023-12-08 11:53:19', NULL);
|
| | | INSERT INTO `role_permission` VALUES (10, 1, 10, 1, '2021-11-28 15:07:54', '2023-12-08 11:53:19', NULL);
|
| | | INSERT INTO `role_permission` VALUES (11, 1, 11, 1, '2021-11-28 15:07:54', '2023-12-08 11:53:19', NULL);
|
| | | INSERT INTO `role_permission` VALUES (12, 1, 12, 1, '2021-11-28 15:07:54', '2023-12-08 11:53:19', NULL);
|
| | | INSERT INTO `role_permission` VALUES (13, 1, 13, 1, '2021-11-28 15:07:54', '2023-12-08 11:53:19', NULL);
|
| | | INSERT INTO `role_permission` VALUES (16, 1, 16, 1, '2021-11-28 15:07:54', '2023-12-08 11:53:19', NULL);
|
| | | INSERT INTO `role_permission` VALUES (17, 1, 17, 1, '2021-11-28 15:07:54', '2023-12-08 11:53:19', NULL);
|
| | | INSERT INTO `role_permission` VALUES (18, 1, 18, 1, '2021-11-28 15:07:54', '2023-12-08 11:53:19', NULL);
|
| | | INSERT INTO `role_permission` VALUES (19, 1, 19, 1, '2021-11-28 15:07:54', '2023-12-08 11:53:19', NULL);
|
| | | INSERT INTO `role_permission` VALUES (20, 1, 20, 1, '2021-11-28 15:07:54', '2023-12-08 11:53:19', NULL);
|
| | | INSERT INTO `role_permission` VALUES (22, 1, 22, 1, '2021-11-28 15:07:54', '2023-12-08 11:53:19', NULL);
|
| | | INSERT INTO `role_permission` VALUES (25, 1, 25, 1, '2021-11-28 15:07:54', '2023-12-08 11:53:19', NULL);
|
| | | INSERT INTO `role_permission` VALUES (26, 1, 26, 1, '2021-11-28 15:07:54', '2023-12-08 11:53:19', NULL);
|
| | | INSERT INTO `role_permission` VALUES (27, 1, 27, 1, '2021-11-28 15:07:54', '2023-12-08 11:53:19', NULL);
|
| | | INSERT INTO `role_permission` VALUES (28, 1, 28, 1, '2021-11-28 15:07:54', '2023-12-08 11:53:19', NULL);
|
| | | INSERT INTO `role_permission` VALUES (37, 2, 25, 1, '2021-11-28 16:30:57', '2023-12-08 11:53:19', NULL);
|
| | | INSERT INTO `role_permission` VALUES (38, 2, 26, 1, '2021-11-28 16:30:57', '2023-12-08 11:53:19', NULL);
|
| | | INSERT INTO `role_permission` VALUES (39, 2, 27, 1, '2021-11-28 16:30:57', '2023-12-08 11:53:19', NULL);
|
| | | INSERT INTO `role_permission` VALUES (40, 2, 28, 1, '2021-11-28 16:32:35', '2023-12-08 11:53:19', NULL);
|
| | | INSERT INTO `role_permission` VALUES (41, 2, 22, 1, '2021-11-28 19:57:35', '2023-12-08 11:53:19', NULL);
|
| | | INSERT INTO `role_permission` VALUES (42, 1, 30, 1, '2023-08-24 08:55:34', '2023-12-08 11:53:19', NULL);
|
| | | INSERT INTO `role_permission` VALUES (43, 1, 29, 1, '2023-08-24 08:56:15', '2023-12-08 11:53:19', NULL);
|
| | | INSERT INTO `role_permission` VALUES (44, 1, 31, 1, '2023-08-24 08:56:23', '2023-12-08 11:53:19', NULL);
|
| | | INSERT INTO `role_permission` VALUES (53, 2, 2, 1, '2021-11-28 15:07:54', '2023-12-08 14:19:11', NULL);
|
| | | INSERT INTO `role_permission` VALUES (54, 2, 3, 1, '2021-11-28 15:07:54', '2023-12-08 14:19:11', NULL);
|
| | | INSERT INTO `role_permission` VALUES (56, 2, 8, 1, '2021-11-28 15:07:54', '2023-12-08 14:19:11', NULL);
|
| | | INSERT INTO `role_permission` VALUES (57, 2, 9, 1, '2021-11-28 15:07:54', '2023-12-08 14:19:11', NULL);
|
| | | INSERT INTO `role_permission` VALUES (58, 2, 10, 1, '2021-11-28 15:07:54', '2023-12-08 14:19:11', NULL);
|
| | | INSERT INTO `role_permission` VALUES (61, 2, 13, 1, '2021-11-28 15:07:54', '2023-12-08 14:19:11', NULL);
|
| | | INSERT INTO `role_permission` VALUES (62, 2, 16, 1, '2021-11-28 15:07:54', '2023-12-08 14:19:11', NULL);
|
| | | INSERT INTO `role_permission` VALUES (63, 2, 17, 1, '2021-11-28 15:07:54', '2023-12-08 14:19:11', NULL);
|
| | | INSERT INTO `role_permission` VALUES (64, 2, 18, 1, '2021-11-28 15:07:54', '2023-12-08 14:19:11', NULL);
|
| | | INSERT INTO `role_permission` VALUES (65, 2, 19, 1, '2021-11-28 15:07:54', '2023-12-08 14:19:11', NULL);
|
| | | INSERT INTO `role_permission` VALUES (66, 2, 20, 1, '2021-11-28 15:07:54', '2023-12-08 14:19:11', NULL);
|
| | | INSERT INTO `role_permission` VALUES (67, 2, 22, 1, '2021-11-28 15:07:54', '2023-12-08 14:19:11', NULL);
|
| | | INSERT INTO `role_permission` VALUES (68, 2, 25, 1, '2021-11-28 15:07:54', '2023-12-08 14:19:11', NULL);
|
| | | INSERT INTO `role_permission` VALUES (69, 2, 26, 1, '2021-11-28 15:07:54', '2023-12-08 14:19:11', NULL);
|
| | | INSERT INTO `role_permission` VALUES (70, 2, 27, 1, '2021-11-28 15:07:54', '2023-12-08 14:19:11', NULL);
|
| | | INSERT INTO `role_permission` VALUES (71, 2, 28, 1, '2021-11-28 15:07:54', '2023-12-08 14:19:11', NULL);
|
| | | INSERT INTO `role_permission` VALUES (72, 2, 30, 1, '2023-08-24 08:55:34', '2023-12-08 14:19:11', NULL);
|
| | | INSERT INTO `role_permission` VALUES (73, 2, 29, 1, '2023-08-24 08:56:15', '2023-12-08 14:19:11', NULL);
|
| | | INSERT INTO `role_permission` VALUES (74, 2, 1, 1, '2023-08-30 16:29:46', '2023-12-08 14:19:11', NULL);
|
| | | INSERT INTO `role_permission` VALUES (75, 1, 32, 1, '2023-12-05 08:54:59', '2023-12-05 08:54:59', NULL);
|
| | | INSERT INTO `role_permission` VALUES (76, 1, 33, 1, '2023-12-05 08:55:04', '2023-12-05 08:55:04', NULL);
|
| | | INSERT INTO `role_permission` VALUES (77, 1, 34, 1, '2023-12-05 08:55:09', '2023-12-05 08:55:09', NULL);
|
| | | INSERT INTO `role_permission` VALUES (78, 1, 35, 1, '2023-12-05 14:54:43', '2023-12-05 14:54:46', NULL);
|
| | | INSERT INTO `role_permission` VALUES (79, 2, 33, 1, '2023-12-08 10:58:25', '2023-12-08 11:42:12', NULL);
|
| | | INSERT INTO `role_permission` VALUES (80, 2, 34, 1, '2023-12-08 10:59:15', '2023-12-08 11:42:12', NULL);
|
| | | INSERT INTO `role_permission` VALUES (81, 2, 35, 1, '2023-12-08 10:59:23', '2023-12-08 11:42:12', NULL);
|
| | | INSERT INTO `role_permission` VALUES (82, 5, 33, 1, '2023-12-08 10:59:33', '2023-12-08 11:48:26', NULL);
|
| | | INSERT INTO `role_permission` VALUES (83, 5, 34, 0, '2023-12-08 10:59:39', '2023-12-08 11:48:26', NULL);
|
| | | INSERT INTO `role_permission` VALUES (84, 5, 35, 0, '2023-12-08 10:59:51', '2023-12-08 11:48:26', NULL);
|
| | | INSERT INTO `role_permission` VALUES (85, 5, 32, 0, '2023-12-08 11:08:54', '2023-12-08 11:48:26', NULL);
|
| | | INSERT INTO `role_permission` VALUES (86, 5, 1, 1, '2023-12-08 11:45:47', '2023-12-08 11:48:26', NULL);
|
| | | INSERT INTO `role_permission` VALUES (87, 5, 7, 1, '2023-12-08 11:45:55', '2023-12-08 11:48:26', NULL);
|
| | | INSERT INTO `role_permission` VALUES (89, 5, 2, 1, '2021-11-28 15:07:54', '2023-12-08 14:18:38', NULL);
|
| | | INSERT INTO `role_permission` VALUES (90, 5, 3, 1, '2021-11-28 15:07:54', '2023-12-08 14:18:38', NULL);
|
| | | INSERT INTO `role_permission` VALUES (91, 5, 8, 1, '2021-11-28 15:07:54', '2023-12-08 14:18:38', NULL);
|
| | | INSERT INTO `role_permission` VALUES (92, 5, 9, 1, '2021-11-28 15:07:54', '2023-12-08 14:18:38', NULL);
|
| | | INSERT INTO `role_permission` VALUES (93, 5, 10, 1, '2021-11-28 15:07:54', '2023-12-08 14:18:38', NULL);
|
| | | INSERT INTO `role_permission` VALUES (94, 5, 13, 1, '2021-11-28 15:07:54', '2023-12-08 14:18:38', NULL);
|
| | | INSERT INTO `role_permission` VALUES (95, 5, 16, 1, '2021-11-28 15:07:54', '2023-12-08 14:18:38', NULL);
|
| | | INSERT INTO `role_permission` VALUES (96, 5, 17, 1, '2021-11-28 15:07:54', '2023-12-08 14:18:38', NULL);
|
| | | INSERT INTO `role_permission` VALUES (97, 5, 18, 1, '2021-11-28 15:07:54', '2023-12-08 14:18:38', NULL);
|
| | | INSERT INTO `role_permission` VALUES (98, 5, 19, 1, '2021-11-28 15:07:54', '2023-12-08 14:18:38', NULL);
|
| | | INSERT INTO `role_permission` VALUES (99, 5, 20, 1, '2021-11-28 15:07:54', '2023-12-08 14:18:38', NULL);
|
| | | INSERT INTO `role_permission` VALUES (100, 5, 22, 1, '2021-11-28 15:07:54', '2023-12-08 14:18:38', NULL);
|
| | | INSERT INTO `role_permission` VALUES (101, 5, 25, 1, '2021-11-28 15:07:54', '2023-12-08 14:18:38', NULL);
|
| | | INSERT INTO `role_permission` VALUES (102, 5, 26, 1, '2021-11-28 15:07:54', '2023-12-08 14:18:38', NULL);
|
| | | INSERT INTO `role_permission` VALUES (103, 5, 27, 1, '2021-11-28 15:07:54', '2023-12-08 14:18:38', NULL);
|
| | | INSERT INTO `role_permission` VALUES (104, 5, 28, 1, '2021-11-28 15:07:54', '2023-12-08 14:18:38', NULL);
|
| | | INSERT INTO `role_permission` VALUES (105, 5, 30, 1, '2023-08-24 08:55:34', '2023-12-08 14:18:38', NULL);
|
| | | INSERT INTO `role_permission` VALUES (106, 5, 29, 1, '2023-08-24 08:56:15', '2023-12-08 14:18:38', NULL);
|
| | | INSERT INTO `role_permission` VALUES (107, 5, 1, 1, '2023-08-30 16:29:46', '2023-12-08 14:18:38', NULL);
|
| | | INSERT INTO `role_permission` VALUES (1, 1, 1, 1, '2021-11-28 15:07:54', '2023-12-12 10:51:42', 'admin');
|
| | | INSERT INTO `role_permission` VALUES (2, 1, 2, 1, '2021-11-28 15:07:54', '2023-12-12 10:51:42', 'admin');
|
| | | INSERT INTO `role_permission` VALUES (3, 1, 3, 1, '2021-11-28 15:07:54', '2023-12-12 10:51:42', 'admin');
|
| | | INSERT INTO `role_permission` VALUES (7, 1, 7, 1, '2021-11-28 15:07:54', '2023-12-12 10:51:42', 'admin');
|
| | | INSERT INTO `role_permission` VALUES (8, 1, 8, 1, '2021-11-28 15:07:54', '2023-12-12 10:51:42', 'admin');
|
| | | INSERT INTO `role_permission` VALUES (9, 1, 9, 1, '2021-11-28 15:07:54', '2023-12-12 10:51:42', 'admin');
|
| | | INSERT INTO `role_permission` VALUES (10, 1, 10, 1, '2021-11-28 15:07:54', '2023-12-12 10:51:42', 'admin');
|
| | | INSERT INTO `role_permission` VALUES (11, 1, 11, 1, '2021-11-28 15:07:54', '2023-12-12 10:51:42', 'admin');
|
| | | INSERT INTO `role_permission` VALUES (12, 1, 12, 1, '2021-11-28 15:07:54', '2023-12-12 10:51:42', 'admin');
|
| | | INSERT INTO `role_permission` VALUES (13, 1, 13, 1, '2021-11-28 15:07:54', '2023-12-12 10:51:42', 'admin');
|
| | | INSERT INTO `role_permission` VALUES (16, 1, 16, 1, '2021-11-28 15:07:54', '2023-12-12 10:51:42', 'admin');
|
| | | INSERT INTO `role_permission` VALUES (17, 1, 17, 1, '2021-11-28 15:07:54', '2023-12-12 10:51:42', 'admin');
|
| | | INSERT INTO `role_permission` VALUES (18, 1, 18, 1, '2021-11-28 15:07:54', '2023-12-12 10:51:42', 'admin');
|
| | | INSERT INTO `role_permission` VALUES (19, 1, 19, 1, '2021-11-28 15:07:54', '2023-12-12 10:51:42', 'admin');
|
| | | INSERT INTO `role_permission` VALUES (20, 1, 20, 1, '2021-11-28 15:07:54', '2023-12-12 10:51:42', 'admin');
|
| | | INSERT INTO `role_permission` VALUES (22, 1, 22, 1, '2021-11-28 15:07:54', '2023-12-12 10:51:42', 'admin');
|
| | | INSERT INTO `role_permission` VALUES (25, 1, 25, 1, '2021-11-28 15:07:54', '2023-12-12 10:51:42', 'admin');
|
| | | INSERT INTO `role_permission` VALUES (26, 1, 26, 1, '2021-11-28 15:07:54', '2023-12-12 10:51:42', 'admin');
|
| | | INSERT INTO `role_permission` VALUES (27, 1, 27, 1, '2021-11-28 15:07:54', '2023-12-12 10:51:42', 'admin');
|
| | | INSERT INTO `role_permission` VALUES (28, 1, 28, 1, '2021-11-28 15:07:54', '2023-12-12 10:51:42', 'admin');
|
| | | INSERT INTO `role_permission` VALUES (37, 2, 25, 1, '2021-11-28 16:30:57', '2023-12-12 10:57:16', 'user2');
|
| | | INSERT INTO `role_permission` VALUES (38, 2, 26, 1, '2021-11-28 16:30:57', '2023-12-12 10:57:16', 'user2');
|
| | | INSERT INTO `role_permission` VALUES (39, 2, 27, 1, '2021-11-28 16:30:57', '2023-12-12 10:57:16', 'user2');
|
| | | INSERT INTO `role_permission` VALUES (40, 2, 28, 1, '2021-11-28 16:32:35', '2023-12-12 10:57:16', 'user2');
|
| | | INSERT INTO `role_permission` VALUES (41, 2, 22, 1, '2021-11-28 19:57:35', '2023-12-12 10:57:16', 'user2');
|
| | | INSERT INTO `role_permission` VALUES (42, 1, 30, 1, '2023-08-24 08:55:34', '2023-12-12 10:51:42', 'admin');
|
| | | INSERT INTO `role_permission` VALUES (43, 1, 29, 1, '2023-08-24 08:56:15', '2023-12-12 10:51:42', 'admin');
|
| | | INSERT INTO `role_permission` VALUES (44, 1, 31, 1, '2023-08-24 08:56:23', '2023-12-12 10:51:42', 'admin');
|
| | | INSERT INTO `role_permission` VALUES (53, 2, 2, 1, '2021-11-28 15:07:54', '2023-12-12 10:57:16', 'user2');
|
| | | INSERT INTO `role_permission` VALUES (54, 2, 3, 1, '2021-11-28 15:07:54', '2023-12-12 10:57:16', 'user2');
|
| | | INSERT INTO `role_permission` VALUES (56, 2, 8, 1, '2021-11-28 15:07:54', '2023-12-12 10:57:16', 'user2');
|
| | | INSERT INTO `role_permission` VALUES (57, 2, 9, 1, '2021-11-28 15:07:54', '2023-12-12 10:57:16', 'user2');
|
| | | INSERT INTO `role_permission` VALUES (58, 2, 10, 1, '2021-11-28 15:07:54', '2023-12-12 10:57:16', 'user2');
|
| | | INSERT INTO `role_permission` VALUES (61, 2, 13, 1, '2021-11-28 15:07:54', '2023-12-12 10:57:16', 'user2');
|
| | | INSERT INTO `role_permission` VALUES (62, 2, 16, 1, '2021-11-28 15:07:54', '2023-12-12 10:57:16', 'user2');
|
| | | INSERT INTO `role_permission` VALUES (63, 2, 17, 1, '2021-11-28 15:07:54', '2023-12-12 10:57:16', 'user2');
|
| | | INSERT INTO `role_permission` VALUES (64, 2, 18, 1, '2021-11-28 15:07:54', '2023-12-12 10:57:16', 'user2');
|
| | | INSERT INTO `role_permission` VALUES (65, 2, 19, 1, '2021-11-28 15:07:54', '2023-12-12 10:57:16', 'user2');
|
| | | INSERT INTO `role_permission` VALUES (66, 2, 20, 1, '2021-11-28 15:07:54', '2023-12-12 10:57:16', 'user2');
|
| | | INSERT INTO `role_permission` VALUES (67, 2, 22, 1, '2021-11-28 15:07:54', '2023-12-12 10:57:16', 'user2');
|
| | | INSERT INTO `role_permission` VALUES (68, 2, 25, 1, '2021-11-28 15:07:54', '2023-12-12 10:57:16', 'user2');
|
| | | INSERT INTO `role_permission` VALUES (69, 2, 26, 1, '2021-11-28 15:07:54', '2023-12-12 10:57:16', 'user2');
|
| | | INSERT INTO `role_permission` VALUES (70, 2, 27, 1, '2021-11-28 15:07:54', '2023-12-12 10:57:16', 'user2');
|
| | | INSERT INTO `role_permission` VALUES (71, 2, 28, 1, '2021-11-28 15:07:54', '2023-12-12 10:57:16', 'user2');
|
| | | INSERT INTO `role_permission` VALUES (72, 2, 30, 1, '2023-08-24 08:55:34', '2023-12-12 10:57:16', 'user2');
|
| | | INSERT INTO `role_permission` VALUES (73, 2, 29, 1, '2023-08-24 08:56:15', '2023-12-12 10:57:16', 'user2');
|
| | | INSERT INTO `role_permission` VALUES (74, 2, 1, 1, '2023-08-30 16:29:46', '2023-12-12 10:57:16', 'user2');
|
| | | INSERT INTO `role_permission` VALUES (75, 1, 32, 1, '2023-12-05 08:54:59', '2023-12-12 10:51:42', 'admin');
|
| | | INSERT INTO `role_permission` VALUES (76, 1, 33, 1, '2023-12-05 08:55:04', '2023-12-12 10:51:42', 'admin');
|
| | | INSERT INTO `role_permission` VALUES (77, 1, 34, 1, '2023-12-05 08:55:09', '2023-12-12 10:51:42', 'admin');
|
| | | INSERT INTO `role_permission` VALUES (78, 1, 35, 1, '2023-12-05 14:54:43', '2023-12-12 10:51:42', 'admin');
|
| | | INSERT INTO `role_permission` VALUES (79, 2, 33, 1, '2023-12-08 10:58:25', '2023-12-12 10:57:16', 'user2');
|
| | | INSERT INTO `role_permission` VALUES (80, 2, 34, 1, '2023-12-08 10:59:15', '2023-12-12 10:57:16', 'user2');
|
| | | INSERT INTO `role_permission` VALUES (81, 2, 35, 1, '2023-12-08 10:59:23', '2023-12-12 10:57:16', 'user2');
|
| | | INSERT INTO `role_permission` VALUES (82, 5, 33, 1, '2023-12-08 10:59:33', '2023-12-12 10:57:25', 'user3');
|
| | | INSERT INTO `role_permission` VALUES (83, 5, 34, 0, '2023-12-08 10:59:39', '2023-12-12 10:57:25', 'user3');
|
| | | INSERT INTO `role_permission` VALUES (84, 5, 35, 0, '2023-12-08 10:59:51', '2023-12-12 10:57:25', 'user3');
|
| | | INSERT INTO `role_permission` VALUES (85, 5, 32, 0, '2023-12-08 11:08:54', '2023-12-12 10:57:25', 'user3');
|
| | | INSERT INTO `role_permission` VALUES (86, 5, 1, 1, '2023-12-08 11:45:47', '2023-12-12 10:57:25', 'user3');
|
| | | INSERT INTO `role_permission` VALUES (87, 5, 7, 1, '2023-12-08 11:45:55', '2023-12-12 10:57:25', 'user3');
|
| | | INSERT INTO `role_permission` VALUES (89, 5, 2, 1, '2021-11-28 15:07:54', '2023-12-12 10:57:25', 'user3');
|
| | | INSERT INTO `role_permission` VALUES (90, 5, 3, 1, '2021-11-28 15:07:54', '2023-12-12 10:57:25', 'user3');
|
| | | INSERT INTO `role_permission` VALUES (91, 5, 8, 1, '2021-11-28 15:07:54', '2023-12-12 10:57:25', 'user3');
|
| | | INSERT INTO `role_permission` VALUES (92, 5, 9, 1, '2021-11-28 15:07:54', '2023-12-12 10:57:25', 'user3');
|
| | | INSERT INTO `role_permission` VALUES (93, 5, 10, 1, '2021-11-28 15:07:54', '2023-12-12 10:57:25', 'user3');
|
| | | INSERT INTO `role_permission` VALUES (94, 5, 13, 1, '2021-11-28 15:07:54', '2023-12-12 10:57:25', 'user3');
|
| | | INSERT INTO `role_permission` VALUES (95, 5, 16, 1, '2021-11-28 15:07:54', '2023-12-12 10:57:25', 'user3');
|
| | | INSERT INTO `role_permission` VALUES (96, 5, 17, 1, '2021-11-28 15:07:54', '2023-12-12 10:57:25', 'user3');
|
| | | INSERT INTO `role_permission` VALUES (97, 5, 18, 1, '2021-11-28 15:07:54', '2023-12-12 10:57:25', 'user3');
|
| | | INSERT INTO `role_permission` VALUES (98, 5, 19, 1, '2021-11-28 15:07:54', '2023-12-12 10:57:25', 'user3');
|
| | | INSERT INTO `role_permission` VALUES (99, 5, 20, 1, '2021-11-28 15:07:54', '2023-12-12 10:57:25', 'user3');
|
| | | INSERT INTO `role_permission` VALUES (100, 5, 22, 1, '2021-11-28 15:07:54', '2023-12-12 10:57:25', 'user3');
|
| | | INSERT INTO `role_permission` VALUES (101, 5, 25, 1, '2021-11-28 15:07:54', '2023-12-12 10:57:25', 'user3');
|
| | | INSERT INTO `role_permission` VALUES (102, 5, 26, 1, '2021-11-28 15:07:54', '2023-12-12 10:57:25', 'user3');
|
| | | INSERT INTO `role_permission` VALUES (103, 5, 27, 1, '2021-11-28 15:07:54', '2023-12-12 10:57:25', 'user3');
|
| | | INSERT INTO `role_permission` VALUES (104, 5, 28, 1, '2021-11-28 15:07:54', '2023-12-12 10:57:25', 'user3');
|
| | | INSERT INTO `role_permission` VALUES (105, 5, 30, 1, '2023-08-24 08:55:34', '2023-12-12 10:57:25', 'user3');
|
| | | INSERT INTO `role_permission` VALUES (106, 5, 29, 1, '2023-08-24 08:56:15', '2023-12-12 10:57:25', 'user3');
|
| | | INSERT INTO `role_permission` VALUES (107, 5, 1, 1, '2023-08-30 16:29:46', '2023-12-12 10:57:25', 'user3');
|
| | |
|
| | | -- ----------------------------
|
| | | -- Table structure for storage_cage
|
| | |
| | | `cageno` int NULL DEFAULT NULL COMMENT '笼子号',
|
| | | PRIMARY KEY (`id`) USING BTREE,
|
| | | INDEX `raw_package_id1`(`raw_package_id`) USING BTREE
|
| | | ) ENGINE = InnoDB AUTO_INCREMENT = 492 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = DYNAMIC;
|
| | | ) ENGINE = InnoDB AUTO_INCREMENT = 491 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = DYNAMIC;
|
| | |
|
| | | -- ----------------------------
|
| | | -- Records of storage_rack
|
| | |
| | | `finsh_time` datetime(0) NULL DEFAULT NULL COMMENT '任务结束时间',
|
| | | `glass_id` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
|
| | | PRIMARY KEY (`id`) USING BTREE
|
| | | ) ENGINE = InnoDB AUTO_INCREMENT = 67 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = DYNAMIC;
|
| | | ) ENGINE = InnoDB AUTO_INCREMENT = 66 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = DYNAMIC;
|
| | |
|
| | | -- ----------------------------
|
| | | -- Records of storage_task
|