Merge remote-tracking branch 'origin/master'
45个文件已修改
4个文件已添加
13个文件已删除
| | |
| | | export default { |
| | | serverUrl: "127.0.0.1:88/api", |
| | | //serverUrl: "localhost:88/api/", |
| | | serverUrl: "10.153.19.150:88/api", |
| | | |
| | | serverUrl2: "10.153.19.150:88" |
| | | //serverUrl:"res.abeim.cn" |
| | | } |
| | |
| | | { |
| | | "Clear":"清除", |
| | | "ip":"192.168.10.21", |
| | | "username": "用户名", |
| | | "northglassMESsystem": "北玻MES系统", |
| | | "username": "账号", |
| | | "password": "密码", |
| | | "usernamePlaceholder": "请输入用户名", |
| | | "usernamePlaceholder": "请输入账号", |
| | | "passwordPlaceholder": "请输入密码", |
| | | "loginButton": "登录", |
| | | "registerButton": "注册", |
| | | "resetButton": "重置", |
| | | "usernameRequired": "请输入用户名", |
| | | "usernameLength": "用户名长度在5-15个字符之间", |
| | | "registerButton": "注册新用户", |
| | | "username": "姓名", |
| | | "usernameRequired": "请输入姓名", |
| | | "passwordRequired": "请输入密码", |
| | | "passwordLength": "密码长度在5-15个字符之间", |
| | | "passwordRequired": "确认密码", |
| | | "passwordRequired": "请确认密码", |
| | | "passwordRequired": "确认注册", |
| | | "langCancel": "取消", |
| | | "loginSuccess": "登录成功", |
| | | "langBtnCN": "中文", |
| | | "langBtnEN": "English", |
| | | "langHome": "首页", |
| | | "langUserManagement": "用户管理", |
| | | "langUserList": "用户列表", |
| | | "langUsernamePlaceholder": "请输入用户名", |
| | | "langEmailPlaceholder": "请输入邮箱", |
| | | "langSearch": "搜索", |
| | | "langAddUser": "添加用户", |
| | | "langUsername": "用户名", |
| | | "langEmail": "邮箱", |
| | | "langCreateTime": "创建时间", |
| | | "langDisabled": "是否禁用", |
| | | "langAction": "操作", |
| | | "langEdit": "修改", |
| | | "langDelete": "删除", |
| | | "langAddUserTitle": "添加用户", |
| | | "langPassword": "密码", |
| | | "langHome": "欢迎", |
| | | "langUserManagement": "使用北玻MES系统", |
| | | "langUserList": "退出", |
| | | "langUsernamePlaceholder": "打标机就绪状态", |
| | | "langEmailPlaceholder": "切割机就绪状态", |
| | | "langSearch": "手动确认", |
| | | "langAddUser": "选择工程", |
| | | "langUsername": "开始上片", |
| | | "langEmail": "暂停", |
| | | "langCreateTime": "停止任务", |
| | | "langDisabled": "工程号", |
| | | "langAction": "原片宽", |
| | | "langEdit": "原片长", |
| | | "langDelete": "膜系", |
| | | "langAddUserTitle": "数量", |
| | | "langPassword": "厚度", |
| | | "langState": "状态", |
| | | "langSelect": "请选择", |
| | | "langEditUserTitle": "修改用户", |
| | | "northglassMESsystem": "北玻MES系统", |
| | | "exit": "退出", |
| | | "changePassword": "修改密码", |
| | | "Old password":"旧密码", |
| | | "New password":"新密码", |
| | | "Confirm password":"提交密码", |
| | | "resetPassword": "重置密码", |
| | | "home": "主页", |
| | | "role": "角色", |
| | | "langRoleManagement": "角色管理", |
| | | "langRoleList": "角色列表", |
| | | "langEnterRoleName": "请输入角色名称", |
| | | "langAddRole": "添加角色", |
| | | "langName": "名称", |
| | | "langIsValid": "是否有效", |
| | | "langOperation": "操作", |
| | | "langPleaseSelect": "请选择", |
| | | "langValid": "有效", |
| | | "langInvalid": "无效", |
| | | "langConfirm": "确定", |
| | | "langCancel": "取消", |
| | | "langAddRoleSuccess": "添加角色成功", |
| | | "langEnterName": "请输入名称", |
| | | "langLengthBetween": "长度在", |
| | | "langAnd": "和", |
| | | "langCharacters": "个字符之间", |
| | | "langEnterState": "请输入状态", |
| | | "langUpdateState": "状态更新成功", |
| | | "langEditRole": "编辑角色", |
| | | "langEditRoleSuccess": "编辑角色成功", |
| | | "langDeleteRoleConfirm": "确定要删除该角色吗?", |
| | | "langPrompt": "提示", |
| | | "langDeleteRoleSuccess": "删除角色成功", |
| | | "langCancelDelete": "已取消删除", |
| | | "langRoleName": "角色名称", |
| | | "updateSuccessMessage": "更新成功", |
| | | "paginationTotal": "共 {total} 条", |
| | | "paginationSizes": "每页显示", |
| | | "paginationPrev": "上一页", |
| | | "paginationPager": "{currentPage}/{pageCount}", |
| | | "paginationNext": "下一页", |
| | | "paginationJumper": "跳至", |
| | | "breadcrumb": { |
| | | "home": "首页", |
| | | "permissionManagement": "权限管理", |
| | | "permissionList": "权限列表" |
| | | }, |
| | | "search": { |
| | | "placeholder": "请输入关键字" |
| | | }, |
| | | "button": { |
| | | "addPermission": "添加权限", |
| | | "cancel": "取消", |
| | | "confirm": "确认" |
| | | }, |
| | | "table": { |
| | | "role": "角色", |
| | | "permissionDescription": "权限描述", |
| | | "permissionValue": "权限值", |
| | | "createTime": "创建时间", |
| | | "isActive": "是否激活", |
| | | "operation": "操作" |
| | | }, |
| | | "tooltip": { |
| | | "edit": "修改", |
| | | "delete": "删除" |
| | | }, |
| | | "dialog": { |
| | | "addPermission": "添加权限", |
| | | "editPermission": "编辑权限" |
| | | }, |
| | | "form": { |
| | | "role": "角色", |
| | | "select": "请选择", |
| | | "permission": "权限", |
| | | "isActive": "是否激活" |
| | | }, |
| | | "操作": "操作", |
| | | "有效": "有效", |
| | | "无效": "无效", |
| | | "请输入名称": "请输入名称", |
| | | "长度在 2 到 15 个字符": "长度在 2 到 15 个字符", |
| | | "请输入状态": "请输入状态", |
| | | "添加角色": "添加角色", |
| | | "修改角色": "修改角色", |
| | | "删除角色": "删除角色", |
| | | "此操作将永久删除该角色, 是否继续?": "此操作将永久删除该角色, 是否继续?", |
| | | "提示": "提示", |
| | | "确定": "确定", |
| | | "取消": "取消", |
| | | "添加角色成功": "添加角色成功", |
| | | "更新状态成功": "更新状态成功", |
| | | "修改角色成功": "修改角色成功", |
| | | "删除角色成功": "删除角色成功", |
| | | "translation": { |
| | | "D01 VFD error": "D01 VFD 错误", |
| | | "D02 VFD error": "D02 VFD 错误", |
| | | "D03 VFD error": "D03 VFD 错误", |
| | | "D04 VFD error": "D04 VFD 错误", |
| | | "D05 VFD error": "D05 VFD 错误", |
| | | "D06 VFD error": "D06 VFD 错误", |
| | | "B01 VFD error": "B01 VFD 错误", |
| | | "B02 VFD error": "B02 VFD 错误", |
| | | "A01 VFD error": "A01 VFD 错误", |
| | | "A02 VFD error": "A02 VFD 错误", |
| | | "A01 servo turn error": "A01 servo turn 错误", |
| | | "A02 servo turn error": "A02 servo turn 错误", |
| | | "A01 servo travel error": "A01 servo travel 错误", |
| | | "A02 servo travel error": "A02 servo travel 错误", |
| | | "B01 servo travel error": "B01 servo travel 错误", |
| | | "B02 servo travel error": "B02 servo travel 错误", |
| | | "D01 DEC error": "D01 DEC 错误", |
| | | "D01 pos error": "D01 pos 错误", |
| | | "D02 DEC error": "D02 DEC 错误", |
| | | "D02 pos error": "D02 pos 错误", |
| | | "D03 DEC error": "D03 DEC 错误", |
| | | "D03 pos error": "D03 pos 错误", |
| | | "D04 DEC error": "D04 DEC 错误", |
| | | "D04 pos error": "D04 pos 错误", |
| | | "D05 DEC error": "D05 DEC 错误", |
| | | "D05 pos error": "D05 pos 错误", |
| | | "D06 DEC error": "D06 DEC 错误", |
| | | "D06 pos error": "D06 pos 错误", |
| | | "A01 DEC error": "A01 DEC 错误", |
| | | "A01 pos error": "A01 pos 错误", |
| | | "A02 DEC error": "A02 DEC 错误", |
| | | "A02 pos error": "A02 pos 错误", |
| | | "B01 IN DEC error": "B01 IN DEC 错误", |
| | | "B01 IN pos error": "B01 IN pos 错误", |
| | | "B01 OUT DEC error": "B01 OUT DEC 错误", |
| | | "B01 OUT pos error": "B01 OUT pos 错误", |
| | | "B02 IN DEC error": "B02 IN DEC 错误", |
| | | "B02 IN pos error": "B02 IN pos 错误", |
| | | "B02 OUT DEC error": "B02 OUT DEC 错误", |
| | | "B02 OUT pos error": "B02 OUT pos 错误" |
| | | }, |
| | | "Electrical": "用户管理", |
| | | "Parameter": "权限管理", |
| | | "Action": "上片机", |
| | | "Sign": "掰片/识别", |
| | | "State": "状态", |
| | | "Alarm": "报警信息", |
| | | "Distribute": "下发", |
| | | "Search": "搜索", |
| | | "dvstate": { |
| | | "automatic": "自动", |
| | | "manual": "手动" |
| | | }, |
| | | "langUsernameLabel": "用户名", |
| | | "langPasswordLabel": "密码", |
| | | "langPasswordPlaceholder": "请输入密码", |
| | | "langConfirmPasswordLabel": "确认密码", |
| | | "langConfirmPasswordPlaceholder": "请确认密码", |
| | | "langEmailLabel": "邮箱", |
| | | "langQQLabel": "QQ", |
| | | "langQQPlaceholder": "请输入QQ号码", |
| | | "langPhoneNumberLabel": "手机号码", |
| | | "langPhoneNumberPlaceholder": "请输入手机号码", |
| | | "langUsernameRequiredMessage": "请输入用户名", |
| | | "langUsernameLengthMessage": "用户名长度在5到15个字符之间", |
| | | "langPasswordRequiredMessage": "请输入密码", |
| | | "langPasswordLengthMessage": "密码长度在5到15个字符之间", |
| | | "langEmailRequiredMessage": "请输入邮箱", |
| | | "langEmailFormatMessage": "邮箱格式不正确", |
| | | "langRegisterButton": "注册", |
| | | "langResetButton": "重置", |
| | | "langCancelButton": "取消", |
| | | "langRegisterSuccessMessage": "注册成功", |
| | | "添加用户成功": "添加用户成功", |
| | | "confirmResetPassword": "确认重置密码为默认值吗?", |
| | | "confirm": "确定", |
| | | "cancel": "取消", |
| | | "passwordResetSuccess": "密码已重置为默认值", |
| | | "confirmDeleteCategory": "此操作将永久删除该分类, 是否继续?", |
| | | "prompt": "提示", |
| | | "userDeleteSuccess": "删除用户成功", |
| | | "deleteCanceled": "已取消删除", |
| | | "addUserSuccess": "添加用户成功", |
| | | "editUserSuccess": "修改用户成功", |
| | | "effective": "有效", |
| | | "invalid": "无效", |
| | | "addSuccessMessage": "添加成功", |
| | | "deleteConfirmMessage": "确定要删除该权限吗?", |
| | | "confirmButtonText": "确定", |
| | | "cancelButtonText": "取消", |
| | | "deleteSuccessMessage": "删除成功", |
| | | "deleteCancelledMessage": "已取消删除操作", |
| | | "Enter the glass barcode": "输入玻璃id", |
| | | "Infeed Barcodeid": "手动上片", |
| | | "Enter the order number": "输入订单号", |
| | | "Exit the glass by order number": "按订单出片", |
| | | "Please confirm the glass information": "请确认玻璃信息", |
| | | "Please confirm the Ordering Information": "请确认订单信息", |
| | | "Alarm Information": "报警信息", |
| | | "Cage Details": "理片笼详情", |
| | | "order": "订单", |
| | | "Length": "长", |
| | | "Width": "宽", |
| | | "Operate": "操作", |
| | | "Terminate Task":"结束任务", |
| | | "end task": "完成任务", |
| | | "Number": "数量", |
| | | "Outfeed glass barcode": "出片玻璃id", |
| | | "Infeed glass barcode": "进片玻璃id", |
| | | "Order No": "订单编号", |
| | | "List No": "列表编号", |
| | | "Box No": "箱子编号", |
| | | "Dim": "尺寸", |
| | | "id": "id", |
| | | "content": "内容", |
| | | "timeon": "报警时间", |
| | | "endTime": "结束时间", |
| | | "Cage No": "笼子", |
| | | "The Side": "内外侧", |
| | | "Slot No": "格子", |
| | | "Barcode": "玻璃id", |
| | | "Delete": "删除", |
| | | "Out": "出片", |
| | | "Operation successful": "操作成功", |
| | | "Operation canceled": "操作取消", |
| | | "There is no such order": "没有此订单的玻璃", |
| | | "There are currently tasks": "当前有任务", |
| | | "There is no such glass": "没有此玻璃", |
| | | "There is no such slot": "没有空闲格子", |
| | | "No delete allowed": "不能删除", |
| | | "No out allowed": "不能出片", |
| | | "Are you sure to perform this operation ?": "确定执行此操作?", |
| | | "prompt": "提示", |
| | | "Yes": "是", |
| | | "No": "否", |
| | | "today": "今天", |
| | | "yesterday": "昨天", |
| | | "week": "一周前", |
| | | "shijian": "日期", |
| | | "Pick a day": "选择日期", |
| | | "alarmid": "id", |
| | | "alacontent": "报警内容", |
| | | "time-on": "开始时间", |
| | | "End-Time": "结束时间", |
| | | "Please enter the password": "请输入密码", |
| | | "Password error": "密码错误", |
| | | "DataBase Connection failed": "数据库连接失败", |
| | | "Distribute parameters": "下发参数", |
| | | "The glass size is not within the range": "玻璃尺寸不在范围内", |
| | | "Add": "添加", |
| | | "Enable": "启用", |
| | | "Disable": "禁用", |
| | | "Usage": "使用率", |
| | | "Space (Pieces)": "空间(片数)", |
| | | "This glass is already in the cage": "笼子里已有此玻璃", |
| | | "Enter the Order No": "请输入订单id", |
| | | "OrderInfo": "订单信息", |
| | | "Query": "查询", |
| | | "permission update": "权限编辑", |
| | | "query was successful": "查询成功", |
| | | "Scan Code Point": "扫码位", |
| | | "Upper film position": "上片位", |
| | | "Glass Information": "玻璃信息", |
| | | "current Information": "当前信息", |
| | | "Modify Information": "修改信息", |
| | | "Clear Current": "清除当前", |
| | | "Confirm": "确认", |
| | | "The glass ID already exists in the loading queue": "上片队列已存在此玻璃id", |
| | | "This glass ID already exists in the sorting cage": "理片笼内已存在此玻璃id", |
| | | "Outing Queue":"出片队列", |
| | | "Enter the Aluminum Frame No":"请输入铝框id", |
| | | "Frame No":"铝框id", |
| | | "Glass information corresponding to aluminum frame":"铝框对应的玻璃信息", |
| | | "In the cage":"在笼内", |
| | | "Flipped":"翻转", |
| | | "In the queue":"在队列", |
| | | "Enter the Frame No":"请输入铝框id", |
| | | "Manually Infeed Glass":"手动进片", |
| | | "Normal":"正常", |
| | | "Entering":"正在进", |
| | | "Outing":"正在出", |
| | | "Suspend":"暂停", |
| | | "Stop":"停止", |
| | | "Start":"开始", |
| | | "Sequence":"顺序", |
| | | "Position":"位置", |
| | | "Top":"置顶", |
| | | "Up":"上移", |
| | | "Down":"下移", |
| | | "You do not have this permission":"You do not have this permission", |
| | | "Unable to find the placement method of the aluminum frame":"查询不到铝框摆放方式", |
| | | "Unable to find whether the aluminum frame is flipped or not":"查询不到铝框是否翻转", |
| | | "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":"确认状态", |
| | | "Next":"下一个", |
| | | "Current Frame":"当前铝框", |
| | | "Outside":"外侧", |
| | | "Inside":"内侧", |
| | | "Cancel":"取消", |
| | | "Are you sure to clear this barcode ?":"确定清除此玻璃id吗 ?", |
| | | "Terminate Feeding":"终止进片", |
| | | "Terminate Outing":"终止出片", |
| | | "SoftEmergencyStop":"软急停", |
| | | "Unable to clear glass ID in automatic mode":"无法在自动模式下清除玻璃ID", |
| | | "Are you sure you want an emergency stop ?":"确定要急停吗?", |
| | | "Current State":"当前状态", |
| | | "Automatic":"自动", |
| | | "Hand Movement":"手动", |
| | | "Please enter the correct glassID":"请输入正确的玻璃ID", |
| | | "Switch":"切换", |
| | | "This frame has glass that is currently outing":"此铝框有正在出片的玻璃", |
| | | "langparameter": { |
| | | "conveyor Velocity(Auto FAST)": "D01-D06 皮带输送自动快速", |
| | | "conveyor Velocity(Auto SLOW)": "D01-D06 皮带输送自动慢速", |
| | | "conveyor Velocity(Manual)": "D01-D06 皮带输送手动速度", |
| | | "A01 A02 TURN JOG Velocity": "A01 A02 翻转点动速度", |
| | | "A01 A02 TRAVEL JOG Velocity": "A01 A02 行走点动速度", |
| | | "B01 B02 TRAVEL JOG Velocity": "B01 B02 行走点动速度", |
| | | "A01 A02 TURN POS Velocity AUTO": "A01 A02 翻转自动定位速度", |
| | | "A01 A02 TURN POS Velocity manual": "A01 A02 翻转手动定位速度", |
| | | "A01 A02 TRAVEL POS Velocity AUTO": "A01 A02 行走自动定位速度", |
| | | "A01 A02 TRAVEL POS Velocity manual": "A01 A02 行走手动定位速度", |
| | | "B01 B02 TRAVEL POS Velocity AUTO": "B01 B02 行走自动定位速度", |
| | | "B01 B02 TRAVEL POS Velocity manual": "B01 B02 行走手动定位速度" |
| | | }, |
| | | "langActions": { |
| | | "D01 VFD conveyor": "D01 输送变频", |
| | | "D02 VFD conveyor": "D02 输送变频", |
| | | "D03 VFD conveyor": "D03 输送变频", |
| | | "D04 VFD conveyor": "D04 输送变频", |
| | | "D05 VFD conveyor": "D05 输送变频", |
| | | "D06 VFD conveyor": "D06 输送变频", |
| | | "A01 VFD conveyor": "A01 输送变频", |
| | | "A02 VFD conveyor": "A02 输送变频", |
| | | "B01 VFD conveyor": "B01 输送变频", |
| | | "B02 VFD conveyor": "B02 输送变频", |
| | | "A01 SERVE TURN JOG+": "A01 翻转伺服点动", |
| | | "A02 SERVE TURN JOG-": "A02 翻转伺服点动", |
| | | "A01 SERVE TRAVEL JOG+": "A01 行走伺服点动", |
| | | "A02 SERVE TRAVEL JOG-": "A02 行走伺服点动", |
| | | "B01 SERVE TRAVEL JOG+": "B01 行走伺服点动", |
| | | "B02 SERVE TRAVEL JOG-": "B02 行走伺服点动", |
| | | "A01 SERVE TURN POS": "A01 翻转伺服定位", |
| | | "A02 SERVE TURN POS": "A02 翻转伺服定位", |
| | | "A01 SERVE TRAVEL POS": "A01 行走伺服定位", |
| | | "A02 SERVE TRAVEL POS": "A02 行走伺服定位", |
| | | "B01 SERVE TRAVEL POS": "B01 行走伺服定位", |
| | | "B02 SERVE TRAVEL POS": "B02 行走伺服定位", |
| | | "B01 YV TURN": "B01 抬起电磁阀", |
| | | "B01 YV UP DOWN": "B01 上升下降电磁阀", |
| | | "B02 YV TURN": "B02 抬起电磁阀", |
| | | "B02 YV UP DOWN": "B02 上升下降电磁阀" |
| | | }, |
| | | "Signlang": { |
| | | "D01.SR dec": "D01.减速传感器", |
| | | "D01.SR in pos": "D01.到位传感器", |
| | | "D02.SR dec": "D02.减速传感器", |
| | | "D02.SR in pos": "D02.到位传感器", |
| | | "D03.SR into": "D03.进片传感器", |
| | | "D03.SR dec": "D03.减速传感器", |
| | | "D03.SR in pos": "D03.到位传感器", |
| | | "D04.SR dec": "D04.减速传感器", |
| | | "D04.SR in pos": "D04.到位传感器", |
| | | "D05.SR dec": "D05.减速传感器", |
| | | "D05.SR in pos": "D05.到位传感器", |
| | | "D06.SR dec": "D06.减速传感器", |
| | | "D06.SR in pos": "D06.到位传感器", |
| | | "B01.SR in dec": "B01.进片减速传感器", |
| | | "B01.SR in in pos": "B01.进片到位传感器", |
| | | "B01.SR out dec": "B01.出片减速传感器", |
| | | "B01.SR out in pos": "B01.出片到位传感器", |
| | | "B01.SR turn on": "B01.翻转上到位传感器", |
| | | "B01.SR turn off": "B01.翻转下到位传感器", |
| | | "B01.SR up": "B01.上升到位传感器", |
| | | "B01.SR down": "B01.下降到位传感器", |
| | | "B02.SR out dec": "B02.出片减速传感器", |
| | | "B02.SR out in pos": "B02.出片到位传感器", |
| | | "B02.SR in dec": "B02.进片减速传感器", |
| | | "B02.SR in in pos": "B02.进片到位传感器", |
| | | "B02.SR turn on": "B02.翻转上到位传感器", |
| | | "B02.SR turn off": "B02.翻转下到位传感器", |
| | | "B02.SR up": "B02.上升到位传感器", |
| | | "B02.SR down": "B02.下降到位传感器", |
| | | "B01.SR in safety": "B01.进片安全传感器", |
| | | "B01.SR out safety": "B01.出片安全传感器", |
| | | "B02.SR in safety": "B02.进片安全传感器", |
| | | "SB.start(+)": "SB.启动(+)按钮", |
| | | "SB.stop(1)": "SB.停止(-)按钮", |
| | | "SB.reset": "SB.复位按钮", |
| | | "SB.auto/manul": "SB.手/自切换按钮", |
| | | "D01.SB.confirm": "玻璃信息确认", |
| | | "SB.emg": "SB.急停按钮", |
| | | "D01.SB.start": "D01.启动", |
| | | "D06.SB.start": "D06.启动", |
| | | "B02.SR out safety ": "B02.出片安全传感器", |
| | | "SafetyDoor.requset": "安全门请求进入", |
| | | "SafetyDoor.confirm": "安全门确认", |
| | | "SafetyDoor.reset": "安全门复位", |
| | | "A01.SR left dec":"A01左键速", |
| | | "A01.SR left in pos":"A01左到位", |
| | | "A01.SR left safety":"A01左安全", |
| | | "A01.SR right dec":"A01右键速", |
| | | "A01.SR right in pos":"A01右到位", |
| | | "A01.SR right safety":"A01右安全", |
| | | "A01.SR turn home":"A01翻转原点", |
| | | "A01.SR turn up":"A01翻转上极限", |
| | | "A01.SR turn down":"A01翻转下极限", |
| | | "A01.SR travel home":"A01行走原点", |
| | | "A01.SR travel left dec":"A01行走左减速", |
| | | "A01.SR travel left limit":"A01行走左极限", |
| | | "A01.SR travel right dec":"A01行走右减速", |
| | | "A01.SR travel right limit":"A01行走右极限", |
| | | "A02.SR left dec":"A02左键速", |
| | | "A02.SR left in pos":"A02左到位", |
| | | "A02.SR left safety":"A02左安全", |
| | | "A02.SR right dec":"A02右键速", |
| | | "A02.SR right in pos":"A02右到位", |
| | | "A02.SR right safety":"A02右安全", |
| | | "A02.SR turn home":"A02翻转原点", |
| | | "A02.SR turn up":"A02翻转上极限", |
| | | "A02.SR turn down":"A02翻转下极限", |
| | | "A02.SR travel home":"A02行走原点", |
| | | "A02.SR travel left dec":"A02行走左减速", |
| | | "A02.SR travel left limit":"A02行走左极限", |
| | | "A02.SR travel right dec":"A02行走右减速", |
| | | "A02.SR travel right limit":"A02行走右极限", |
| | | "B01.SR origin":"B01.原点", |
| | | "B01.SR left limit":"B01.左极限", |
| | | "B01.SR right limit":"B01.右极限", |
| | | "B02.SR origin":"B02.原点", |
| | | "B02.SR left limit":"B02.左极限", |
| | | "B02.SR right limit":"B02.右极限", |
| | | "LED.red": "三色灯红", |
| | | "LED.green": "三色灯绿", |
| | | "LED.yellow": "三色灯黄", |
| | | "D01.LED.green": "D01.绿灯", |
| | | "D06.LED.green": "D06.绿灯", |
| | | "B01.YV.turn": "B01.电磁阀翻转", |
| | | "B01.YV.up down": "B01.电磁阀上升下降", |
| | | "B01.YV.gassing": "B01.电磁阀吹气", |
| | | "B02.YV.turn": "B02.电磁阀翻转", |
| | | "B02.YV.up down": "B02.电磁阀上升下降", |
| | | "B02.YV.gassing": "B02.电磁阀吹气", |
| | | "SafetyDoor.Led": "安全门状态灯", |
| | | "SafetyDoor.open": "安全门打开", |
| | | "D01 SB.confirm":"玻璃信息确认指示灯", |
| | | "A01 oilPump":"A01注油泵", |
| | | "A01 motorCtr":"A01电机控制", |
| | | "A02 oilPump":"A02注油泵", |
| | | "A02 motorCtr":"A02电机控制", |
| | | "space":"备用" |
| | | |
| | | }, |
| | | "Statelang": { |
| | | "D01.State": "D01.状态", |
| | | "D02.State": "D02.状态", |
| | | "B01.State": "B01.状态", |
| | | "B02.State": "B02.状态", |
| | | "A01.State": "A01.状态", |
| | | "A02.State": "A02.状态", |
| | | "D03.State": "D03.状态", |
| | | "D04.State": "D04.状态", |
| | | "D05.State": "D05.状态", |
| | | "D06.State": "D06.状态" |
| | | }, |
| | | "Automatic State":"自动状态", |
| | | "ManualJog":"开关控制", |
| | | "ManualonePosition":"手动定位", |
| | | "Servomanualone":"半自动", |
| | | "Address parameter settings":"地址参数设置", |
| | | "Speed parameter settings":"速度参数设置", |
| | | "InteractionState":"交互状态", |
| | | "Set":"设定" |
| | | "langSelect": "宽", |
| | | "langEditUserTitle": "长", |
| | | "exit": "操作", |
| | | "changePassword": "工程", |
| | | "Old password":"请选择工程", |
| | | "New password":"添加原片", |
| | | "langConfirm": "确认", |
| | | "langUsernameLabel": "添加", |
| | | "langPasswordLabel": "删除", |
| | | "langPasswordLabel": "是否删除该条信息?", |
| | | "langPasswordLabel": "是否开始上片?", |
| | | "langPasswordLabel": "是否暂停?", |
| | | "langPasswordLabel": "是否停止任务?", |
| | | "langPasswordLabel": "栅格号", |
| | | "langPasswordLabel": "玻璃编号", |
| | | "langPasswordLabel": "高", |
| | | "langPasswordLabel": "启用状态", |
| | | "langPasswordLabel": "启用", |
| | | "langPasswordLabel": "未启用", |
| | | "langPasswordLabel": "报缺", |
| | | "langPasswordLabel": "进炉中", |
| | | "langPasswordLabel": "进炉前", |
| | | "langPasswordLabel": "已出炉玻璃", |
| | | "langPasswordLabel": "版图编号", |
| | | "langPasswordLabel": "下片位", |
| | | "langPasswordLabel": "架号", |
| | | "langPasswordLabel": "流程卡号", |
| | | "langPasswordLabel": "总数量", |
| | | "langPasswordLabel": "已落架数量", |
| | | "langPasswordLabel": "状态", |
| | | "langPasswordLabel": "设备号", |
| | | "langPasswordLabel": "启用状态", |
| | | "langPasswordLabel": "绑定架子", |
| | | "langPasswordLabel": "清空", |
| | | |
| | | } |
| | |
| | | import {createRouter, createWebHashHistory} from 'vue-router' |
| | | |
| | | import User from '../views/sys/User.vue' |
| | | import Role from '../views/sys/Role.vue' |
| | | import Menu from '../views/sys/Menu.vue' |
| | | // import User from '../views/sys/User.vue' |
| | | // import Role from '../views/sys/Role.vue' |
| | | // import Menu from '../views/sys/Menu.vue' |
| | | |
| | | const router = createRouter({ |
| | | history: createWebHashHistory(), |
| | |
| | | name: 'screen', |
| | | component: () => import('../views/Visualization/screen.vue'), |
| | | children: [ |
| | | { |
| | | path: '/sys/users', |
| | | name: 'SysUser', |
| | | component: User |
| | | }, |
| | | { |
| | | path: '/sys/roles', |
| | | name: 'SysRole', |
| | | component: Role |
| | | }, |
| | | { |
| | | path: '/sys/menus', |
| | | name: 'SysMenu', |
| | | component: Menu |
| | | }, |
| | | // { |
| | | // path: '/sys/users', |
| | | // name: 'SysUser', |
| | | // component: User |
| | | // }, |
| | | // { |
| | | // path: '/sys/roles', |
| | | // name: 'SysRole', |
| | | // component: Role |
| | | // }, |
| | | // { |
| | | // path: '/sys/menus', |
| | | // name: 'SysMenu', |
| | | // component: Menu |
| | | // }, |
| | | ] |
| | | }, |
| | | { |
| | |
| | | const open = async(row) => { |
| | | try { |
| | | const confirmResult = await ElMessageBox.confirm( |
| | | '是否删除该条信息?', |
| | | '是否报缺该条信息?', |
| | | '提示', |
| | | { |
| | | confirmButtonText: '是', |
| | |
| | | if (confirmResult === 'confirm') { |
| | | // 用户点击了“是”,现在调用删除接口 |
| | | const deleteResponse = await request.post("/cacheGlass/edgStorageCage/edgStorageCageGlass", { |
| | | id:0, |
| | | slot: row.slot |
| | | id: row.id, |
| | | esdId: row.esdId |
| | | }) |
| | | if (response.code == 200) { |
| | | // 删除成功,您可以根据需要处理成功的情况 |
| | | alert('删除成功!'); |
| | | } else { |
| | | // 删除失败,您可以处理错误或显示错误信息给用户 |
| | | alert('删除失败:' + deleteResponse.message); |
| | | alert('删除失败:' + deleteResponse.message); |
| | | } |
| | | } |
| | | } catch (error) { |
| | |
| | | ] |
| | | |
| | | }) |
| | | |
| | | |
| | | |
| | | </script> |
| | | |
| | | <template> |
| | |
| | | </el-table> |
| | | </div> |
| | | </el-card> |
| | | <!-- <el-dialog v-model="adda" top="30vh" width="25%" title="是否删除该条信息?" > |
| | | <template #footer> |
| | | <div id="dialog-footer"> |
| | | <el-button type="primary" @click="handleConfirma"> |
| | | 确认 |
| | | </el-button> |
| | | <el-button @click="adda = false">取消</el-button> |
| | | </div> |
| | | </template> |
| | | </el-dialog> --> |
| | | </div> |
| | | <div id="awatch"> |
| | | <img src="../../assets/woshihuancun.png" alt="" style="width: 60%;height: 90%;margin-left: 260px;margin-top: 20px;"> |
| | |
| | | import {reactive} from "vue"; |
| | | import {useRouter} from "vue-router" |
| | | const router = useRouter() |
| | | const adda = ref(false) |
| | | |
| | | import request from "@/utils/request" |
| | | import { ref, onMounted } from "vue"; |
| | |
| | | // import LanguageMixin from './lang/LanguageMixin' |
| | | |
| | | const tableData = ref([]) |
| | | const slot = ref('') |
| | | |
| | | |
| | | // 发送获取表格数据的请求 |
| | | // const fetchTableData = async () => { |
| | | // try { |
| | | // // 发送获取表格数据的请求,并等待响应 |
| | | // // const response = await request.post("/loadGlass/optimizeProject/listByState", requestData); |
| | | // const response = await request.get("unLoadGlass/downStorage/selectStorageCage"); |
| | | |
| | | // // 检查响应状态 |
| | | // if (response.code === 200) { |
| | | // // 更新表格数据 |
| | | // console.log('成功获取表格数据:', response.data); |
| | | // tableData.splice(0, tableData.length, ...response.data); |
| | | // } else { |
| | | // // 请求失败,显示错误消息 |
| | | // ElMessage.error(response.msg); |
| | | // } |
| | | // } catch (error) { |
| | | // // 处理请求失败的情况 |
| | | // ElMessage.error('获取表格数据失败,请重试'); |
| | | // } |
| | | // }; |
| | | // onMounted(fetchTableData); |
| | | |
| | | |
| | | |
| | | request.get("unLoadGlass/downStorage/selectStorageCage").then((res) => { |
| | | request.get("/unLoadGlass/downStorage/selectStorageCage").then((res) => { |
| | | if (res.code == 200) { |
| | | |
| | | console.log(res.data); |
| | | tableData.value = res.data |
| | | console.log(res.data[0].slot); |
| | | } else { |
| | | ElMessage.warning(res.msg) |
| | | |
| | | } |
| | | }); |
| | | |
| | | const dialogForm = () => { |
| | | ElMessageBox.confirm( |
| | | '是否报缺?', |
| | | '提示', |
| | | { |
| | | confirmButtonText: '是', |
| | | cancelButtonText: '取消', |
| | | type: 'warning', |
| | | } |
| | | ) |
| | | .then(() => { |
| | | // this.boxa = true |
| | | // this.box = false |
| | | |
| | | // const getTableRow = (row,type) =>{ |
| | | // switch (type) { |
| | | // case 'delete':{ |
| | | // let flowData = ref({ |
| | | // id:0, |
| | | // slot:row.slot |
| | | // }) |
| | | // request.post("/cacheGlass/edgStorageCage/edgStorageCageGlass",flowData.value).then((res) => { |
| | | // if(res.code==200){ |
| | | // ElMessage.success(t('searchOrder.msgDeleteSuccess')) |
| | | // router.push({path:'/main/delivery/selectDelivery',query:{random:Math.random()}}) |
| | | // }else{ |
| | | // ElMessage.warning(res.msg) |
| | | // router.push("/login") |
| | | // } |
| | | // }) |
| | | |
| | | // return |
| | | // } |
| | | // } |
| | | // } |
| | | // let slots = ref({ |
| | | // id:0, |
| | | // slot: slot.value |
| | | // }) |
| | | const open = async(row) => { |
| | | try { |
| | | const confirmResult = await ElMessageBox.confirm( |
| | | '是否删除该条信息?', |
| | | '提示', |
| | | { |
| | | confirmButtonText: '是', |
| | | cancelButtonText: '取消', |
| | | type: 'warning', |
| | | } |
| | | ); |
| | | if (confirmResult === 'confirm') { |
| | | // 用户点击了“是”,现在调用删除接口 |
| | | const deleteResponse = await request.post("/cacheGlass/edgStorageCage/edgStorageCageGlass", { |
| | | id:0, |
| | | slot: row.slot |
| | | }) |
| | | } |
| | | const open = () => { |
| | | ElMessageBox.confirm( |
| | | '是否删除该条信息?', |
| | | '提示', |
| | | { |
| | | confirmButtonText: '是', |
| | | cancelButtonText: '取消', |
| | | type: 'warning', |
| | | } |
| | | ) |
| | | .then(() => { |
| | | ElMessage({ |
| | | type: 'success', |
| | | message: '删除成功!', |
| | | }) |
| | | }) |
| | | .catch(() => { |
| | | ElMessage({ |
| | | type: 'info', |
| | | message: '删除失败', |
| | | }) |
| | | }) |
| | | } |
| | | const getTableRow = (row,type) =>{ |
| | | switch (type) { |
| | | case 'edit' :{ |
| | | //alert('我接收到子组件传送的编辑信息') |
| | | router.push({path: '/main/returns/createReturns', query: { ReturnID: 'TH24010101' }}) |
| | | break |
| | | } |
| | | case 'delete':{ |
| | | alert('我接收到子组件传送的删除信息') |
| | | break |
| | | } |
| | | } |
| | | } |
| | | if (response.code == 200) { |
| | | // 删除成功,您可以根据需要处理成功的情况 |
| | | alert('删除成功!'); |
| | | } else { |
| | | // 删除失败,您可以处理错误或显示错误信息给用户 |
| | | alert('删除失败:' + deleteResponse.message); |
| | | } |
| | | } |
| | | } catch (error) { |
| | | // 处理可能出现的错误,比如 ElMessageBox 抛出的异常等 |
| | | console.error('发生错误:', error); |
| | | } |
| | | }; |
| | | // const open = () => { |
| | | // ElMessageBox.confirm( |
| | | // '是否删除该条信息?', |
| | | // '提示', |
| | | // { |
| | | // confirmButtonText: '是', |
| | | // cancelButtonText: '取消', |
| | | // type: 'warning', |
| | | // } |
| | | // ) |
| | | // .then(() => { |
| | | // ElMessage({ |
| | | // type: 'success', |
| | | // message: '删除成功!', |
| | | // }) |
| | | // }) |
| | | // .catch(() => { |
| | | // ElMessage({ |
| | | // type: 'info', |
| | | // message: '删除失败', |
| | | // }) |
| | | // }) |
| | | // } |
| | | // 删除 |
| | | // const handleBindRacka = (row) => { |
| | | // adda.value = true; // 打开绑定架子对话框 |
| | | // }; |
| | | // // 删除 |
| | | // const handleConfirma = async () => { |
| | | // try { |
| | | // window.localStorage.setItem('slot', res.data.slot) |
| | | // let slot = window.localStorage.getItem('slot') |
| | | // const response = await request.post('/cacheGlass/edgStorageCage/edgStorageCageGlass', { |
| | | // slot: slot.value, |
| | | // id: 0 |
| | | // }); |
| | | |
| | | // if (response.code == 200) { |
| | | // // 绑定成功,处理逻辑 |
| | | // ElMessage.success(response.message); |
| | | // adda.value = false; |
| | | // } else { |
| | | // // 请求失败,显示错误消息 |
| | | // ElMessage.error(response.msg); |
| | | // } |
| | | // } catch (error) { |
| | | // // 处理错误 |
| | | // console.error(error); |
| | | // } |
| | | // }; |
| | | |
| | | const gridOptions = reactive({ |
| | | border: "full",//表格加边框 |
| | |
| | | <el-table height="240" ref="table" |
| | | @selection-change="handleSelectionChange" |
| | | :data="tableData" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}"> |
| | | <el-table-column prop="id" align="center" label="玻璃ID" min-width="80" /> |
| | | <el-table-column prop="sequence" align="center" label="位置" min-width="120" /> |
| | | <el-table-column prop="slot" align="center" label="栅格号" min-width="80" /> |
| | | <el-table-column prop="glass_id" align="center" label="玻璃编号" min-width="80" /> |
| | | <el-table-column prop="width" align="center" label="宽" min-width="120" /> |
| | | <el-table-column prop="height" align="center" label="长" min-width="120" /> |
| | | <el-table-column prop="height" align="center" label="高" min-width="120" /> |
| | | <el-table-column |
| | | align="center" |
| | | label="启用状态" |
| | | min-width="80" |
| | | prop="enable_state" |
| | | > |
| | | <template #default="scope"> |
| | | <el-tag type="success" >{{ scope.row.enable_state==1?"启用":"未启用" }}</el-tag> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column fixed="right" label="操作" align="center" width="200"> |
| | | <template #default> |
| | | <el-button size="mini" type="text" plain @click="dialogForm">报缺</el-button> |
| | | <template #default="scope"> |
| | | <!-- <el-button size="mini" type="text" plain @click="handleBindRacka(scope.row)">报缺</el-button> --> |
| | | <el-button size="mini" type="text" plain @click="open(scope.row)">报缺</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | </div> |
| | | </el-card> |
| | | |
| | | <!-- <el-dialog v-model="adda" top="30vh" width="25%" title="是否删除该条信息?" > |
| | | <template #footer> |
| | | <div id="dialog-footer"> |
| | | <el-button type="primary" @click="handleConfirma"> |
| | | 确认 |
| | | </el-button> |
| | | <el-button @click="adda = false">取消</el-button> |
| | | </div> |
| | | </template> |
| | | </el-dialog> --> |
| | | </div> |
| | | <div id="awatch"> |
| | | <img src="../../assets/woshihuancun.png" alt="" style="width: 60%;height: 90%;margin-left: 260px;margin-top: 20px;"> |
| | |
| | | <template> |
| | | <!-- <el-card style="flex: 1;margin-left: 10px;margin-top: 20px;" v-loading="loading"> --> |
| | | <el-card style="flex: 1;margin-left: 10px;margin-top: 10px;margin-right: 10px;" v-loading="loading"> |
| | | <el-scrollbar height="700px"> |
| | | <div id="app" style="margin-top: 20px;"> |
| | | <div |
| | | :style="{ width: `${olWidth}px`, height: `${olHeight}px`,position: 'relative' }" |
| | |
| | | v-for="(rect, index) in adjustedRects" |
| | | :key="index" |
| | | class="rect" |
| | | @click="handleBind" |
| | | :style="{ position: 'absolute', top: `${rect.y_axis}px`, left: `${rect.x_axis}px`, width: `${rect.width}px`, height: `${rect.height}px` }" |
| | | > |
| | | <!-- 箭头 --> |
| | | <div id="arrow"></div> |
| | | <div id="line"></div> |
| | | <!-- <div id="arrow"></div> |
| | | <div id="line"></div> --> |
| | | <!-- <div class="centered-text" >NG24030401B01</div> --> |
| | | <div class="centered-text"> |
| | | <div>{{ rect.process_id }}</div> |
| | | <div style="margin-top: 50px;margin-left: -85px;">{{ rect.width }}*{{ rect.height }}</div> |
| | | </div> |
| | | </div> |
| | | <!-- 点击弹出 --> |
| | | <el-dialog v-model="blind" top="30vh" width="15%" style="text-align: center;"> |
| | | <!-- <template #footer> --> |
| | | <!-- <div id="dialog-footer"> --> |
| | | <el-button type="warning" plain :icon="Delete" @click="handle" style="width: 120px;margin-left: 10px;"> |
| | | 破损 |
| | | </el-button> |
| | | <el-button type="danger" plain @click="blind = false" style="width: 120px;margin-top: 10px;"> |
| | | <el-icon class="el-icon--right"><Upload /></el-icon> |
| | | 人工拿走</el-button> |
| | | <!-- </div> --> |
| | | <!-- </template> --> |
| | | </el-dialog> |
| | | </div> |
| | | </div> |
| | | </el-scrollbar> |
| | | </el-card> |
| | | </template> |
| | | |
| | | <script setup> |
| | | <script setup lang="ts"> |
| | | import { Delete, Upload } from '@element-plus/icons-vue' |
| | | import { ref, onMounted } from 'vue'; |
| | | import request from "@/utils/request" |
| | | const blind = ref(false) |
| | | const olWidth = ref(); |
| | | const olHeight = ref(); |
| | | const process_id = ref(); // 用于存储process_id的响应式引用 |
| | | // const rects = ref([]); // 用于存储矩形数据的响应式引用 |
| | | const adjustedRects = ref([]); |
| | | const handleBind = (row) => { |
| | | |
| | | blind.value = true; // 打开绑定架子对话框 |
| | | }; |
| | | onMounted(async () => { |
| | | try { |
| | | const response = await request.post('/cacheGlass/taskCache/currentCutTerritory'); // 替换为你的API端点 |
| | |
| | | width: 240px; /* 直线的长度,根据需要调整 */ |
| | | background-color: #911005; /* 直线的颜色 */ |
| | | } |
| | | |
| | | </style> |
| | |
| | | <script lang="ts" setup> |
| | | import {reactive, ref} from 'vue' |
| | | import {useRouter} from 'vue-router' |
| | | import {ElMessage, ElMessageBox} from 'element-plus' |
| | | |
| | | import {Search} from "@element-plus/icons-vue"; |
| | | import {reactive} from "vue"; |
| | | import {useRouter} from "vue-router" |
| | | const router = useRouter() |
| | | |
| | | |
| | | import { ref } from 'vue' |
| | | import { ElMessage, ElMessageBox } from 'element-plus' |
| | | import { tr } from "element-plus/es/locale"; |
| | | const dialogFormVisible = ref(false) |
| | | const dialogFormVisiblea = ref(false) |
| | | const dialogFormVisibleb = ref(false) |
| | | |
| | | const carposition1 = ref(40) |
| | | const carposition2 = ref(200) |
| | | const timers1 = ref(true) |
| | | const timers2 = ref(true) |
| | | const cellshow = ref(false) |
| | | const cellshow1 = ref(true) |
| | | const cellshow2 = ref(true) |
| | | const million = ref(0) |
| | | const million1 = ref(0) |
| | | |
| | | const loading = null |
| | | const handleSelectionChange = null |
| | | |
| | | |
| | | const carposition1 = ref(60); |
| | | const carposition2 = ref(220); |
| | | const carposition3 = ref(60); |
| | | const carposition4 = ref(260); |
| | | const timers1 =ref(true); |
| | | const timers2 =ref(true); |
| | | const timers3 =ref(true); |
| | | const timers4 =ref(true); |
| | | const cellshow=ref(false); |
| | | const cellshow5=ref(false); |
| | | const c1=ref(false); |
| | | const c2=ref(false); |
| | | const cellshow1=ref(true); |
| | | const cellshow2=ref(true); |
| | | const cellshow3=ref(true); |
| | | const cellshow4=ref(true); |
| | | const million=ref(0); |
| | | const million1=ref(0); |
| | | const million3=ref(0); |
| | | const million4=ref(0); |
| | | |
| | | const currentPage4 = ref(4) |
| | | const pageSize4 = ref(100) |
| | | const tableData = [ |
| | |
| | | e: '1', |
| | | f: '100*100', |
| | | g: '', |
| | | }, |
| | | } |
| | | ] |
| | | const dialogForm = () => { |
| | | ElMessageBox.confirm('确定要急停吗?', '提示', { |
| | | confirmButtonText: '是', |
| | | cancelButtonText: '否', |
| | | type: 'warning', |
| | | }) |
| | | .then(() => { |
| | | ElMessage({ |
| | | type: 'success', |
| | | message: '急停成功!', |
| | | }) |
| | | ElMessageBox.confirm( |
| | | '确定要急停吗?', |
| | | '提示', |
| | | { |
| | | confirmButtonText: '是', |
| | | cancelButtonText: '否', |
| | | type: 'warning', |
| | | } |
| | | ) |
| | | .then(() => { |
| | | ElMessage({ |
| | | type: 'success', |
| | | message: '急停成功!', |
| | | }) |
| | | .catch(() => { |
| | | ElMessage({ |
| | | type: 'info', |
| | | message: '急停失败', |
| | | }) |
| | | .catch(() => { |
| | | ElMessage({ |
| | | type: 'info', |
| | | message: '急停失败', |
| | | }) |
| | | }) |
| | | } |
| | | |
| | | var timer = setInterval(() => { |
| | | console.log(million.value, million1.value) |
| | | million.value += 1 |
| | | if (million.value - million1.value !== 12) { |
| | | if (million.value - million1.value >= 2) { |
| | | if (carposition1.value == 200) { |
| | | timers1.value = false |
| | | } else if (carposition1.value == 40) { |
| | | timers1.value = true |
| | | |
| | | var timer=setInterval(() => { |
| | | console.log(million.value,million1.value); |
| | | million.value+=1; |
| | | if(million.value-million1.value!==12){ |
| | | |
| | | if(million.value-million1.value>=2){ |
| | | if(carposition1.value==220){ |
| | | timers1.value=false; |
| | | }else if(carposition1.value==60){ |
| | | timers1.value=true; |
| | | } |
| | | if(timers1.value==true){ |
| | | carposition1.value=carposition1.value+16; |
| | | }else{ |
| | | carposition1.value=carposition1.value-16; |
| | | } |
| | | |
| | | |
| | | if(carposition2.value==220){ |
| | | timers2.value=false; |
| | | }else if(carposition2.value==60){ |
| | | timers2.value=true; |
| | | } |
| | | if(timers2.value==true){ |
| | | carposition2.value+=16; |
| | | }else{ |
| | | carposition2.value-=16; |
| | | } |
| | | }else{ |
| | | |
| | | } |
| | | if (timers1.value == true) { |
| | | carposition1.value = carposition1.value + 16 |
| | | } else { |
| | | carposition1.value = carposition1.value - 16 |
| | | }else{ |
| | | million1.value=million.value; |
| | | if(cellshow.value==true){ |
| | | cellshow.value=false; |
| | | |
| | | }else{ |
| | | cellshow.value=true; |
| | | |
| | | } |
| | | |
| | | if (carposition2.value == 200) { |
| | | timers2.value = false |
| | | } else if (carposition2.value == 40) { |
| | | timers2.value = true |
| | | if(cellshow1.value==true){ |
| | | cellshow1.value=false; |
| | | }else{ |
| | | cellshow1.value=true; |
| | | } |
| | | if (timers2.value == true) { |
| | | carposition2.value += 16 |
| | | } else { |
| | | carposition2.value -= 16 |
| | | if(cellshow2.value==true){ |
| | | cellshow2.value=false; |
| | | }else{ |
| | | cellshow2.value=true; |
| | | } |
| | | } else { |
| | | } |
| | | } else { |
| | | million1.value = million.value |
| | | if (cellshow.value == true) { |
| | | cellshow.value = false |
| | | } else { |
| | | cellshow.value = true |
| | | |
| | | }, 1000); |
| | | |
| | | var timer=setInterval(() => { |
| | | console.log(million3.value,million4.value); |
| | | million3.value+=1; |
| | | if(million3.value-million4.value!==12){ |
| | | |
| | | if(million3.value-million4.value>=2){ |
| | | if(carposition3.value==260){ |
| | | timers3.value=false; |
| | | }else if(carposition3.value==60){ |
| | | timers3.value=true; |
| | | } |
| | | if(timers3.value==true){ |
| | | carposition3.value=carposition3.value+20; |
| | | }else{ |
| | | carposition3.value=carposition3.value-20; |
| | | } |
| | | |
| | | |
| | | if(carposition4.value==260){ |
| | | timers4.value=false; |
| | | }else if(carposition4.value==60){ |
| | | timers4.value=true; |
| | | } |
| | | if(timers4.value==true){ |
| | | carposition4.value+=20; |
| | | }else{ |
| | | carposition4.value-=20; |
| | | } |
| | | }else{ |
| | | |
| | | } |
| | | }else{ |
| | | million4.value=million3.value; |
| | | if(cellshow5.value==true){ |
| | | cellshow5.value=false; |
| | | |
| | | }else{ |
| | | cellshow5.value=true; |
| | | |
| | | } |
| | | if(cellshow3.value==true){ |
| | | cellshow3.value=false; |
| | | }else{ |
| | | cellshow3.value=true; |
| | | } |
| | | if(cellshow4.value==true){ |
| | | cellshow4.value=false; |
| | | }else{ |
| | | cellshow4.value=true; |
| | | } |
| | | } |
| | | if (cellshow1.value == true) { |
| | | cellshow1.value = false |
| | | } else { |
| | | cellshow1.value = true |
| | | } |
| | | if (cellshow2.value == true) { |
| | | cellshow2.value = false |
| | | } else { |
| | | cellshow2.value = true |
| | | } |
| | | } |
| | | }, 100000) |
| | | |
| | | const getTableRow = (row, type) => { |
| | | |
| | | }, 1000); |
| | | |
| | | const getTableRow = (row,type) =>{ |
| | | switch (type) { |
| | | case 'edit': { |
| | | case 'edit' :{ |
| | | //alert('我接收到子组件传送的编辑信息') |
| | | router.push({ |
| | | path: '/main/returns/createReturns', |
| | | query: {ReturnID: 'TH24010101'}, |
| | | }) |
| | | router.push({path: '/main/returns/createReturns', query: { ReturnID: 'TH24010101' }}) |
| | | break |
| | | } |
| | | case 'delete': { |
| | | case 'delete':{ |
| | | alert('我接收到子组件传送的删除信息') |
| | | break |
| | | } |
| | | } |
| | | } |
| | | |
| | | |
| | | const gridOptions = reactive({ |
| | | border: 'full', //表格加边框 |
| | | keepSource: true, //保持源数据 |
| | | align: 'center', //文字居中 |
| | | stripe: true, //斑马纹 |
| | | rowConfig: {isCurrent: true, isHover: true, height: 50}, //鼠标移动或选择高亮 |
| | | border: "full",//表格加边框 |
| | | keepSource: true,//保持源数据 |
| | | align: 'center',//文字居中 |
| | | stripe:true,//斑马纹 |
| | | rowConfig: {isCurrent: true, isHover: true,height: 50},//鼠标移动或选择高亮 |
| | | id: 'OrderList', |
| | | showFooter: true, //显示脚 |
| | | showFooter: true,//显示脚 |
| | | printConfig: {}, |
| | | importConfig: {}, |
| | | exportConfig: {}, |
| | | scrollY: {enabled: true}, //开启虚拟滚动 |
| | | showOverflow: true, |
| | | scrollY:{ enabled: true },//开启虚拟滚动 |
| | | showOverflow:true, |
| | | columnConfig: { |
| | | resizable: true, |
| | | useKey: true, |
| | | useKey: true |
| | | }, |
| | | filterConfig: { |
| | | //筛选配置项 |
| | | remote: true, |
| | | filterConfig: { //筛选配置项 |
| | | remote: true |
| | | }, |
| | | customConfig: { |
| | | storage: true, |
| | | storage: true |
| | | }, |
| | | editConfig: { |
| | | trigger: 'click', |
| | | mode: 'row', |
| | | showStatus: true, |
| | | showStatus: true |
| | | }, |
| | | data: [ |
| | | data: [ |
| | | { |
| | | id: '1', |
| | | long: '5', |
| | | wide: '1005', |
| | | thick: '183.6', |
| | | }, |
| | | 'id': '1', |
| | | 'long': '5', |
| | | 'wide': '1005', |
| | | 'thick': '183.6', |
| | | } |
| | | ], |
| | | }) |
| | | </script> |
| | | |
| | | |
| | | <template> |
| | | <div style="height: 700px;"> |
| | | <!-- <el-button style="margin-top: 5px;margin-left: 10px;" id="searchButton" type="primary" @click="dialogFormVisible = true">手动进片</el-button> --> |
| | | <el-button style="margin-top: 5px;margin-left: 10px;" |
| | | id="searchButton" |
| | | type="primary" |
| | | @click="dialogFormVisiblea = true">订单信息 |
| | | </el-button> |
| | | <el-button style="margin-top: 5px;margin-left: 10px;" |
| | | id="searchButton" |
| | | type="success" |
| | | @click="dialogFormVisibleb = true">出片队列 |
| | | </el-button> |
| | | <el-button style="margin-top: 5px;margin-left: 10px;" |
| | | id="searchButton" |
| | | type="danger">终止进片 |
| | | </el-button> |
| | | <el-button style="margin-top: 5px;margin-left: 10px;" |
| | | id="searchButton" |
| | | type="danger">终止出片 |
| | | </el-button> |
| | | <el-button style="margin-top: 5px;margin-left: 10px;" |
| | | id="searchButton" |
| | | type="danger" |
| | | @click="dialogForm">软急停 |
| | | </el-button> |
| | | |
| | | <el-card style="flex: 1;margin-left: 10px;margin-top: 5px;" |
| | | v-loading="loading"> |
| | | <el-button style="margin-top: 5px;margin-left: 10px;" id="searchButton" type="primary" @click="dialogFormVisiblea = true">订单信息</el-button> |
| | | <el-button style="margin-top: 5px;margin-left: 10px;" id="searchButton" type="success" @click="dialogFormVisibleb = true">出片队列</el-button> |
| | | <el-button style="margin-top: 5px;margin-left: 10px;" id="searchButton" type="danger">终止进片</el-button> |
| | | <el-button style="margin-top: 5px;margin-left: 10px;" id="searchButton" type="danger">终止出片</el-button> |
| | | <el-button style="margin-top: 5px;margin-left: 10px;" id="searchButton" type="danger" @click="dialogForm">软急停</el-button> |
| | | |
| | | <el-card style="flex: 1;margin-left: 10px;margin-top: 5px;" v-loading="loading"> |
| | | <div style="width: 98%; height: calc(100% - 35px); overflow-y: auto;max-height: 100px;"> |
| | | <el-table height="100%" |
| | | ref="table" |
| | | @selection-change="handleSelectionChange" |
| | | :data="tableData" |
| | | :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}"> |
| | | <el-table-column prop="id" |
| | | align="center" |
| | | label="出片玻璃ID" |
| | | min-width="80"/> |
| | | <el-table-column prop="a" |
| | | align="center" |
| | | label="笼子" |
| | | min-width="120"/> |
| | | <el-table-column prop="b" |
| | | align="center" |
| | | label="格子" |
| | | min-width="120"/> |
| | | <el-table-column prop="c" |
| | | align="center" |
| | | label="工程号" |
| | | min-width="120"/> |
| | | <el-table-column prop="d" |
| | | align="center" |
| | | label="流程卡号" |
| | | min-width="120"/> |
| | | <el-table-column prop="e" |
| | | align="center" |
| | | label="钢化版图号" |
| | | min-width="157"/> |
| | | <el-table-column prop="f" |
| | | align="center" |
| | | label="尺寸" |
| | | min-width="120"/> |
| | | <el-table-column prop="g" |
| | | align="center" |
| | | label="结束任务" |
| | | min-width="120"> |
| | | <el-button style="margin-top: 5px;margin-left: 10px;" |
| | | id="searchButton" |
| | | type="text">完成任务 |
| | | </el-button> |
| | | </el-table-column> |
| | | <el-table height="100%" ref="table" |
| | | @selection-change="handleSelectionChange" |
| | | :data="tableData" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}"> |
| | | <el-table-column prop="id" align="center" label="出片玻璃ID" min-width="80" /> |
| | | <el-table-column prop="a" align="center" label="笼子" min-width="120" /> |
| | | <el-table-column prop="b" align="center" label="格子" min-width="120" /> |
| | | <el-table-column prop="c" align="center" label="工程号" min-width="120" /> |
| | | <el-table-column prop="d" align="center" label="流程卡号" min-width="120" /> |
| | | <el-table-column prop="e" align="center" label="钢化版图号" min-width="157" /> |
| | | <el-table-column prop="f" align="center" label="尺寸" min-width="120" /> |
| | | <el-table-column prop="g" align="center" label="结束任务" min-width="120"> |
| | | <el-button style="margin-top: 5px;margin-left: 10px;" id="searchButton" type="text">完成任务</el-button> |
| | | </el-table-column> |
| | | </el-table> |
| | | </div> |
| | | </el-card> |
| | | <el-card style="flex: 1;margin-left: 10px;margin-top: 3px;" |
| | | v-loading="loading"> |
| | | <el-card style="flex: 1;margin-left: 10px;margin-top: 3px;" v-loading="loading"> |
| | | <div style="width: 98%; height: calc(100% - 35px); overflow-y: auto;max-height: 100px;"> |
| | | <el-table height="100%" |
| | | ref="table" |
| | | @selection-change="handleSelectionChange" |
| | | :data="tableDatab" |
| | | :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}"> |
| | | <el-table-column prop="id" |
| | | align="center" |
| | | label="进片玻璃ID" |
| | | min-width="80"/> |
| | | <el-table-column prop="a" |
| | | align="center" |
| | | label="笼子" |
| | | min-width="120"/> |
| | | <el-table-column prop="b" |
| | | align="center" |
| | | label="格子" |
| | | min-width="120"/> |
| | | <el-table-column prop="c" |
| | | align="center" |
| | | label="工程号" |
| | | min-width="120"/> |
| | | <el-table-column prop="d" |
| | | align="center" |
| | | label="流程卡号" |
| | | min-width="120"/> |
| | | <el-table-column prop="e" |
| | | align="center" |
| | | label="钢化版图号" |
| | | min-width="157"/> |
| | | <el-table-column prop="f" |
| | | align="center" |
| | | label="尺寸" |
| | | min-width="120"/> |
| | | <el-table-column prop="g" |
| | | align="center" |
| | | label="结束任务" |
| | | min-width="120"> |
| | | <el-button style="margin-top: 5px;margin-left: 10px;" |
| | | id="searchButton" |
| | | type="text">完成任务 |
| | | </el-button> |
| | | </el-table-column> |
| | | <el-table height="100%" ref="table" |
| | | @selection-change="handleSelectionChange" |
| | | :data="tableDatab" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}"> |
| | | <el-table-column prop="id" align="center" label="进片玻璃ID" min-width="80" /> |
| | | <el-table-column prop="a" align="center" label="笼子" min-width="120" /> |
| | | <el-table-column prop="b" align="center" label="格子" min-width="120" /> |
| | | <el-table-column prop="c" align="center" label="工程号" min-width="120" /> |
| | | <el-table-column prop="d" align="center" label="流程卡号" min-width="120" /> |
| | | <el-table-column prop="e" align="center" label="钢化版图号" min-width="157" /> |
| | | <el-table-column prop="f" align="center" label="尺寸" min-width="120" /> |
| | | <el-table-column prop="g" align="center" label="结束任务" min-width="120"> |
| | | <el-button style="margin-top: 5px;margin-left: 10px;" id="searchButton" type="text">完成任务</el-button> |
| | | </el-table-column> |
| | | </el-table> |
| | | </div> |
| | | </el-card> |
| | | <div style="padding: 10px;display: flex;height:110px;"> |
| | | <div id="occupy"> |
| | | <el-col style="text-align:left;font-weight: bold;">#1</el-col> |
| | | <el-col style="text-align:left;display:flex;justify-content: space-between;align-items: center;"> |
| | | <span id="biao">使用率</span><span id="zhi">35%</span> |
| | | </el-col> |
| | | <hr style="width:80%;margin: 0 auto;"/> |
| | | <el-col style="text-align:left;display:flex;justify-content: space-between;align-items: center;"> |
| | | <span id="biao">空闲(格子数)</span><span id="zhi">555</span> |
| | | </el-col> |
| | | </div> |
| | | <div id="occupy"> |
| | | <el-col style="text-align:left;font-weight: bold;">#2</el-col> |
| | | <el-col style="text-align:left;display:flex;justify-content: space-between;align-items: center;"> |
| | | <span id="biao">使用率</span><span id="zhi">35%</span> |
| | | </el-col> |
| | | <hr style="width:80%;margin: 0 auto;"/> |
| | | <el-col style="text-align:left;display:flex;justify-content: space-between;align-items: center;"> |
| | | <span id="biao">空闲(格子数)</span><span id="zhi">555</span> |
| | | </el-col> |
| | | </div> |
| | | <div id="occupy"> |
| | | <el-col style="text-align:left;font-weight: bold;">#3</el-col> |
| | | <el-col style="text-align:left;display:flex;justify-content: space-between;align-items: center;"> |
| | | <span id="biao">使用率</span><span id="zhi">35%</span> |
| | | </el-col> |
| | | <hr style="width:80%;margin: 0 auto;"/> |
| | | <el-col style="text-align:left;display:flex;justify-content: space-between;align-items: center;"> |
| | | <span id="biao">空闲(格子数)</span><span id="zhi">555</span> |
| | | </el-col> |
| | | </div> |
| | | <div id="occupy"> |
| | | <el-col style="text-align:left;font-weight: bold;">#4</el-col> |
| | | <el-col style="text-align:left;display:flex;justify-content: space-between;align-items: center;"> |
| | | <span id="biao">使用率</span><span id="zhi">35%</span> |
| | | </el-col> |
| | | <hr style="width:80%;margin: 0 auto;"/> |
| | | <el-col style="text-align:left;display:flex;justify-content: space-between;align-items: center;"> |
| | | <span id="biao">空闲(格子数)</span><span id="zhi">555</span> |
| | | </el-col> |
| | | </div> |
| | | <div id="occupy"> |
| | | <el-col style="text-align:left;font-weight: bold;">#5</el-col> |
| | | <el-col style="text-align:left;display:flex;justify-content: space-between;align-items: center;"> |
| | | <span id="biao">使用率</span><span id="zhi">35%</span> |
| | | </el-col> |
| | | <hr style="width:80%;margin: 0 auto;"/> |
| | | <el-col style="text-align:left;display:flex;justify-content: space-between;align-items: center;"> |
| | | <span id="biao">空闲(格子数)</span><span id="zhi">555</span> |
| | | </el-col> |
| | | </div> |
| | | <div id="occupy"> |
| | | <el-col style="text-align:left;font-weight: bold;">#6</el-col> |
| | | <el-col style="text-align:left;display:flex;justify-content: space-between;align-items: center;"> |
| | | <span id="biao">使用率</span><span id="zhi">35%</span> |
| | | </el-col> |
| | | <hr style="width:80%;margin: 0 auto;"/> |
| | | <el-col style="text-align:left;display:flex;justify-content: space-between;align-items: center;"> |
| | | <span id="biao">空闲(格子数)</span><span id="zhi">555</span> |
| | | </el-col> |
| | | </div> |
| | | <div id="occupy"> |
| | | <el-col style="text-align:left;font-weight: bold;">#7</el-col> |
| | | <el-col style="text-align:left;display:flex;justify-content: space-between;align-items: center;"> |
| | | <span id="biao">使用率</span><span id="zhi">35%</span> |
| | | </el-col> |
| | | <hr style="width:80%;margin: 0 auto;"/> |
| | | <el-col style="text-align:left;display:flex;justify-content: space-between;align-items: center;"> |
| | | <span id="biao">空闲(格子数)</span><span id="zhi">555</span> |
| | | </el-col> |
| | | </div> |
| | | <div id="occupy"> |
| | | <el-col style="text-align:left;font-weight: bold;">#8</el-col> |
| | | <el-col style="text-align:left;display:flex;justify-content: space-between;align-items: center;"> |
| | | <span id="biao">使用率</span><span id="zhi">35%</span> |
| | | </el-col> |
| | | <hr style="width:80%;margin: 0 auto;"/> |
| | | <el-col style="text-align:left;display:flex;justify-content: space-between;align-items: center;"> |
| | | <span id="biao">空闲(格子数)</span><span id="zhi">555</span> |
| | | </el-col> |
| | | </div> |
| | | <!-- <div v-for="n in 8" :key="n" id="occupy"> |
| | | <div id="occupy"> |
| | | <el-col style="text-align:left;font-weight: bold;">#1</el-col> |
| | | <el-col style="text-align:left;display:flex;justify-content: space-between;align-items: center;"> |
| | | <span id="biao">使用率</span><span id="zhi">35%</span> |
| | | </el-col> |
| | | <hr style="width:80%;margin: 0 auto;" /> |
| | | <el-col style="text-align:left;display:flex;justify-content: space-between;align-items: center;"> |
| | | <span id="biao">空闲(格子数)</span><span id="zhi">555</span> |
| | | </el-col> |
| | | </div> |
| | | <div id="occupy"> |
| | | <el-col style="text-align:left;font-weight: bold;">#2</el-col> |
| | | <el-col style="text-align:left;display:flex;justify-content: space-between;align-items: center;"> |
| | | <span id="biao">使用率</span><span id="zhi">35%</span> |
| | | </el-col> |
| | | <hr style="width:80%;margin: 0 auto;" /> |
| | | <el-col style="text-align:left;display:flex;justify-content: space-between;align-items: center;"> |
| | | <span id="biao">空闲(格子数)</span><span id="zhi">555</span> |
| | | </el-col> |
| | | </div> |
| | | <div id="occupy"> |
| | | <el-col style="text-align:left;font-weight: bold;">#3</el-col> |
| | | <el-col style="text-align:left;display:flex;justify-content: space-between;align-items: center;"> |
| | | <span id="biao">使用率</span><span id="zhi">35%</span> |
| | | </el-col> |
| | | <hr style="width:80%;margin: 0 auto;" /> |
| | | <el-col style="text-align:left;display:flex;justify-content: space-between;align-items: center;"> |
| | | <span id="biao">空闲(格子数)</span><span id="zhi">555</span> |
| | | </el-col> |
| | | </div> |
| | | <div id="occupy"> |
| | | <el-col style="text-align:left;font-weight: bold;">#4</el-col> |
| | | <el-col style="text-align:left;display:flex;justify-content: space-between;align-items: center;"> |
| | | <span id="biao">使用率</span><span id="zhi">35%</span> |
| | | </el-col> |
| | | <hr style="width:80%;margin: 0 auto;" /> |
| | | <el-col style="text-align:left;display:flex;justify-content: space-between;align-items: center;"> |
| | | <span id="biao">空闲(格子数)</span><span id="zhi">555</span> |
| | | </el-col> |
| | | </div> |
| | | <div id="occupy"> |
| | | <el-col style="text-align:left;font-weight: bold;">#5</el-col> |
| | | <el-col style="text-align:left;display:flex;justify-content: space-between;align-items: center;"> |
| | | <span id="biao">使用率</span><span id="zhi">35%</span> |
| | | </el-col> |
| | | <hr style="width:80%;margin: 0 auto;" /> |
| | | <el-col style="text-align:left;display:flex;justify-content: space-between;align-items: center;"> |
| | | <span id="biao">空闲(格子数)</span><span id="zhi">555</span> |
| | | </el-col> |
| | | </div> |
| | | <div id="occupy"> |
| | | <el-col style="text-align:left;font-weight: bold;">#6</el-col> |
| | | <el-col style="text-align:left;display:flex;justify-content: space-between;align-items: center;"> |
| | | <span id="biao">使用率</span><span id="zhi">35%</span> |
| | | </el-col> |
| | | <hr style="width:80%;margin: 0 auto;" /> |
| | | <el-col style="text-align:left;display:flex;justify-content: space-between;align-items: center;"> |
| | | <span id="biao">空闲(格子数)</span><span id="zhi">555</span> |
| | | </el-col> |
| | | </div> |
| | | <div id="occupy"> |
| | | <el-col style="text-align:left;font-weight: bold;">#7</el-col> |
| | | <el-col style="text-align:left;display:flex;justify-content: space-between;align-items: center;"> |
| | | <span id="biao">使用率</span><span id="zhi">35%</span> |
| | | </el-col> |
| | | <hr style="width:80%;margin: 0 auto;" /> |
| | | <el-col style="text-align:left;display:flex;justify-content: space-between;align-items: center;"> |
| | | <span id="biao">空闲(格子数)</span><span id="zhi">555</span> |
| | | </el-col> |
| | | </div> |
| | | <div id="occupy"> |
| | | <el-col style="text-align:left;font-weight: bold;">#8</el-col> |
| | | <el-col style="text-align:left;display:flex;justify-content: space-between;align-items: center;"> |
| | | <span id="biao">使用率</span><span id="zhi">35%</span> |
| | | </el-col> |
| | | <hr style="width:80%;margin: 0 auto;" /> |
| | | <el-col style="text-align:left;display:flex;justify-content: space-between;align-items: center;"> |
| | | <span id="biao">空闲(格子数)</span><span id="zhi">555</span> |
| | | </el-col> |
| | | </div> |
| | | <!-- <div v-for="n in 8" :key="n" id="occupy"> |
| | | <el-col style="text-align:left;font-weight: bold;">#1</el-col> |
| | | <el-col style="text-align:left;display:flex;justify-content: space-between;align-items: center;"> |
| | | <span id="biao">使用率</span><span id="zhi">35%</span> |
| | |
| | | <!-- <div id="awatch"> |
| | | <img src="../../assets/cp.png" alt="" style="width: 70%;height: 70%;margin-left: 160px;"> |
| | | </div> --> |
| | | <!-- // 父级框 --> |
| | | <div class="img-dlpl"> |
| | | <div class="img-car1" |
| | | :style="'z-index:999;left:247px;top:' + carposition1 + 'px;position:absolute;'"> |
| | | <div v-show="cellshow1" |
| | | style="margin-top:10px;width:200px;height:5px;background-color:red;"></div> |
| | | </div> |
| | | |
| | | <div class="img-car2" |
| | | :style="'z-index:999;left:704px;top:' + carposition2 + 'px;position:absolute;'"> |
| | | <div v-show="cellshow2" |
| | | style="margin-top:10px;width:200px;height:5px;background-color:red;"></div> |
| | | </div> |
| | | <div v-show="cellshow" |
| | | style="width: 200px;height: 5px;position: absolute;top:60px;left: 490px;background-color: red;"> |
| | | |
| | | </div> |
| | | <!-- // 父级框 --> |
| | | <div class="img-dlpl" > |
| | | <div class="img-car1" :style="'z-index:999;left:247px;top:' + carposition1 + 'px;position:absolute;'"> |
| | | <div v-show="cellshow1" style="margin-top:10px;width:200px;height:5px;background-color:#409EFF;"></div> |
| | | </div> |
| | | |
| | | <div v-show="c1" class="img-car2" :style="'z-index:999;left:704px;top:' + carposition2 + 'px;position:absolute;'"> |
| | | <div v-show="cellshow2" style="margin-top:10px;width:200px;height:5px;background-color:#409EFF;"></div> |
| | | </div> |
| | | |
| | | <div v-show="c2" class="img-car3" :style="'z-index:999;left:247px;top:' + carposition3 + 'px;position:absolute;'"> |
| | | <div v-show="cellshow3" style="margin-top:10px;width:200px;height:5px;background-color:#409EFF;"></div> |
| | | </div> |
| | | <div class="img-car4" :style="'z-index:999;left:704px;top:' + carposition4 + 'px;position:absolute;'"> |
| | | <div v-show="cellshow4" style="margin-top:10px;width:200px;height:5px;background-color:#409EFF;"></div> |
| | | </div> |
| | | <div v-show="cellshow" style="width: 200px;height: 5px;position: absolute;top:70px;left: 480px;background-color: #409EFF;"> |
| | | </div> |
| | | <div v-show="cellshow5" style="width: 200px;height: 5px;position: absolute;top:70px;left: 480px;background-color: #409EFF;"> |
| | | </div> |
| | | </div> |
| | | |
| | | </div> |
| | | <el-dialog v-model="dialogFormVisible" |
| | | top="12vh" |
| | | width="85%" |
| | | title="请确认玻璃信息"> |
| | | <div style="margin-left: 50px;margin-bottom: 10px;"> |
| | | <div style="display: flex;"> |
| | | <p style="margin-top: 4px;">确认状态:</p> |
| | | <el-button style="margin-left: 10px;size: mini;" |
| | | type="success">允许 |
| | | </el-button> |
| | | <el-button style="margin-left: 10px;size: mini;" |
| | | type="danger">不允许 |
| | | </el-button> |
| | | <p style="margin-left: 60px;margin-top: 4px;">当前状态:</p> |
| | | <div style="margin-top: 4px; margin-left: 10px;">手动</div> |
| | | <el-button style="margin-left: 10px;size: mini;" |
| | | type="primary">切换 |
| | | </el-button> |
| | | <el-input placeholder="请输入玻璃id" |
| | | style="width: 180px;size: mini;margin-left: 60px;"></el-input> |
| | | <el-button style="margin-left: 10px;size: mini;" |
| | | type="primary">添加 |
| | | </el-button> |
| | | <p style="margin-left: 60px;margin-top: 4px;">玻璃id:</p> |
| | | <el-input style="width: 180px;size: mini;margin-left: 30px;"></el-input> |
| | | </div> |
| | | <div style="display: flex;"> |
| | | <p style="margin-left: 290px;margin-top: 20px;font-weight: bold;">上片位</p> |
| | | <p style="margin-left: 630px;margin-top: 20px;font-weight: bold;">扫码位</p> |
| | | </div> |
| | | <div style="display: flex;"> |
| | | <div style="margin-top: 20px;"> |
| | | <p style="margin-top: 10px;margin-left: 100px;margin-bottom: 20px;">当前信息</p> |
| | | <el-form label-position="right" |
| | | label-width="90px"> |
| | | <el-form-item style="width: 20vw" |
| | | label="玻璃id:"> |
| | | <el-input style="width: 180px" |
| | | size="mini" |
| | | placeholder="请输入玻璃id"></el-input> |
| | | </el-form-item> |
| | | <el-form-item style="width: 20vw" |
| | | label="订单编号:"> |
| | | <el-input style="width: 180px" |
| | | size="mini" |
| | | placeholder="请输入订单编号"></el-input> |
| | | </el-form-item> |
| | | <el-form-item style="width: 20vw" |
| | | label="列表编号:"> |
| | | <el-input style="width: 180px" |
| | | size="mini" |
| | | placeholder="请输入列表编号"></el-input> |
| | | </el-form-item> |
| | | <el-form-item style="width: 20vw" |
| | | label="箱子编号:"> |
| | | <el-input style="width: 180px" |
| | | size="mini" |
| | | placeholder="请输入箱子编号"></el-input> |
| | | </el-form-item> |
| | | <el-form-item style="width: 20vw" |
| | | label="长:"> |
| | | <el-input style="width: 180px" |
| | | size="mini" |
| | | placeholder="请输入长"></el-input> |
| | | </el-form-item> |
| | | <el-form-item style="width: 20vw" |
| | | label="宽:"> |
| | | <el-input style="width: 180px" |
| | | size="mini" |
| | | placeholder="请输入宽"></el-input> |
| | | </el-form-item> |
| | | </el-form> |
| | | </div> |
| | | <div style="margin-top: 20px;"> |
| | | <p style="margin-top: 10px;margin-left: 100px;margin-bottom: 20px;">修改信息</p> |
| | | <el-form label-position="right" |
| | | label-width="90px"> |
| | | <el-form-item style="width: 20vw" |
| | | label="玻璃id:"> |
| | | <el-input style="width: 180px" |
| | | size="mini" |
| | | placeholder="请输入玻璃id"></el-input> |
| | | </el-form-item> |
| | | <el-form-item style="width: 20vw" |
| | | label="订单编号:"> |
| | | <el-input style="width: 180px" |
| | | size="mini" |
| | | placeholder="请输入订单编号"></el-input> |
| | | </el-form-item> |
| | | <el-form-item style="width: 20vw" |
| | | label="列表编号:"> |
| | | <el-input style="width: 180px" |
| | | size="mini" |
| | | placeholder="请输入列表编号"></el-input> |
| | | </el-form-item> |
| | | <el-form-item style="width: 20vw" |
| | | label="箱子编号:"> |
| | | <el-input style="width: 180px" |
| | | size="mini" |
| | | placeholder="请输入箱子编号"></el-input> |
| | | </el-form-item> |
| | | <el-form-item style="width: 20vw" |
| | | label="长:"> |
| | | <el-input style="width: 180px" |
| | | size="mini" |
| | | placeholder="请输入长"></el-input> |
| | | </el-form-item> |
| | | <el-form-item style="width: 20vw" |
| | | label="宽:"> |
| | | <el-input style="width: 180px" |
| | | size="mini" |
| | | placeholder="请输入宽"></el-input> |
| | | </el-form-item> |
| | | </el-form> |
| | | </div> |
| | | <div style="margin-top: 20px;"> |
| | | <p style="margin-top: 10px;margin-left: 100px;margin-bottom: 20px;">修改信息</p> |
| | | <el-form label-position="right" |
| | | label-width="90px"> |
| | | <el-form-item style="width: 20vw" |
| | | label="玻璃id:"> |
| | | <el-input style="width: 180px" |
| | | size="mini" |
| | | placeholder="请输入玻璃id"></el-input> |
| | | </el-form-item> |
| | | <el-form-item style="width: 20vw" |
| | | label="订单编号:"> |
| | | <el-input style="width: 180px" |
| | | size="mini" |
| | | placeholder="请输入订单编号"></el-input> |
| | | </el-form-item> |
| | | <el-form-item style="width: 20vw" |
| | | label="列表编号:"> |
| | | <el-input style="width: 180px" |
| | | size="mini" |
| | | placeholder="请输入列表编号"></el-input> |
| | | </el-form-item> |
| | | <el-form-item style="width: 20vw" |
| | | label="箱子编号:"> |
| | | <el-input style="width: 180px" |
| | | size="mini" |
| | | placeholder="请输入箱子编号"></el-input> |
| | | </el-form-item> |
| | | <el-form-item style="width: 20vw" |
| | | label="长:"> |
| | | <el-input style="width: 180px" |
| | | size="mini" |
| | | placeholder="请输入长"></el-input> |
| | | </el-form-item> |
| | | <el-form-item style="width: 20vw" |
| | | label="宽:"> |
| | | <el-input style="width: 180px" |
| | | size="mini" |
| | | placeholder="请输入宽"></el-input> |
| | | </el-form-item> |
| | | </el-form> |
| | | </div> |
| | | <div style="margin-top: 20px;"> |
| | | <p style="margin-top: 10px;margin-left: 100px;margin-bottom: 20px;">当前信息</p> |
| | | <el-form label-position="right" |
| | | label-width="90px"> |
| | | <el-form-item style="width: 20vw" |
| | | label="玻璃id:"> |
| | | <el-input style="width: 180px" |
| | | size="mini" |
| | | placeholder="请输入玻璃id"></el-input> |
| | | </el-form-item> |
| | | <el-form-item style="width: 20vw" |
| | | label="订单编号:"> |
| | | <el-input style="width: 180px" |
| | | size="mini" |
| | | placeholder="请输入订单编号"></el-input> |
| | | </el-form-item> |
| | | <el-form-item style="width: 20vw" |
| | | label="列表编号:"> |
| | | <el-input style="width: 180px" |
| | | size="mini" |
| | | placeholder="请输入列表编号"></el-input> |
| | | </el-form-item> |
| | | <el-form-item style="width: 20vw" |
| | | label="箱子编号:"> |
| | | <el-input style="width: 180px" |
| | | size="mini" |
| | | placeholder="请输入箱子编号"></el-input> |
| | | </el-form-item> |
| | | <el-form-item style="width: 20vw" |
| | | label="长:"> |
| | | <el-input style="width: 180px" |
| | | size="mini" |
| | | placeholder="请输入长"></el-input> |
| | | </el-form-item> |
| | | <el-form-item style="width: 20vw" |
| | | label="宽:"> |
| | | <el-input style="width: 180px" |
| | | size="mini" |
| | | placeholder="请输入宽"></el-input> |
| | | </el-form-item> |
| | | </el-form> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <template #footer> |
| | | <div id="dialog-footer"> |
| | | <el-button type="primary" |
| | | @click="dialogFormVisible = false"> |
| | | 确认 |
| | | </el-button> |
| | | <el-button @click="dialogFormVisible = false">取消</el-button> |
| | | </div> |
| | | </template> |
| | | </el-dialog> |
| | | <el-dialog v-model="dialogFormVisiblea" |
| | | top="10vh" |
| | | width="85%" |
| | | title="订单信息"> |
| | | <el-input placeholder="请输入工程号" |
| | | style="width: 180px;size: mini;"></el-input> |
| | | <el-button style="margin-left: 10px;size: mini;" |
| | | type="primary">查询 |
| | | </el-button> |
| | | <el-table ref="table" |
| | | style="margin-top: 20px;height: 500px;" |
| | | @selection-change="handleSelectionChange" |
| | | :data="tableDataa" |
| | | :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}"> |
| | | <el-table-column prop="ida" |
| | | align="center" |
| | | label="玻璃id" |
| | | min-width="80"/> |
| | | <el-table-column prop="typea" |
| | | align="center" |
| | | label="工程号" |
| | | min-width="120"/> |
| | | <el-table-column prop="typea" |
| | | align="center" |
| | | label="长" |
| | | min-width="120"/> |
| | | <el-table-column prop="typea" |
| | | align="center" |
| | | label="宽" |
| | | min-width="120"/> |
| | | <el-table-column prop="typea" |
| | | align="center" |
| | | label="厚" |
| | | min-width="120"/> |
| | | </el-table> |
| | | <div id="demo-pagination-block"> |
| | | <el-pagination style="margin-left: 850px;" |
| | | v-model:current-page="currentPage4" |
| | | v-model:page-size="pageSize4" |
| | | :page-sizes="[100, 200, 300, 400]" |
| | | :small="small" |
| | | :disabled="disabled" |
| | | :background="background" |
| | | layout="total, sizes, prev, pager, next, jumper" |
| | | :total="400" |
| | | @size-change="handleSizeChange" |
| | | @current-change="handleCurrentChange"/> |
| | | </div> |
| | | </el-dialog> |
| | | <el-dialog v-model="dialogFormVisibleb" |
| | | top="10vh" |
| | | width="85%" |
| | | title="出片队列"> |
| | | <el-dialog v-model="dialogFormVisible" top="12vh" width="85%" title="请确认玻璃信息" > |
| | | <div style="margin-left: 50px;margin-bottom: 10px;"> |
| | | <div style="display: flex;"> |
| | | <p style="margin-top: 4px;">队列状态:</p> |
| | | <p style="margin-top: 4px;">开始</p> |
| | | <el-button style="margin-left: 10px;size: mini;" |
| | | type="danger">停止 |
| | | </el-button> |
| | | <el-button style="margin-left: 10px;size: mini;" |
| | | type="primary">添加 |
| | | </el-button> |
| | | <p style="margin-top: 4px;">确认状态:</p> |
| | | <el-button style="margin-left: 10px;size: mini;" type="success">允许</el-button> |
| | | <el-button style="margin-left: 10px;size: mini;" type="danger">不允许</el-button> |
| | | <p style="margin-left: 60px;margin-top: 4px;">当前状态:</p> |
| | | <div style="margin-top: 4px; margin-left: 10px;">手动</div> |
| | | <el-button style="margin-left: 10px;size: mini;" type="primary">切换</el-button> |
| | | <el-input placeholder="请输入玻璃id" style="width: 180px;size: mini;margin-left: 60px;"></el-input> |
| | | <el-button style="margin-left: 10px;size: mini;" type="primary">添加</el-button> |
| | | <p style="margin-left: 60px;margin-top: 4px;">玻璃id:</p> |
| | | <el-input style="width: 180px;size: mini;margin-left: 30px;"></el-input> |
| | | </div> |
| | | <div style="display: flex;"> |
| | | <p style="margin-left: 290px;margin-top: 20px;font-weight: bold;">上片位</p> |
| | | <p style="margin-left: 630px;margin-top: 20px;font-weight: bold;">扫码位</p> |
| | | </div> |
| | | <el-table ref="table" |
| | | style="margin-top: 20px;height: 500px;" |
| | | @selection-change="handleSelectionChange" |
| | | :data="tableDatab" |
| | | :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}"> |
| | | <el-table-column prop="id" |
| | | align="center" |
| | | label="铝框id" |
| | | min-width="80"/> |
| | | <el-table-column prop="type" |
| | | align="center" |
| | | label="玻璃id" |
| | | min-width="120"/> |
| | | <el-table-column prop="type" |
| | | align="center" |
| | | label="订单编号" |
| | | min-width="120"/> |
| | | <el-table-column prop="type" |
| | | align="center" |
| | | label="列表编号" |
| | | min-width="120"/> |
| | | <el-table-column prop="type" |
| | | align="center" |
| | | label="箱子编号" |
| | | min-width="120"/> |
| | | <el-table-column prop="type" |
| | | align="center" |
| | | label="长" |
| | | min-width="120"/> |
| | | <el-table-column prop="type" |
| | | align="center" |
| | | label="宽" |
| | | min-width="120"/> |
| | | <el-table-column prop="type" |
| | | align="center" |
| | | label="玻璃状态" |
| | | min-width="120"/> |
| | | <el-table-column prop="type" |
| | | align="center" |
| | | label="顺序" |
| | | min-width="120"/> |
| | | <el-table-column prop="type" |
| | | align="center" |
| | | label="完成" |
| | | min-width="120"/> |
| | | <el-table-column prop="type" |
| | | align="center" |
| | | label="操作" |
| | | min-width="120"/> |
| | | </el-table> |
| | | </el-dialog> |
| | | |
| | | <div style="display: flex;"> |
| | | <div style="margin-top: 20px;"> |
| | | <p style="margin-top: 10px;margin-left: 100px;margin-bottom: 20px;">当前信息</p> |
| | | <el-form label-position="right" label-width="90px"> |
| | | <el-form-item style="width: 20vw" label="玻璃id:"> |
| | | <el-input style="width: 180px" size="mini" placeholder="请输入玻璃id"></el-input> |
| | | </el-form-item> |
| | | <el-form-item style="width: 20vw" label="订单编号:"> |
| | | <el-input style="width: 180px" size="mini" placeholder="请输入订单编号"></el-input> |
| | | </el-form-item> |
| | | <el-form-item style="width: 20vw" label="列表编号:"> |
| | | <el-input style="width: 180px" size="mini" placeholder="请输入列表编号"></el-input> |
| | | </el-form-item> |
| | | <el-form-item style="width: 20vw" label="箱子编号:"> |
| | | <el-input style="width: 180px" size="mini" placeholder="请输入箱子编号"></el-input> |
| | | </el-form-item> |
| | | <el-form-item style="width: 20vw" label="长:"> |
| | | <el-input style="width: 180px" size="mini" placeholder="请输入长"></el-input> |
| | | </el-form-item> |
| | | <el-form-item style="width: 20vw" label="宽:"> |
| | | <el-input style="width: 180px" size="mini" placeholder="请输入宽"></el-input> |
| | | </el-form-item> |
| | | </el-form> |
| | | </div> |
| | | <div style="margin-top: 20px;"> |
| | | <p style="margin-top: 10px;margin-left: 100px;margin-bottom: 20px;">修改信息</p> |
| | | <el-form label-position="right" label-width="90px"> |
| | | <el-form-item style="width: 20vw" label="玻璃id:"> |
| | | <el-input style="width: 180px" size="mini" placeholder="请输入玻璃id"></el-input> |
| | | </el-form-item> |
| | | <el-form-item style="width: 20vw" label="订单编号:"> |
| | | <el-input style="width: 180px" size="mini" placeholder="请输入订单编号"></el-input> |
| | | </el-form-item> |
| | | <el-form-item style="width: 20vw" label="列表编号:"> |
| | | <el-input style="width: 180px" size="mini" placeholder="请输入列表编号"></el-input> |
| | | </el-form-item> |
| | | <el-form-item style="width: 20vw" label="箱子编号:"> |
| | | <el-input style="width: 180px" size="mini" placeholder="请输入箱子编号"></el-input> |
| | | </el-form-item> |
| | | <el-form-item style="width: 20vw" label="长:"> |
| | | <el-input style="width: 180px" size="mini" placeholder="请输入长"></el-input> |
| | | </el-form-item> |
| | | <el-form-item style="width: 20vw" label="宽:"> |
| | | <el-input style="width: 180px" size="mini" placeholder="请输入宽"></el-input> |
| | | </el-form-item> |
| | | </el-form> |
| | | </div> |
| | | <div style="margin-top: 20px;"> |
| | | <p style="margin-top: 10px;margin-left: 100px;margin-bottom: 20px;">修改信息</p> |
| | | <el-form label-position="right" label-width="90px"> |
| | | <el-form-item style="width: 20vw" label="玻璃id:"> |
| | | <el-input style="width: 180px" size="mini" placeholder="请输入玻璃id"></el-input> |
| | | </el-form-item> |
| | | <el-form-item style="width: 20vw" label="订单编号:"> |
| | | <el-input style="width: 180px" size="mini" placeholder="请输入订单编号"></el-input> |
| | | </el-form-item> |
| | | <el-form-item style="width: 20vw" label="列表编号:"> |
| | | <el-input style="width: 180px" size="mini" placeholder="请输入列表编号"></el-input> |
| | | </el-form-item> |
| | | <el-form-item style="width: 20vw" label="箱子编号:"> |
| | | <el-input style="width: 180px" size="mini" placeholder="请输入箱子编号"></el-input> |
| | | </el-form-item> |
| | | <el-form-item style="width: 20vw" label="长:"> |
| | | <el-input style="width: 180px" size="mini" placeholder="请输入长"></el-input> |
| | | </el-form-item> |
| | | <el-form-item style="width: 20vw" label="宽:"> |
| | | <el-input style="width: 180px" size="mini" placeholder="请输入宽"></el-input> |
| | | </el-form-item> |
| | | </el-form> |
| | | </div> |
| | | <div style="margin-top: 20px;"> |
| | | <p style="margin-top: 10px;margin-left: 100px;margin-bottom: 20px;">当前信息</p> |
| | | <el-form label-position="right" label-width="90px"> |
| | | <el-form-item style="width: 20vw" label="玻璃id:"> |
| | | <el-input style="width: 180px" size="mini" placeholder="请输入玻璃id"></el-input> |
| | | </el-form-item> |
| | | <el-form-item style="width: 20vw" label="订单编号:"> |
| | | <el-input style="width: 180px" size="mini" placeholder="请输入订单编号"></el-input> |
| | | </el-form-item> |
| | | <el-form-item style="width: 20vw" label="列表编号:"> |
| | | <el-input style="width: 180px" size="mini" placeholder="请输入列表编号"></el-input> |
| | | </el-form-item> |
| | | <el-form-item style="width: 20vw" label="箱子编号:"> |
| | | <el-input style="width: 180px" size="mini" placeholder="请输入箱子编号"></el-input> |
| | | </el-form-item> |
| | | <el-form-item style="width: 20vw" label="长:"> |
| | | <el-input style="width: 180px" size="mini" placeholder="请输入长"></el-input> |
| | | </el-form-item> |
| | | <el-form-item style="width: 20vw" label="宽:"> |
| | | <el-input style="width: 180px" size="mini" placeholder="请输入宽"></el-input> |
| | | </el-form-item> |
| | | </el-form> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <template #footer> |
| | | <div id="dialog-footer"> |
| | | <el-button type="primary" @click="dialogFormVisible = false"> |
| | | 确认 |
| | | </el-button> |
| | | <el-button @click="dialogFormVisible = false">取消</el-button> |
| | | </div> |
| | | </template> |
| | | </el-dialog> |
| | | <el-dialog v-model="dialogFormVisiblea" top="10vh" width="85%" title="订单信息" > |
| | | <el-input placeholder="请输入工程号" style="width: 180px;size: mini;"></el-input> |
| | | <el-button style="margin-left: 10px;size: mini;" type="primary">查询</el-button> |
| | | <el-table ref="table" style="margin-top: 20px;height: 500px;" |
| | | @selection-change="handleSelectionChange" |
| | | :data="tableDataa" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}"> |
| | | <el-table-column prop="ida" align="center" label="玻璃id" min-width="80" /> |
| | | <el-table-column prop="typea" align="center" label="工程号" min-width="120" /> |
| | | <el-table-column prop="typea" align="center" label="长" min-width="120" /> |
| | | <el-table-column prop="typea" align="center" label="宽" min-width="120" /> |
| | | <el-table-column prop="typea" align="center" label="厚" min-width="120" /> |
| | | </el-table> |
| | | <div id="demo-pagination-block"> |
| | | <el-pagination |
| | | style="margin-left: 850px;" |
| | | v-model:current-page="currentPage4" |
| | | v-model:page-size="pageSize4" |
| | | :page-sizes="[100, 200, 300, 400]" |
| | | :small="small" |
| | | :disabled="disabled" |
| | | :background="background" |
| | | layout="total, sizes, prev, pager, next, jumper" |
| | | :total="400" |
| | | @size-change="handleSizeChange" |
| | | @current-change="handleCurrentChange" |
| | | /> |
| | | </div> |
| | | </el-dialog> |
| | | <el-dialog v-model="dialogFormVisibleb" top="10vh" width="85%" title="出片队列" > |
| | | <div style="display: flex;"> |
| | | <p style="margin-top: 4px;">队列状态:</p> |
| | | <p style="margin-top: 4px;">开始</p> |
| | | <el-button style="margin-left: 10px;size: mini;" type="danger">停止</el-button> |
| | | <el-button style="margin-left: 10px;size: mini;" type="primary">添加</el-button> |
| | | </div> |
| | | <el-table ref="table" style="margin-top: 20px;height: 500px;" |
| | | @selection-change="handleSelectionChange" |
| | | :data="tableDatab" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}"> |
| | | <el-table-column prop="id" align="center" label="铝框id" min-width="80" /> |
| | | <el-table-column prop="type" align="center" label="玻璃id" min-width="120" /> |
| | | <el-table-column prop="type" align="center" label="订单编号" min-width="120" /> |
| | | <el-table-column prop="type" align="center" label="列表编号" min-width="120" /> |
| | | <el-table-column prop="type" align="center" label="箱子编号" min-width="120" /> |
| | | <el-table-column prop="type" align="center" label="长" min-width="120" /> |
| | | <el-table-column prop="type" align="center" label="宽" min-width="120" /> |
| | | <el-table-column prop="type" align="center" label="玻璃状态" min-width="120" /> |
| | | <el-table-column prop="type" align="center" label="顺序" min-width="120" /> |
| | | <el-table-column prop="type" align="center" label="完成" min-width="120" /> |
| | | <el-table-column prop="type" align="center" label="操作" min-width="120" /> |
| | | </el-table> |
| | | </el-dialog> |
| | | |
| | | </template> |
| | | <style scoped> |
| | | #dt { |
| | | display: block; |
| | | float: left; |
| | | line-height: 20px; |
| | | margin-left: 100px; |
| | | } |
| | | |
| | | #dta { |
| | | display: block; |
| | | float: left; |
| | | line-height: 20px; |
| | | margin-left: 80%; |
| | | } |
| | | |
| | | #dialog-footer { |
| | | |
| | | #dt { display:block; float:left;line-height: 20px;margin-left: 100px;} |
| | | #dta { display:block; float:left;line-height: 20px;margin-left: 80%;} |
| | | #dialog-footer{ |
| | | text-align: center; |
| | | margin-top: -15px; |
| | | } |
| | | |
| | | #message { |
| | | #message{ |
| | | text-align: center; |
| | | align-items: center; |
| | | color: black; |
| | | width: 200px; |
| | | height: 100px; |
| | | background-color: #337ecc; |
| | | margin-left: 28%; |
| | | width: 200px; |
| | | height: 100px; |
| | | background-color: #337ecc; |
| | | margin-left: 28%; |
| | | } |
| | | |
| | | #awatch { |
| | | #awatch{ |
| | | height: 450px; |
| | | } |
| | | |
| | | #occupy { |
| | | height: 100%; |
| | | width: 15%; |
| | | background-color: white; |
| | | margin: 0px 8px 0px 8px; |
| | | border: 1px #ebeef5 solid; |
| | | text-align: center; |
| | | padding: 5px; |
| | | height: 100%; |
| | | width: 15%; |
| | | background-color: white; |
| | | margin: 0px 8px 0px 8px; |
| | | border: 1px #EBEEF5 solid; |
| | | text-align: center; |
| | | padding: 5px; |
| | | } |
| | | #biao { |
| | | font-size: 12px; |
| | | font-size: 12px; |
| | | } |
| | | #zhi { |
| | | font-size: 18px; |
| | | font-weight: bold; |
| | | font-size: 18px; |
| | | font-weight: bold; |
| | | } |
| | | |
| | | #demo-pagination-block + #demo-pagination-block { |
| | | margin-top: 10px; |
| | | } |
| | | |
| | | #demo-pagination-block #demonstration { |
| | | margin-bottom: 16px; |
| | | } |
| | | |
| | | ::-webkit-scrollbar { |
| | | width: 0 !important; |
| | | width: 0 !important; |
| | | } |
| | | ::-webkit-scrollbar { |
| | | width: 0 !important;height: 0; |
| | | } |
| | | .img-list{ |
| | | |
| | | position:relative; |
| | | } |
| | | |
| | | ::-webkit-scrollbar { |
| | | width: 0 !important; |
| | | height: 0; |
| | | } |
| | | |
| | | .img-list { |
| | | position: relative; |
| | | } |
| | | |
| | | .data-img { |
| | | @apply float-none; |
| | | |
| | | width: 100%; |
| | | height: 16rem; |
| | | .data-img{ |
| | | @apply float-none ; |
| | | |
| | | width:100%; |
| | | height:16rem; |
| | | background: rgba(0, 0, 0, 0); |
| | | opacity: 1; |
| | | border-radius: 0.5rem 0.5rem 0px 0px; |
| | | |
| | | } |
| | | |
| | | .check-img { |
| | | .check-img{ |
| | | position: absolute; |
| | | width: 3.3125rem; |
| | | height: 2.9375rem; |
| | | top: 20rem; |
| | | top:20rem; |
| | | right: 57rem; |
| | | z-index: 10; |
| | | |
| | | } |
| | | |
| | | .check-imga { |
| | | .check-imga{ |
| | | position: absolute; |
| | | width: 3.3125rem; |
| | | height: 2.9375rem; |
| | | top: 15rem; |
| | | top:15rem; |
| | | right: 28.5rem; |
| | | z-index: 10; |
| | | |
| | | } |
| | | |
| | | .vertical { |
| | | width: 45px; |
| | | height: 25px; |
| | | background-color: #409eff; |
| | | top: 485px; /* 初始位置 */ |
| | | left: 899px; /* 水平居中 */ |
| | | transform: translateX(-50%); |
| | | animation: move-vertical 6s infinite; /* 从上到下动画,持续6秒,无限循环 */ |
| | | width: 45px; |
| | | height: 25px; |
| | | background-color: #409EFF; |
| | | top: 485px; /* 初始位置 */ |
| | | left: 899px; /* 水平居中 */ |
| | | transform: translateX(-50%); |
| | | animation: move-vertical 6s infinite; /* 从上到下动画,持续6秒,无限循环 */ |
| | | } |
| | | |
| | | |
| | | @keyframes move-vertical { |
| | | 0% { |
| | | top: 485px; /* 起始位置 */ |
| | | } |
| | | 100% { |
| | | top: calc(100% - 210px); /* 从上到下结束位置 */ |
| | | } |
| | | 0% { |
| | | top: 485px; /* 起始位置 */ |
| | | } |
| | | 100% { |
| | | top: calc(100% - 210px); /* 从上到下结束位置 */ |
| | | } |
| | | } |
| | | |
| | | .img-dlpl { |
| | | |
| | | .img-dlpl{ |
| | | margin-left: 200px; |
| | | background-image: url('../../assets/dlpl.png'); |
| | | background-image:url('../../assets/dlpl.png'); |
| | | background-repeat: no-repeat; |
| | | background-attachment: local; |
| | | min-height: 400px; |
| | | width: 1200px; |
| | | max-width: 100%; |
| | | background-size: 1200px 400px; |
| | | overflow: hidden; |
| | | position: relative; |
| | | background-attachment: local; |
| | | min-height: 400px; |
| | | width: 1200px; |
| | | max-width: 100%; |
| | | background-size: 1200px 400px; |
| | | overflow: hidden; |
| | | position:relative |
| | | } |
| | | |
| | | .img-car1 { |
| | | background-image: url('../../assets/lpl.jpg'); |
| | | .img-car1{ |
| | | background-image:url('../../assets/lp.png'); |
| | | position: absolute; |
| | | background-repeat: no-repeat; |
| | | background-attachment: local; |
| | | min-height: 200px; |
| | | width: 200px; |
| | | max-width: 100%; |
| | | background-size: 200px 70px; |
| | | overflow: hidden; |
| | | position: relative; |
| | | background-attachment: local; |
| | | min-height: 200px; |
| | | width: 200px; |
| | | max-width: 100%; |
| | | background-size: 200px 70px; |
| | | overflow: hidden; |
| | | position:relative |
| | | } |
| | | |
| | | .img-car2 { |
| | | background-image: url('../../assets/lpla.jpg'); |
| | | .img-car2{ |
| | | background-image:url('../../assets/lpa.png'); |
| | | position: absolute; |
| | | background-repeat: no-repeat; |
| | | background-attachment: local; |
| | | min-height: 200px; |
| | | width: 200px; |
| | | max-width: 100%; |
| | | background-size: 200px 70px; |
| | | overflow: hidden; |
| | | position: relative; |
| | | background-attachment: local; |
| | | min-height: 200px; |
| | | width: 200px; |
| | | max-width: 100%; |
| | | background-size: 200px 70px; |
| | | overflow: hidden; |
| | | position:relative |
| | | } |
| | | .img-car3{ |
| | | background-image:url('../../assets/lp.png'); |
| | | position: absolute; |
| | | background-repeat: no-repeat; |
| | | background-attachment: local; |
| | | min-height: 200px; |
| | | width: 200px; |
| | | max-width: 100%; |
| | | background-size: 200px 70px; |
| | | overflow: hidden; |
| | | position:relative |
| | | } |
| | | .img-car4{ |
| | | background-image:url('../../assets/lpa.png'); |
| | | position: absolute; |
| | | background-repeat: no-repeat; |
| | | background-attachment: local; |
| | | min-height: 200px; |
| | | width: 200px; |
| | | max-width: 100%; |
| | | background-size: 200px 70px; |
| | | overflow: hidden; |
| | | position:relative |
| | | } |
| | | </style> |
| | |
| | | import {reactive} from "vue"; |
| | | import {useRouter} from "vue-router" |
| | | const router = useRouter() |
| | | const adda = ref(false) |
| | | |
| | | import { ref } from 'vue' |
| | | import request from "@/utils/request" |
| | | import { ref, onMounted } from "vue"; |
| | | // import { ref } from 'vue' |
| | | import { ElMessage, ElMessageBox } from 'element-plus' |
| | | // import LanguageMixin from './lang/LanguageMixin' |
| | | |
| | | const tableData = [ |
| | | { |
| | | id: '1', |
| | | long: '1005', |
| | | wide: '183.6', |
| | | thick: '1991', |
| | | type: '待识别', |
| | | typea: '1', |
| | | }, |
| | | { |
| | | id: '2', |
| | | long: '105', |
| | | wide: '183', |
| | | thick: '191', |
| | | typea: '1', |
| | | type: '待识别' |
| | | }, |
| | | { |
| | | id: '2', |
| | | long: '105', |
| | | wide: '183', |
| | | thick: '191', |
| | | typea: '1', |
| | | type: '待识别' |
| | | }, |
| | | ] |
| | | const open = () => { |
| | | ElMessageBox.confirm( |
| | | '是否删除该条信息?', |
| | | '提示', |
| | | { |
| | | confirmButtonText: '是', |
| | | cancelButtonText: '取消', |
| | | type: 'warning', |
| | | } |
| | | ) |
| | | .then(() => { |
| | | ElMessage({ |
| | | type: 'success', |
| | | message: '删除成功!', |
| | | }) |
| | | const tableData = ref([]) |
| | | const slot = ref('') |
| | | |
| | | |
| | | request.post("/cacheGlass/taskCache/selectEdgTask").then((res) => { |
| | | if (res.code == 200) { |
| | | |
| | | console.log(res.data); |
| | | tableData.value = res.data |
| | | console.log(res.data[0].slot); |
| | | } else { |
| | | ElMessage.warning(res.msg) |
| | | |
| | | } |
| | | }); |
| | | |
| | | // const getTableRow = (row,type) =>{ |
| | | // switch (type) { |
| | | // case 'delete':{ |
| | | // let flowData = ref({ |
| | | // id:0, |
| | | // slot:row.slot |
| | | // }) |
| | | // request.post("/cacheGlass/edgStorageCage/edgStorageCageGlass",flowData.value).then((res) => { |
| | | // if(res.code==200){ |
| | | // ElMessage.success(t('searchOrder.msgDeleteSuccess')) |
| | | // router.push({path:'/main/delivery/selectDelivery',query:{random:Math.random()}}) |
| | | // }else{ |
| | | // ElMessage.warning(res.msg) |
| | | // router.push("/login") |
| | | // } |
| | | // }) |
| | | |
| | | // return |
| | | // } |
| | | // } |
| | | // } |
| | | // let slots = ref({ |
| | | // id:0, |
| | | // slot: slot.value |
| | | // }) |
| | | const open = async(row) => { |
| | | try { |
| | | const confirmResult = await ElMessageBox.confirm( |
| | | '是否删除该条信息?', |
| | | '提示', |
| | | { |
| | | confirmButtonText: '是', |
| | | cancelButtonText: '取消', |
| | | type: 'warning', |
| | | } |
| | | ); |
| | | if (confirmResult === 'confirm') { |
| | | // 用户点击了“是”,现在调用删除接口 |
| | | const deleteResponse = await request.post("/cacheGlass/edgStorageCage/edgStorageCageGlass", { |
| | | id:0, |
| | | slot: row.slot |
| | | }) |
| | | .catch(() => { |
| | | ElMessage({ |
| | | type: 'info', |
| | | message: '删除失败', |
| | | }) |
| | | }) |
| | | } |
| | | const getTableRow = (row,type) =>{ |
| | | switch (type) { |
| | | case 'edit' :{ |
| | | //alert('我接收到子组件传送的编辑信息') |
| | | router.push({path: '/main/returns/createReturns', query: { ReturnID: 'TH24010101' }}) |
| | | break |
| | | } |
| | | case 'delete':{ |
| | | alert('我接收到子组件传送的删除信息') |
| | | break |
| | | } |
| | | } |
| | | } |
| | | const dialogForm = () => { |
| | | ElMessageBox.confirm( |
| | | '是否破损?', |
| | | '提示', |
| | | { |
| | | confirmButtonText: '是', |
| | | cancelButtonText: '取消', |
| | | type: 'warning', |
| | | } |
| | | ) |
| | | .then(() => { |
| | | // this.boxa = true |
| | | // this.box = false |
| | | |
| | | }) |
| | | } |
| | | const dialogForma = () => { |
| | | ElMessageBox.confirm( |
| | | '是否删除该条信息?', |
| | | '提示', |
| | | { |
| | | confirmButtonText: '是', |
| | | cancelButtonText: '取消', |
| | | type: 'warning', |
| | | } |
| | | ) |
| | | } |
| | | if (response.code == 200) { |
| | | // 删除成功,您可以根据需要处理成功的情况 |
| | | alert('删除成功!'); |
| | | } else { |
| | | // 删除失败,您可以处理错误或显示错误信息给用户 |
| | | alert('删除失败:' + deleteResponse.message); |
| | | } |
| | | } |
| | | } catch (error) { |
| | | // 处理可能出现的错误,比如 ElMessageBox 抛出的异常等 |
| | | console.error('发生错误:', error); |
| | | } |
| | | }; |
| | | // const open = () => { |
| | | // ElMessageBox.confirm( |
| | | // '是否删除该条信息?', |
| | | // '提示', |
| | | // { |
| | | // confirmButtonText: '是', |
| | | // cancelButtonText: '取消', |
| | | // type: 'warning', |
| | | // } |
| | | // ) |
| | | // .then(() => { |
| | | // ElMessage({ |
| | | // type: 'success', |
| | | // message: '删除成功!', |
| | | // }) |
| | | // }) |
| | | // .catch(() => { |
| | | // ElMessage({ |
| | | // type: 'info', |
| | | // message: '删除失败', |
| | | // }) |
| | | // }) |
| | | // } |
| | | // 删除 |
| | | // const handleBindRacka = (row) => { |
| | | // adda.value = true; // 打开绑定架子对话框 |
| | | // }; |
| | | // // 删除 |
| | | // const handleConfirma = async () => { |
| | | // try { |
| | | // window.localStorage.setItem('slot', res.data.slot) |
| | | // let slot = window.localStorage.getItem('slot') |
| | | // const response = await request.post('/cacheGlass/edgStorageCage/edgStorageCageGlass', { |
| | | // slot: slot.value, |
| | | // id: 0 |
| | | // }); |
| | | |
| | | // if (response.code == 200) { |
| | | // // 绑定成功,处理逻辑 |
| | | // ElMessage.success(response.message); |
| | | // adda.value = false; |
| | | // } else { |
| | | // // 请求失败,显示错误消息 |
| | | // ElMessage.error(response.msg); |
| | | // } |
| | | // } catch (error) { |
| | | // // 处理错误 |
| | | // console.error(error); |
| | | // } |
| | | // }; |
| | | |
| | | const gridOptions = reactive({ |
| | | border: "full",//表格加边框 |
| | | keepSource: true,//保持源数据 |
| | |
| | | 'wide': '1005', |
| | | 'thick': '183.6', |
| | | } |
| | | ], |
| | | ] |
| | | |
| | | }) |
| | | |
| | | |
| | | |
| | | </script> |
| | | |
| | | <template> |
| | | <div> |
| | | <el-card style="flex: 1;margin-left: 10px;margin-top: 5px;" v-loading="loading"> |
| | | <div style="width: 98%; height: calc(100% - 35px); overflow-y: auto;max-height: 200px;"> |
| | | <el-table height="100%" ref="table" |
| | | <el-card style="flex: 1;margin-left: 10px;margin-top: 20px;" v-loading="loading"> |
| | | <div style="width: 98%; height: calc(100% - 35px); overflow-y: auto;"> |
| | | <el-table height="240" ref="table" |
| | | @selection-change="handleSelectionChange" |
| | | :data="tableData" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}"> |
| | | <el-table-column prop="id" align="center" label="id" min-width="80" /> |
| | | <el-table-column prop="long" align="center" label="长" min-width="120" /> |
| | | <el-table-column prop="wide" align="center" label="宽" min-width="120" /> |
| | | <el-table-column prop="wide" align="center" label="厚度" min-width="120" /> |
| | | <el-table-column prop="wide" align="center" label="膜系" min-width="120" /> |
| | | <el-table-column prop="wide" align="center" label="出片顺序" min-width="120" /> |
| | | <el-table-column prop="wide" align="center" label="流程卡号" min-width="120" /> |
| | | <el-table-column prop="wide" align="center" label="其他" min-width="120" /> |
| | | <el-table-column prop="slot" align="center" label="id" min-width="80" /> |
| | | <el-table-column prop="glass_id" align="center" label="长" min-width="80" /> |
| | | <el-table-column prop="width" align="center" label="宽" min-width="120" /> |
| | | <el-table-column prop="height" align="center" label="厚度" min-width="120" /> |
| | | <el-table-column prop="height" align="center" label="膜系" min-width="120" /> |
| | | <el-table-column prop="height" align="center" label="出片顺序" min-width="120" /> |
| | | <el-table-column prop="height" align="center" label="流程卡号" min-width="120" /> |
| | | <el-table-column prop="height" align="center" label="其他" min-width="120" /> |
| | | <el-table-column |
| | | align="center" |
| | | label="启用状态" |
| | | min-width="80" |
| | | prop="enable_state" |
| | | > |
| | | <template #default="scope"> |
| | | <el-tag type="success" >{{ scope.row.enable_state==1?"启用":"未启用" }}</el-tag> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column fixed="right" label="操作" align="center" width="200"> |
| | | <template #default> |
| | | <el-button size="mini" type="text" plain @click="dialogForm">破损</el-button> |
| | | <el-button size="mini" type="text" plain @click="dialogForma">删除</el-button> |
| | | <template #default="scope"> |
| | | <el-button size="mini" type="text" plain @click="open(scope.row)">破损</el-button> |
| | | <el-button size="mini" type="text" plain @click="open(scope.row)">删除</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | </div> |
| | | </el-card> |
| | | |
| | | </div> |
| | | </template> |
| | | |
| | |
| | | margin-left: 28%; |
| | | } |
| | | #awatch{ |
| | | height: 450px; |
| | | } |
| | | #main-body{ |
| | | margin-top: -20px; |
| | | margin-left: 300px; |
| | | } |
| | | #main-bodya{ |
| | | margin-top: -10px; |
| | | margin-left: 100px; |
| | | height: 460px; |
| | | /* margin-top: -60px; */ |
| | | } |
| | | </style> |
| | |
| | | const response = await request.get('unLoadGlass/downWorkStation/getflowCardId'); |
| | | console.log(response) |
| | | if (response.code === 200) { |
| | | flowCardOptions.value = response.data.map(item => ({ flowcard_id: item.flow_card_id })); |
| | | flowCardOptions.value = response.data.map(item => ({ flowcard_id: item.flow_card_Id })); |
| | | console.log(flowCardOptions.value) |
| | | } else { |
| | | ElMessage.error(response.msg); |
| | | } |
| | |
| | | |
| | | |
| | | |
| | | initWebSocket(); |
| | | // initWebSocket(); |
| | | onMounted(fetchTableData); |
| | | // setInterval(fetchTableData, 2000) |
| | | |
New file |
| | |
| | | <script lang="ts" setup> |
| | | import {Search} from "@element-plus/icons-vue"; |
| | | import {reactive} from "vue"; |
| | | import {useRouter} from "vue-router" |
| | | import { ref } from 'vue' |
| | | |
| | | const router = useRouter() |
| | | const value1 = ref(true) |
| | | const add = ref(false) |
| | | const adda = ref(false) |
| | | |
| | | const changer = ref(false) |
| | | import { ElMessage, ElMessageBox } from 'element-plus' |
| | | |
| | | const tableData = [ |
| | | { |
| | | id: '1', |
| | | long: '1005', |
| | | wide: '183.6', |
| | | thick: '1991', |
| | | time: '2024/4/1', |
| | | type: '待识别', |
| | | typea: '1', |
| | | }, |
| | | { |
| | | id: '2', |
| | | long: '105', |
| | | wide: '183', |
| | | time: '2024/4/1', |
| | | thick: '191', |
| | | typea: '1', |
| | | type: '待识别' |
| | | }, |
| | | { |
| | | id: '2', |
| | | long: '105', |
| | | wide: '183', |
| | | time: '2024/4/1', |
| | | thick: '191', |
| | | typea: '1', |
| | | type: '待识别' |
| | | }, |
| | | ] |
| | | const open = () => { |
| | | ElMessageBox.confirm( |
| | | '是否删除该条信息?', |
| | | '提示', |
| | | { |
| | | confirmButtonText: '是', |
| | | cancelButtonText: '取消', |
| | | type: 'warning', |
| | | } |
| | | ) |
| | | .then(() => { |
| | | ElMessage({ |
| | | type: 'success', |
| | | message: '删除成功!', |
| | | }) |
| | | }) |
| | | .catch(() => { |
| | | ElMessage({ |
| | | type: 'info', |
| | | message: '删除失败', |
| | | }) |
| | | }) |
| | | } |
| | | const getTableRow = (row,type) =>{ |
| | | switch (type) { |
| | | case 'edit' :{ |
| | | //alert('我接收到子组件传送的编辑信息') |
| | | router.push({path: '/main/returns/createReturns', query: { ReturnID: 'TH24010101' }}) |
| | | break |
| | | } |
| | | case 'delete':{ |
| | | alert('我接收到子组件传送的删除信息') |
| | | break |
| | | } |
| | | } |
| | | } |
| | | const dialogForm = () => { |
| | | ElMessageBox.confirm( |
| | | '是否重置密码?', |
| | | '提示', |
| | | { |
| | | confirmButtonText: '是', |
| | | cancelButtonText: '取消', |
| | | type: 'warning', |
| | | } |
| | | ) |
| | | .then(() => { |
| | | // this.boxa = true |
| | | // this.box = false |
| | | |
| | | }) |
| | | } |
| | | const dialogForma = () => { |
| | | ElMessageBox.confirm( |
| | | '是否删除该条信息?', |
| | | '提示', |
| | | { |
| | | confirmButtonText: '是', |
| | | cancelButtonText: '取消', |
| | | type: 'warning', |
| | | } |
| | | ) |
| | | } |
| | | |
| | | const options = [ |
| | | { |
| | | value: 'Option1', |
| | | label: 'admin', |
| | | }, |
| | | { |
| | | value: 'Option2', |
| | | label: 'ueser2', |
| | | }, |
| | | { |
| | | value: 'Option3', |
| | | label: 'ueser3', |
| | | }, |
| | | ] |
| | | const optionsa = [ |
| | | { |
| | | valuea: 'Option1', |
| | | labela: '正常', |
| | | }, |
| | | { |
| | | valuea: 'Option2', |
| | | labela: '禁用', |
| | | }, |
| | | ] |
| | | |
| | | const data= reactive({ |
| | | tableList:[]//table数据 |
| | | }) |
| | | |
| | | const beforeChange = () => { |
| | | return new Promise((resolve) => { |
| | | setTimeout(() => { |
| | | ElMessage.success("修改成功!"); |
| | | return resolve(true); |
| | | }, 1000); |
| | | }); |
| | | }; |
| | | |
| | | // //js层,实战版本,与后台接口交互 |
| | | // const gettableList = (id) = >{ |
| | | // xxx接口.({ |
| | | // id:id |
| | | // }).then((res)=>{ |
| | | // //将数据传给el-table绑定的:data=>data.tableList |
| | | // data.tableList = res.data |
| | | |
| | | // }) |
| | | // } |
| | | |
| | | // //最后将请求函数挂载到vue视图上 |
| | | // onMounted(() => { |
| | | // gettableList () |
| | | |
| | | // }) |
| | | // const delete = () => { |
| | | // ElMessageBox.confirm( |
| | | // '是否删除该条信息?', |
| | | // '提示', |
| | | // { |
| | | // confirmButtonText: '是', |
| | | // cancelButtonText: '取消', |
| | | // type: 'warning', |
| | | // } |
| | | // ) |
| | | // .then(() => { |
| | | |
| | | // }) |
| | | // } |
| | | const gridOptions = reactive({ |
| | | border: "full",//表格加边框 |
| | | keepSource: true,//保持源数据 |
| | | align: 'center',//文字居中 |
| | | stripe:true,//斑马纹 |
| | | rowConfig: {isCurrent: true, isHover: true,height: 50},//鼠标移动或选择高亮 |
| | | id: 'OrderList', |
| | | showFooter: true,//显示脚 |
| | | printConfig: {}, |
| | | importConfig: {}, |
| | | exportConfig: {}, |
| | | scrollY:{ enabled: true },//开启虚拟滚动 |
| | | showOverflow:true, |
| | | columnConfig: { |
| | | resizable: true, |
| | | useKey: true |
| | | }, |
| | | filterConfig: { //筛选配置项 |
| | | remote: true |
| | | }, |
| | | customConfig: { |
| | | storage: true |
| | | }, |
| | | editConfig: { |
| | | trigger: 'click', |
| | | mode: 'row', |
| | | showStatus: true |
| | | }, |
| | | data: [ |
| | | { |
| | | 'id': '1', |
| | | 'long': '5', |
| | | 'wide': '1005', |
| | | 'thick': '183.6', |
| | | 'time': '2024/4/1', |
| | | } |
| | | ] |
| | | }) |
| | | |
| | | </script> |
| | | |
| | | <template> |
| | | <div> |
| | | <el-button type="primary" style="margin-top: 10px;margin-left: 10px;" size="mini" id="searchButton" @click="add = true">添加用户</el-button> |
| | | <el-input |
| | | clearable |
| | | placeholder="请输入用户名" |
| | | size="mini" |
| | | style="margin-right: 20px; width: 200px;margin-left: 10px;margin-top: 10px;" |
| | | /> |
| | | <el-input |
| | | clearable |
| | | placeholder="请输入邮箱" |
| | | size="mini" |
| | | style="margin-right: 20px; width: 200px;margin-left: 10px;margin-top: 10px;" |
| | | /> |
| | | <el-button type="primary" size="mini" @click="searchSubmit" style="margin-top: 10px;">查询</el-button > |
| | | <el-button type="primary" size="mini" @click="empty" style="margin-top: 10px;">清空</el-button> |
| | | <el-card style="flex: 1;margin-left: 10px;margin-top: 15px;" v-loading="loading"> |
| | | <div style="width: 98%; height: calc(100% - 35px); overflow-y: auto;max-height: 200px;"> |
| | | <el-table height="100%" ref="table" |
| | | @selection-change="handleSelectionChange" |
| | | :data="tableData" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}"> |
| | | <el-table-column prop="id" align="center" label="用户名" min-width="80" /> |
| | | <el-table-column prop="long" align="center" label="邮箱" min-width="120" /> |
| | | <el-table-column prop="time" align="center" label="创建时间" min-width="120" /> |
| | | <el-table-column align="center" prop="changer" label="是否禁用" min-width="140" > |
| | | <template #default="scope"> |
| | | <el-switch v-model="scope.row.changer" :before-change="beforeChange" /> |
| | | </template> |
| | | </el-table-column> |
| | | |
| | | <el-table-column fixed="right" label="操作" align="center" width="200"> |
| | | <template #default> |
| | | <el-button size="mini" type="text" plain @click="dialogForm">重置密码</el-button> |
| | | <el-button size="mini" type="text" plain @click="adda = true">编辑</el-button> |
| | | <el-button size="mini" type="text" plain @click="dialogForma">删除</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | </div> |
| | | </el-card> |
| | | |
| | | </div> |
| | | |
| | | <el-dialog v-model="add" top="23vh" width="37%" title="添加用户" > |
| | | <div style="margin-left: -50px;margin-top: 10px;margin-bottom: 10px;"> |
| | | <el-form size="mini" label-width="150px"> |
| | | <el-form label-width="100px" label-position="right"> |
| | | <el-row style="margin-top: -15px;margin-bottom: -2px;"> |
| | | <el-col :span="6"> |
| | | <div id="dt" style="font-size: 15px;"> |
| | | <div> |
| | | <el-form-item label="用户名:" :required="true" style="width: 25vw"> |
| | | <el-input autocomplete="off" /> |
| | | </el-form-item></div></div> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row style="margin-top: 10px;"> |
| | | <el-col :span="6"> |
| | | <div id="dt" style="font-size: 15px;"> |
| | | <div> |
| | | <el-form-item label="角色:" :required="true" style="width: 25vw;"> |
| | | <el-select |
| | | v-model="value" |
| | | clearable |
| | | placeholder="请选择角色" |
| | | style="width: 330px" |
| | | > |
| | | <el-option |
| | | v-for="item in options" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.value" |
| | | /> |
| | | </el-select> |
| | | </el-form-item></div></div> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row style="margin-top: 10px;"> |
| | | <el-col :span="6"> |
| | | <div id="dt" style="font-size: 15px;"> |
| | | <div> |
| | | <el-form-item label="邮箱:" :required="true" style="width: 25vw;"> |
| | | <el-input autocomplete="off" /> |
| | | </el-form-item></div></div> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row style="margin-top: 10px;"> |
| | | <el-col :span="6"> |
| | | <div id="dt" style="font-size: 15px;"> |
| | | <div> |
| | | <el-form-item label="是否禁用" :required="true" style="width: 25vw;"> |
| | | <el-select |
| | | v-model="value" |
| | | clearable |
| | | placeholder="请选择是否禁用" |
| | | style="width: 330px" |
| | | > |
| | | <el-option |
| | | v-for="item in optionsa" |
| | | :key="item.valuea" |
| | | :label="item.labela" |
| | | :value="item.valuea" |
| | | /> |
| | | </el-select> |
| | | </el-form-item></div></div> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row style="margin-top: 10px;"> |
| | | <el-col :span="6"> |
| | | <div id="dt" style="font-size: 15px;"> |
| | | <div> |
| | | <el-form-item label="密码:" :required="true" style="width: 25vw;"> |
| | | <el-input autocomplete="off" /> |
| | | </el-form-item></div></div> |
| | | </el-col> |
| | | </el-row> |
| | | </el-form> |
| | | </el-form> |
| | | </div> |
| | | <template #footer> |
| | | <div id="dialog-footer"> |
| | | <el-button type="primary" @click="getTableRow('edit')"> |
| | | 确认 |
| | | </el-button> |
| | | <el-button @click="add = false">取消</el-button> |
| | | </div> |
| | | </template> |
| | | </el-dialog> |
| | | <el-dialog v-model="adda" top="23vh" width="37%" title="修改用户" > |
| | | <div style="margin-left: -50px;margin-top: 10px;margin-bottom: 10px;"> |
| | | <el-form size="mini" label-width="150px"> |
| | | <el-form label-width="100px" label-position="right"> |
| | | <el-row style="margin-top: -15px;margin-bottom: -2px;"> |
| | | <el-col :span="6"> |
| | | <div id="dt" style="font-size: 15px;"> |
| | | <div> |
| | | <el-form-item label="用户名:" :required="true" style="width: 25vw"> |
| | | <el-input autocomplete="off" /> |
| | | </el-form-item></div></div> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row style="margin-top: 10px;"> |
| | | <el-col :span="6"> |
| | | <div id="dt" style="font-size: 15px;"> |
| | | <div> |
| | | <el-form-item label="角色:" :required="true" style="width: 25vw;"> |
| | | <el-select |
| | | v-model="value" |
| | | clearable |
| | | placeholder="请选择角色" |
| | | style="width: 330px" |
| | | > |
| | | <el-option |
| | | v-for="item in options" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.value" |
| | | /> |
| | | </el-select> |
| | | </el-form-item></div></div> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row style="margin-top: 10px;"> |
| | | <el-col :span="6"> |
| | | <div id="dt" style="font-size: 15px;"> |
| | | <div> |
| | | <el-form-item label="邮箱:" :required="true" style="width: 25vw;"> |
| | | <el-input autocomplete="off" /> |
| | | </el-form-item></div></div> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row style="margin-top: 10px;"> |
| | | <el-col :span="6"> |
| | | <div id="dt" style="font-size: 15px;"> |
| | | <div> |
| | | <el-form-item label="是否禁用" :required="true" style="width: 25vw;"> |
| | | <el-select |
| | | v-model="value" |
| | | clearable |
| | | placeholder="请选择是否禁用" |
| | | style="width: 330px" |
| | | > |
| | | <el-option |
| | | v-for="item in optionsa" |
| | | :key="item.valuea" |
| | | :label="item.labela" |
| | | :value="item.valuea" |
| | | /> |
| | | </el-select> |
| | | </el-form-item></div></div> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row style="margin-top: 10px;"> |
| | | <el-col :span="6"> |
| | | <div id="dt" style="font-size: 15px;"> |
| | | <div> |
| | | <el-form-item label="密码:" :required="true" style="width: 25vw;"> |
| | | <el-input autocomplete="off" /> |
| | | </el-form-item></div></div> |
| | | </el-col> |
| | | </el-row> |
| | | </el-form> |
| | | </el-form> |
| | | </div> |
| | | <template #footer> |
| | | <div id="dialog-footer"> |
| | | <el-button type="primary" @click="getTableRow('edit')"> |
| | | 确认 |
| | | </el-button> |
| | | <el-button @click="adda = false">取消</el-button> |
| | | </div> |
| | | </template> |
| | | </el-dialog> |
| | | </template> |
| | | |
| | | <style scoped> |
| | | |
| | | #dt { display:block; float:left;line-height: 20px;margin-left: 100px;} |
| | | #dta { display:block; float:left;line-height: 20px;margin-left: 80%;} |
| | | #dialog-footer{ |
| | | text-align: center; |
| | | margin-top: -15px; |
| | | } |
| | | #message{ |
| | | text-align: center; |
| | | align-items: center; |
| | | color: black; |
| | | width: 200px; |
| | | height: 100px; |
| | | background-color: #337ecc; |
| | | margin-left: 28%; |
| | | } |
| | | #awatch{ |
| | | height: 450px; |
| | | } |
| | | #main-body{ |
| | | margin-top: -20px; |
| | | margin-left: 300px; |
| | | } |
| | | #main-bodya{ |
| | | margin-top: -10px; |
| | | margin-left: 100px; |
| | | } |
| | | </style> |
New file |
| | |
| | | <script lang="ts" setup> |
| | | import {Search} from "@element-plus/icons-vue"; |
| | | import {reactive} from "vue"; |
| | | import {useRouter} from "vue-router" |
| | | import { ref } from 'vue' |
| | | |
| | | const router = useRouter() |
| | | const value1 = ref(true) |
| | | const add = ref(false) |
| | | const adda = ref(false) |
| | | |
| | | const changer = ref(false) |
| | | import { ElMessage, ElMessageBox } from 'element-plus' |
| | | |
| | | const tableData = [ |
| | | { |
| | | id: '1', |
| | | long: '1005', |
| | | wide: '183.6', |
| | | thick: '1991', |
| | | time: '2024/4/1', |
| | | type: '待识别', |
| | | typea: '1', |
| | | }, |
| | | { |
| | | id: '2', |
| | | long: '105', |
| | | wide: '183', |
| | | time: '2024/4/1', |
| | | thick: '191', |
| | | typea: '1', |
| | | type: '待识别' |
| | | }, |
| | | { |
| | | id: '2', |
| | | long: '105', |
| | | wide: '183', |
| | | time: '2024/4/1', |
| | | thick: '191', |
| | | typea: '1', |
| | | type: '待识别' |
| | | }, |
| | | ] |
| | | const open = () => { |
| | | ElMessageBox.confirm( |
| | | '是否删除该条信息?', |
| | | '提示', |
| | | { |
| | | confirmButtonText: '是', |
| | | cancelButtonText: '取消', |
| | | type: 'warning', |
| | | } |
| | | ) |
| | | .then(() => { |
| | | ElMessage({ |
| | | type: 'success', |
| | | message: '删除成功!', |
| | | }) |
| | | }) |
| | | .catch(() => { |
| | | ElMessage({ |
| | | type: 'info', |
| | | message: '删除失败', |
| | | }) |
| | | }) |
| | | } |
| | | const getTableRow = (row,type) =>{ |
| | | switch (type) { |
| | | case 'edit' :{ |
| | | //alert('我接收到子组件传送的编辑信息') |
| | | router.push({path: '/main/returns/createReturns', query: { ReturnID: 'TH24010101' }}) |
| | | break |
| | | } |
| | | case 'delete':{ |
| | | alert('我接收到子组件传送的删除信息') |
| | | break |
| | | } |
| | | } |
| | | } |
| | | const dialogForm = () => { |
| | | ElMessageBox.confirm( |
| | | '是否重置密码?', |
| | | '提示', |
| | | { |
| | | confirmButtonText: '是', |
| | | cancelButtonText: '取消', |
| | | type: 'warning', |
| | | } |
| | | ) |
| | | .then(() => { |
| | | // this.boxa = true |
| | | // this.box = false |
| | | |
| | | }) |
| | | } |
| | | const dialogForma = () => { |
| | | ElMessageBox.confirm( |
| | | '是否删除该条信息?', |
| | | '提示', |
| | | { |
| | | confirmButtonText: '是', |
| | | cancelButtonText: '取消', |
| | | type: 'warning', |
| | | } |
| | | ) |
| | | } |
| | | |
| | | const options = [ |
| | | { |
| | | value: 'Option1', |
| | | label: 'admin', |
| | | }, |
| | | { |
| | | value: 'Option2', |
| | | label: 'ueser2', |
| | | }, |
| | | { |
| | | value: 'Option3', |
| | | label: 'ueser3', |
| | | }, |
| | | ] |
| | | const optionsa = [ |
| | | { |
| | | valuea: 'Option1', |
| | | labela: '正常', |
| | | }, |
| | | { |
| | | valuea: 'Option2', |
| | | labela: '禁用', |
| | | }, |
| | | ] |
| | | |
| | | const data= reactive({ |
| | | tableList:[]//table数据 |
| | | }) |
| | | |
| | | const beforeChange = () => { |
| | | return new Promise((resolve) => { |
| | | setTimeout(() => { |
| | | ElMessage.success("修改成功!"); |
| | | return resolve(true); |
| | | }, 1000); |
| | | }); |
| | | }; |
| | | |
| | | // //js层,实战版本,与后台接口交互 |
| | | // const gettableList = (id) = >{ |
| | | // xxx接口.({ |
| | | // id:id |
| | | // }).then((res)=>{ |
| | | // //将数据传给el-table绑定的:data=>data.tableList |
| | | // data.tableList = res.data |
| | | |
| | | // }) |
| | | // } |
| | | |
| | | // //最后将请求函数挂载到vue视图上 |
| | | // onMounted(() => { |
| | | // gettableList () |
| | | |
| | | // }) |
| | | // const delete = () => { |
| | | // ElMessageBox.confirm( |
| | | // '是否删除该条信息?', |
| | | // '提示', |
| | | // { |
| | | // confirmButtonText: '是', |
| | | // cancelButtonText: '取消', |
| | | // type: 'warning', |
| | | // } |
| | | // ) |
| | | // .then(() => { |
| | | |
| | | // }) |
| | | // } |
| | | const gridOptions = reactive({ |
| | | border: "full",//表格加边框 |
| | | keepSource: true,//保持源数据 |
| | | align: 'center',//文字居中 |
| | | stripe:true,//斑马纹 |
| | | rowConfig: {isCurrent: true, isHover: true,height: 50},//鼠标移动或选择高亮 |
| | | id: 'OrderList', |
| | | showFooter: true,//显示脚 |
| | | printConfig: {}, |
| | | importConfig: {}, |
| | | exportConfig: {}, |
| | | scrollY:{ enabled: true },//开启虚拟滚动 |
| | | showOverflow:true, |
| | | columnConfig: { |
| | | resizable: true, |
| | | useKey: true |
| | | }, |
| | | filterConfig: { //筛选配置项 |
| | | remote: true |
| | | }, |
| | | customConfig: { |
| | | storage: true |
| | | }, |
| | | editConfig: { |
| | | trigger: 'click', |
| | | mode: 'row', |
| | | showStatus: true |
| | | }, |
| | | data: [ |
| | | { |
| | | 'id': '1', |
| | | 'long': '5', |
| | | 'wide': '1005', |
| | | 'thick': '183.6', |
| | | 'time': '2024/4/1', |
| | | } |
| | | ] |
| | | }) |
| | | |
| | | </script> |
| | | |
| | | <template> |
| | | <div> |
| | | <el-button type="primary" style="margin-top: 10px;margin-left: 10px;" size="mini" id="searchButton" @click="add = true">添加用户</el-button> |
| | | <el-input |
| | | clearable |
| | | placeholder="请输入用户名" |
| | | size="mini" |
| | | style="margin-right: 20px; width: 200px;margin-left: 10px;margin-top: 10px;" |
| | | /> |
| | | <el-input |
| | | clearable |
| | | placeholder="请输入邮箱" |
| | | size="mini" |
| | | style="margin-right: 20px; width: 200px;margin-left: 10px;margin-top: 10px;" |
| | | /> |
| | | <el-button type="primary" size="mini" @click="searchSubmit" style="margin-top: 10px;">查询</el-button > |
| | | <el-button type="primary" size="mini" @click="empty" style="margin-top: 10px;">清空</el-button> |
| | | <el-card style="flex: 1;margin-left: 10px;margin-top: 15px;" v-loading="loading"> |
| | | <div style="width: 98%; height: calc(100% - 35px); overflow-y: auto;max-height: 200px;"> |
| | | <el-table height="100%" ref="table" |
| | | @selection-change="handleSelectionChange" |
| | | :data="tableData" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}"> |
| | | <el-table-column prop="id" align="center" label="用户名" min-width="80" /> |
| | | <el-table-column prop="long" align="center" label="邮箱" min-width="120" /> |
| | | <el-table-column prop="time" align="center" label="创建时间" min-width="120" /> |
| | | <el-table-column align="center" prop="changer" label="是否禁用" min-width="140" > |
| | | <template #default="scope"> |
| | | <el-switch v-model="scope.row.changer" :before-change="beforeChange" /> |
| | | </template> |
| | | </el-table-column> |
| | | |
| | | <el-table-column fixed="right" label="操作" align="center" width="200"> |
| | | <template #default> |
| | | <el-button size="mini" type="text" plain @click="dialogForm">重置密码</el-button> |
| | | <el-button size="mini" type="text" plain @click="adda = true">编辑</el-button> |
| | | <el-button size="mini" type="text" plain @click="dialogForma">删除</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | </div> |
| | | </el-card> |
| | | |
| | | </div> |
| | | |
| | | <el-dialog v-model="add" top="23vh" width="37%" title="添加用户" > |
| | | <div style="margin-left: -50px;margin-top: 10px;margin-bottom: 10px;"> |
| | | <el-form size="mini" label-width="150px"> |
| | | <el-form label-width="100px" label-position="right"> |
| | | <el-row style="margin-top: -15px;margin-bottom: -2px;"> |
| | | <el-col :span="6"> |
| | | <div id="dt" style="font-size: 15px;"> |
| | | <div> |
| | | <el-form-item label="用户名:" :required="true" style="width: 25vw"> |
| | | <el-input autocomplete="off" /> |
| | | </el-form-item></div></div> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row style="margin-top: 10px;"> |
| | | <el-col :span="6"> |
| | | <div id="dt" style="font-size: 15px;"> |
| | | <div> |
| | | <el-form-item label="角色:" :required="true" style="width: 25vw;"> |
| | | <el-select |
| | | v-model="value" |
| | | clearable |
| | | placeholder="请选择角色" |
| | | style="width: 330px" |
| | | > |
| | | <el-option |
| | | v-for="item in options" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.value" |
| | | /> |
| | | </el-select> |
| | | </el-form-item></div></div> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row style="margin-top: 10px;"> |
| | | <el-col :span="6"> |
| | | <div id="dt" style="font-size: 15px;"> |
| | | <div> |
| | | <el-form-item label="邮箱:" :required="true" style="width: 25vw;"> |
| | | <el-input autocomplete="off" /> |
| | | </el-form-item></div></div> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row style="margin-top: 10px;"> |
| | | <el-col :span="6"> |
| | | <div id="dt" style="font-size: 15px;"> |
| | | <div> |
| | | <el-form-item label="是否禁用" :required="true" style="width: 25vw;"> |
| | | <el-select |
| | | v-model="value" |
| | | clearable |
| | | placeholder="请选择是否禁用" |
| | | style="width: 330px" |
| | | > |
| | | <el-option |
| | | v-for="item in optionsa" |
| | | :key="item.valuea" |
| | | :label="item.labela" |
| | | :value="item.valuea" |
| | | /> |
| | | </el-select> |
| | | </el-form-item></div></div> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row style="margin-top: 10px;"> |
| | | <el-col :span="6"> |
| | | <div id="dt" style="font-size: 15px;"> |
| | | <div> |
| | | <el-form-item label="密码:" :required="true" style="width: 25vw;"> |
| | | <el-input autocomplete="off" /> |
| | | </el-form-item></div></div> |
| | | </el-col> |
| | | </el-row> |
| | | </el-form> |
| | | </el-form> |
| | | </div> |
| | | <template #footer> |
| | | <div id="dialog-footer"> |
| | | <el-button type="primary" @click="getTableRow('edit')"> |
| | | 确认 |
| | | </el-button> |
| | | <el-button @click="add = false">取消</el-button> |
| | | </div> |
| | | </template> |
| | | </el-dialog> |
| | | <el-dialog v-model="adda" top="23vh" width="37%" title="修改用户" > |
| | | <div style="margin-left: -50px;margin-top: 10px;margin-bottom: 10px;"> |
| | | <el-form size="mini" label-width="150px"> |
| | | <el-form label-width="100px" label-position="right"> |
| | | <el-row style="margin-top: -15px;margin-bottom: -2px;"> |
| | | <el-col :span="6"> |
| | | <div id="dt" style="font-size: 15px;"> |
| | | <div> |
| | | <el-form-item label="用户名:" :required="true" style="width: 25vw"> |
| | | <el-input autocomplete="off" /> |
| | | </el-form-item></div></div> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row style="margin-top: 10px;"> |
| | | <el-col :span="6"> |
| | | <div id="dt" style="font-size: 15px;"> |
| | | <div> |
| | | <el-form-item label="角色:" :required="true" style="width: 25vw;"> |
| | | <el-select |
| | | v-model="value" |
| | | clearable |
| | | placeholder="请选择角色" |
| | | style="width: 330px" |
| | | > |
| | | <el-option |
| | | v-for="item in options" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.value" |
| | | /> |
| | | </el-select> |
| | | </el-form-item></div></div> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row style="margin-top: 10px;"> |
| | | <el-col :span="6"> |
| | | <div id="dt" style="font-size: 15px;"> |
| | | <div> |
| | | <el-form-item label="邮箱:" :required="true" style="width: 25vw;"> |
| | | <el-input autocomplete="off" /> |
| | | </el-form-item></div></div> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row style="margin-top: 10px;"> |
| | | <el-col :span="6"> |
| | | <div id="dt" style="font-size: 15px;"> |
| | | <div> |
| | | <el-form-item label="是否禁用" :required="true" style="width: 25vw;"> |
| | | <el-select |
| | | v-model="value" |
| | | clearable |
| | | placeholder="请选择是否禁用" |
| | | style="width: 330px" |
| | | > |
| | | <el-option |
| | | v-for="item in optionsa" |
| | | :key="item.valuea" |
| | | :label="item.labela" |
| | | :value="item.valuea" |
| | | /> |
| | | </el-select> |
| | | </el-form-item></div></div> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row style="margin-top: 10px;"> |
| | | <el-col :span="6"> |
| | | <div id="dt" style="font-size: 15px;"> |
| | | <div> |
| | | <el-form-item label="密码:" :required="true" style="width: 25vw;"> |
| | | <el-input autocomplete="off" /> |
| | | </el-form-item></div></div> |
| | | </el-col> |
| | | </el-row> |
| | | </el-form> |
| | | </el-form> |
| | | </div> |
| | | <template #footer> |
| | | <div id="dialog-footer"> |
| | | <el-button type="primary" @click="getTableRow('edit')"> |
| | | 确认 |
| | | </el-button> |
| | | <el-button @click="adda = false">取消</el-button> |
| | | </div> |
| | | </template> |
| | | </el-dialog> |
| | | </template> |
| | | |
| | | <style scoped> |
| | | |
| | | #dt { display:block; float:left;line-height: 20px;margin-left: 100px;} |
| | | #dta { display:block; float:left;line-height: 20px;margin-left: 80%;} |
| | | #dialog-footer{ |
| | | text-align: center; |
| | | margin-top: -15px; |
| | | } |
| | | #message{ |
| | | text-align: center; |
| | | align-items: center; |
| | | color: black; |
| | | width: 200px; |
| | | height: 100px; |
| | | background-color: #337ecc; |
| | | margin-left: 28%; |
| | | } |
| | | #awatch{ |
| | | height: 450px; |
| | | } |
| | | #main-body{ |
| | | margin-top: -20px; |
| | | margin-left: 300px; |
| | | } |
| | | #main-bodya{ |
| | | margin-top: -10px; |
| | | margin-left: 100px; |
| | | } |
| | | </style> |
New file |
| | |
| | | <script setup> |
| | | import {ArrowLeftBold, ArrowRight, Search} from "@element-plus/icons-vue" |
| | | import {useRouter} from "vue-router"; |
| | | let indexFlag=$ref(1) |
| | | function changeRouter(index){ |
| | | indexFlag=index |
| | | } |
| | | |
| | | </script> |
| | | |
| | | <template> |
| | | <!-- <div id="main-div"> --> |
| | | |
| | | |
| | | <div id="main-body"> |
| | | <router-view /> |
| | | </div> |
| | | <!-- </div> --> |
| | | </template> |
| | | |
| | | <style scoped> |
| | | #main-div{ |
| | | width: 100%; |
| | | height: 100%; |
| | | } |
| | | #div-title{ |
| | | height: 2%; |
| | | width: 100%; |
| | | } |
| | | #searchButton{ |
| | | margin-top: -5px; |
| | | margin-left: 1rem; |
| | | } |
| | | /* #searchButton1{ |
| | | //margin-left: 10rem; |
| | | } */ |
| | | /*main-body样式*/ |
| | | #main-body{ |
| | | width: 100%; |
| | | height: 95%; |
| | | /* margin-top: 1%; */ |
| | | } |
| | | #select{ |
| | | margin-left:0.5rem; |
| | | } |
| | | :deep(.indexTag .el-breadcrumb__inner){ |
| | | color: #5CADFE !important; |
| | | } |
| | | </style> |
| | |
| | | //默认角色 |
| | | public static final Long DEFULT_ROLE = 1L; |
| | | |
| | | //A09出片目标位置 |
| | | public static final String A09_OUT_TARGET_POSITION = "2001"; |
| | | //A09出片目标位置 |
| | | public static final String A10_OUT_TARGET_POSITION = "2002"; |
| | | /** |
| | | * 磨边清洗前 |
| | | */ |
| | | /** |
| | | * A09出片目标位置2001 |
| | | * A10出片目标位置2002 |
| | | */ |
| | | public static final Integer A09_OUT_TARGET_POSITION = 2001; |
| | | public static final Integer A10_OUT_TARGET_POSITION = 2002; |
| | | |
| | | /** |
| | | * 卧式理片笼详情表玻璃状态 |
| | | * 识别后成功状态100 |
| | | * 出片任务101 |
| | | * 拿走200 |
| | | * 破损201 |
| | | */ |
| | | public static final Integer GLASS_STATE_IN = 100; |
| | | public static final Integer GLASS_STATE_OUT = 101; |
| | | public static final Integer GLASS_STATE_TAKE = 200; |
| | | public static final Integer A10_OUT_TARGET_DAMAGE = 201; |
| | | |
| | | } |
| | |
| | | */ |
| | | public String getAddress(int index) { |
| | | String[] stringdatas = this.startAddress.trim().split("\\."); |
| | | if (stringdatas.length < 2) |
| | | if (stringdatas.length < 2) { |
| | | return null; |
| | | } |
| | | int dbwindex = 0; |
| | | int bitindex = 0; |
| | | if (stringdatas.length == 3) { |
| | | dbwindex = Integer.parseInt(stringdatas[1]); |
| | | bitindex = Integer.parseInt(stringdatas[2]); |
| | | } else |
| | | { |
| | | return null; |
| | | } |
| | | dbwindex += index / 8; |
| | | bitindex += index % 8; |
| | | return stringdatas[0] + "." + dbwindex + "." + bitindex; |
| | | } |
| | | /** |
| | | * 获取地址 |
| | | * |
| | | */ |
| | | public String getAddress() { |
| | | return getAddress(this.addressIndex); |
| | | } |
| | | |
| | | |
| | | public void setAddressIndex(int addressindex) { |
| | |
| | | package com.mes.device; |
| | | |
| | | import java.util.ArrayList; |
| | | import java.util.LinkedHashMap; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | import java.util.*; |
| | | |
| | | public class PlcBitObject { |
| | | |
| | |
| | | private String plcAddressBegin; |
| | | // 数据地址长度:第一参数到最后一个参数的长度 |
| | | private int plcAddressLength; |
| | | private ArrayList<PlcBitInfo> plcBitList; |
| | | //private ArrayList<PlcBitInfo> plcBitList; |
| | | private LinkedHashMap<String,PlcBitInfo> plcBitMap; |
| | | |
| | | /** |
| | | * @return 数据区开始地址 |
| | |
| | | /** |
| | | * @return 获取参数实例集合 |
| | | */ |
| | | public ArrayList<PlcBitInfo> getBitList() { |
| | | return plcBitList; |
| | | public LinkedHashMap<String,PlcBitInfo> getBitMap() { |
| | | return plcBitMap; |
| | | } |
| | | |
| | | /** |
| | |
| | | * @return 获取某个参数实例 |
| | | */ |
| | | public PlcBitInfo getPlcBit(String codeid) { |
| | | if (plcBitList != null) { |
| | | for (PlcBitInfo plcbitInfo : plcBitList) { |
| | | if (plcBitMap != null) { |
| | | /*for (PlcBitInfo plcbitInfo : plcBitList) { |
| | | if (plcbitInfo.getCodeId().equals(codeid)) |
| | | return plcbitInfo; |
| | | } |
| | | return null; |
| | | }*/ |
| | | return plcBitMap.get(codeid); |
| | | } else |
| | | { |
| | | return null; |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 根据参数标识 获取某个参数实例 |
| | | * |
| | | * @param codeid 参数标识 |
| | | * @param codeids 参数标识 |
| | | * @return 获取某个参数实例 |
| | | */ |
| | | public List<Boolean> getPlcBitValues(List<String> codeids) { |
| | | List<Boolean> arrayList = new ArrayList<>(); |
| | | if (plcBitList != null) { |
| | | Map<String, Boolean> resultMap = new LinkedHashMap<>(); // 使用 LinkedHashMap 保留插入顺序 |
| | | for (PlcBitInfo plcBitInfo : plcBitList) { |
| | | if (codeids.contains(plcBitInfo.getCodeId().toString())) { |
| | | resultMap.put(plcBitInfo.getCodeId().toString(), plcBitInfo.getValue()); |
| | | } |
| | | } |
| | | if (plcBitMap != null) { |
| | | for (String codeId : codeids) { // 按照传入参数的顺序遍历 |
| | | Boolean value = resultMap.get(codeId); |
| | | if (value != null) { |
| | | arrayList.add(value); |
| | | } else { |
| | | arrayList.add(null); // 如果找不到对应的值,添加 null |
| | | } |
| | | arrayList.add(plcBitMap.get(codeId).getValue()); |
| | | } |
| | | } |
| | | return arrayList; |
| | |
| | | public List<String> getAddressListByCodeId(List<String> codeIdList) { |
| | | List<String> addressList = new ArrayList<>(); |
| | | for (String codeId : codeIdList) { |
| | | for (PlcBitInfo plcBitInfo : plcBitList) { |
| | | if (plcBitInfo.getCodeId().equals(codeId)) { |
| | | int index = plcBitInfo.getAddressIndex(); |
| | | String address = plcBitInfo.getAddress(index); |
| | | if (address != null) { |
| | | addressList.add(address); |
| | | } |
| | | } |
| | | } |
| | | addressList.add(plcBitMap.get(codeId).getAddress()); |
| | | } |
| | | return addressList; |
| | | } |
| | |
| | | * @param param 参数实例 |
| | | */ |
| | | public void addPlcBit(PlcBitInfo param) { |
| | | if (plcBitList != null) |
| | | plcBitList.add(param); |
| | | if (plcBitMap != null) |
| | | plcBitMap.put(param.getCodeId(),param); |
| | | else { |
| | | plcBitList = new ArrayList<PlcBitInfo>(); |
| | | plcBitList.add(param); |
| | | plcBitMap = new LinkedHashMap<String,PlcBitInfo>(); |
| | | plcBitMap.put(param.getCodeId(),param); |
| | | } |
| | | } |
| | | |
| | |
| | | * @param plcValueArray PLC读取回来的byte类型数据集合 |
| | | */ |
| | | public void setPlcBitList(List<Boolean> plcValueArray) { |
| | | if (plcBitList != null) { |
| | | for (PlcBitInfo plcbitInfo : plcBitList) { |
| | | if (plcBitMap != null) { |
| | | Collection<PlcBitInfo> values=plcBitMap.values(); |
| | | for (PlcBitInfo plcbitInfo : values) { |
| | | plcbitInfo.setValue(plcValueArray.get(plcbitInfo.getAddressIndex())); |
| | | } |
| | | } |
| | |
| | | // return null; |
| | | } |
| | | |
| | | public int getPlcAddress() { |
| | | |
| | | return addressIndex; |
| | | } |
| | | |
| | | public String getAddress() { |
| | | return getAddress(this.addressIndex); |
| | | } |
| | |
| | | |
| | | import java.lang.reflect.Array; |
| | | import java.nio.charset.StandardCharsets; |
| | | import java.util.ArrayList; |
| | | import java.util.LinkedHashMap; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | import java.util.*; |
| | | |
| | | public class PlcParameterObject { |
| | | |
| | |
| | | private String plcAddressBegin; |
| | | // 数据地址长度:第一参数到最后一个参数的长度 |
| | | private int plcAddressLength; |
| | | private ArrayList<PlcParameterInfo> plcParameterList; |
| | | //private ArrayList<PlcParameterInfo> plcParameterList; |
| | | private LinkedHashMap<String,PlcParameterInfo> plcParameterMap; |
| | | |
| | | |
| | | /** |
| | |
| | | /** |
| | | * @return 获取参数实例集合 |
| | | */ |
| | | public ArrayList<PlcParameterInfo> getPlcParameterList() { |
| | | return plcParameterList; |
| | | public LinkedHashMap<String,PlcParameterInfo> getPlcParameterMap() { |
| | | return plcParameterMap; |
| | | } |
| | | |
| | | /** |
| | |
| | | * @return 获取某个参数实例 |
| | | */ |
| | | public PlcParameterInfo getPlcParameter(String codeid) { |
| | | if (plcParameterList != null) { |
| | | if (plcParameterMap != null) { |
| | | return plcParameterMap.get(codeid); |
| | | } else { |
| | | return null; |
| | | } |
| | | /*if (plcParameterList != null) { |
| | | for (PlcParameterInfo plcParameterInfo : plcParameterList) { |
| | | if (plcParameterInfo.getCodeId().equals(codeid)) |
| | | return plcParameterInfo; |
| | | } |
| | | return null; |
| | | } else |
| | | return null; |
| | | return null;*/ |
| | | } |
| | | |
| | | |
| | |
| | | */ |
| | | public List<String> getPlcParameterValues(List<String> codeids) { |
| | | List<String> arrayList = new ArrayList<>(); |
| | | if (plcParameterList != null) { |
| | | Map<String, PlcParameterInfo> resultMap = new LinkedHashMap<>(); // 使用 LinkedHashMap 保留插入顺序 |
| | | if (plcParameterMap != null) { |
| | | /*Map<String, PlcParameterInfo> resultMap = new LinkedHashMap<>(); // 使用 LinkedHashMap 保留插入顺序 |
| | | for (PlcParameterInfo plcParameterInfo : plcParameterList) { |
| | | if (codeids.contains(plcParameterInfo.getCodeId())) { |
| | | resultMap.put(plcParameterInfo.getCodeId(), plcParameterInfo); |
| | | } |
| | | } |
| | | }*/ |
| | | for (String codeId : codeids) { // 按照传入参数的顺序遍历 |
| | | PlcParameterInfo plcParameterInfo = resultMap.get(codeId); |
| | | PlcParameterInfo plcParameterInfo = plcParameterMap.get(codeId); |
| | | if (plcParameterInfo != null) { |
| | | arrayList.add(plcParameterInfo.getValue()); |
| | | } else { |
| | |
| | | return arrayList; |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 根据参数标识 获取传入参数的plc地址 |
| | | * |
| | | * @param codeIdList 参数标识 |
| | | * @return 传入参数的plc地址 |
| | | */ |
| | | public List<String> getAddressListByCodeId(List<String> codeIdList) { |
| | | List<String> addressList = new ArrayList<>(); |
| | | for (String codeId : codeIdList) { |
| | | for (PlcParameterInfo plcParameterInfo : plcParameterList) { |
| | | if (plcParameterInfo.getCodeId().equals(codeId)) { |
| | | int index = plcParameterInfo.getAddressIndex(); |
| | | String address = plcParameterInfo.getAddress(index); |
| | | if (plcParameterMap!=null) |
| | | { |
| | | for (String codeId : codeIdList) { |
| | | String address = plcParameterMap.get(codeId).getAddress(); |
| | | if (address != null) { |
| | | addressList.add(address); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | return addressList; |
| | | } |
| | |
| | | * @param param 参数实例 |
| | | */ |
| | | public void addPlcParameter(PlcParameterInfo param) { |
| | | if (plcParameterList != null) |
| | | if (plcParameterMap != null) { |
| | | plcParameterMap.put(param.getCodeId(), param); |
| | | } |
| | | else { |
| | | plcParameterMap =new LinkedHashMap<String,PlcParameterInfo>(); |
| | | plcParameterMap.put(param.getCodeId(), param); |
| | | } |
| | | /*if (plcParameterList != null) |
| | | plcParameterList.add(param); |
| | | else { |
| | | plcParameterList = new ArrayList<PlcParameterInfo>(); |
| | | plcParameterList.add(param); |
| | | } |
| | | }*/ |
| | | } |
| | | |
| | | /** |
| | |
| | | * @param plcValueArray PLC读取回来的byte类型数据集合 |
| | | */ |
| | | public void setPlcParameterList(byte[] plcValueArray) { |
| | | if (plcParameterList != null) { |
| | | if (plcParameterMap != null) { |
| | | Collection<PlcParameterInfo> values= plcParameterMap.values(); |
| | | for (PlcParameterInfo plcParameterInfo :values) { |
| | | byte[] valueList = new byte[plcParameterInfo.getAddressLength()]; |
| | | // System.out.println(plcParameterInfo.getAddressLength()); |
| | | for (int i = 0; i < plcParameterInfo.getAddressLength(); i++) { |
| | | Array.setByte(valueList, i, plcValueArray[plcParameterInfo.getAddressIndex() + i]); |
| | | } |
| | | if (plcParameterInfo.getAddressLength() == 2) { |
| | | plcParameterInfo.setValue(String.valueOf(byte2short(valueList))); |
| | | } else if (plcParameterInfo.getAddressLength() == 4) { |
| | | plcParameterInfo.setValue(String.valueOf(byte2int(valueList))); |
| | | } |
| | | else if (plcParameterInfo.getAddressLength() >10) { |
| | | plcParameterInfo.setValue((byteToHexString(valueList))); |
| | | } else { |
| | | String valuestr = new String(valueList); |
| | | plcParameterInfo.setValue(valuestr); |
| | | } |
| | | } |
| | | } |
| | | /* if (plcParameterList != null) { |
| | | |
| | | for (PlcParameterInfo plcParameterInfo : plcParameterList) { |
| | | |
| | |
| | | plcParameterInfo.setValue(valuestr); |
| | | } |
| | | } |
| | | } |
| | | }*/ |
| | | } |
| | | |
| | | /** |
| | |
| | | String str = new String(bytes, StandardCharsets.UTF_8).trim(); |
| | | return str; |
| | | } |
| | | |
| | | |
| | | } |
| | |
| | | // plcBitObject.setPlcBitList(getplcvlues); |
| | | return plcBitObject; |
| | | } |
| | | |
| | | // |
| | | public static void readAndUpdateBitValues(PlcBitObject plcBitObject) { |
| | | |
| | | Boolean[] values1 = {false, true, true, true, false, false, true, false, |
| | | false, true, true}; |
| | | List<Boolean> getplcvlues = new ArrayList<>(Arrays.asList(values1)); |
| | | //List<Boolean> getplcvlues = S7control.getinstance().ReadBits(plcBitObject.getPlcAddressBegin(), plcBitObject.getPlcAddressLength()); |
| | | plcBitObject.setPlcBitList(getplcvlues); |
| | | } |
| | | |
| | | |
| | | public static void readAndUpdateWordValues(PlcParameterObject plcParameterObject) { |
| | | |
| | | byte[] getplcvlues = {0x01, 0x02, 0x03, 0x04, 0x01, 0x02, 0x03, 0x04, 0x01, 0x02, 0x03, 0x03}; |
| | | // byte[] getplcvlues = MockS7PLC.getInstance().readByte(plcParameterObject.getPlcAddressBegin(), plcParameterObject.getPlcAddressLength()); |
| | | plcParameterObject.setPlcParameterList(getplcvlues); |
| | | } |
| | | |
| | | |
| | | } |
| | |
| | | private Integer patternSequence; |
| | | |
| | | /** |
| | | * 状态 |
| | | * 状态 (识别后成功状态100,出片任务101, 拿走200,破损201) |
| | | */ |
| | | private Integer state; |
| | | |
| | |
| | | package com.mes.edgstoragecage.service; |
| | | |
| | | import com.baomidou.mybatisplus.extension.service.IService; |
| | | import com.github.yulichang.base.MPJBaseService; |
| | | import com.github.yulichang.wrapper.MPJLambdaWrapper; |
| | | import com.mes.edgstoragecage.entity.EdgStorageCageDetails; |
| | | import com.mes.pp.entity.OptimizeDetail; |
| | | import com.mes.taskcache.entity.TaskCache; |
| | | |
| | | import java.util.List; |
| | | import java.util.Map; |
| | |
| | | * @return |
| | | */ |
| | | EdgStorageCageDetails selectConformGlass(String glassId, int poor); |
| | | |
| | | /** |
| | | * 获取出片信息数据 |
| | | * @param glassId |
| | | * @param poor |
| | | * @return |
| | | */ |
| | | EdgStorageCageDetails selectOutGlass(String glassId, int poor); |
| | | } |
| | |
| | | package com.mes.edgstoragecage.service; |
| | | |
| | | import com.baomidou.mybatisplus.extension.service.IService; |
| | | import com.github.yulichang.base.MPJBaseService; |
| | | import com.mes.edgstoragecage.entity.EdgStorageCage; |
| | | import com.mes.edgstoragecage.entity.EdgStorageCageDetails; |
| | |
| | | public interface EdgStorageCageService extends MPJBaseService<EdgStorageCage> { |
| | | |
| | | /** |
| | | * 查询笼内离指定格子最近空格 |
| | | * @return |
| | | */ |
| | | EdgStorageCage selectNearestEmpty(int currentSlot); |
| | | |
| | | /** |
| | | * 查询笼内空格 |
| | | * @return |
| | | */ |
| | |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | import javax.annotation.Resource; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | import java.util.stream.Collectors; |
| | |
| | | @Slf4j |
| | | public class EdgStorageCageDetailsServiceImpl extends MPJBaseServiceImpl<EdgStorageCageDetailsMapper, EdgStorageCageDetails> implements EdgStorageCageDetailsService { |
| | | |
| | | @Resource |
| | | @Autowired |
| | | UpPattenUsageMapper upPattenUsageMapper; |
| | | |
| | | @Autowired |
| | | OptimizeDetailMapper optimizeDetailMapper; |
| | | |
| | | @Resource |
| | | @Autowired |
| | | EdgStorageCageMapper edgStorageCageMapper; |
| | | |
| | | @Autowired |
| | |
| | | |
| | | /** |
| | | * 查询笼内版图差值范围内的 此尺寸玻璃 如无则按照 钢化版图序号 以及玻璃序号 |
| | | * @param glassId |
| | | * @param poor |
| | | * @return |
| | | */ |
| | | @Override |
| | | public EdgStorageCageDetails selectConformGlass(String glassId, int poor){ |
| | | //1.去笼内查询此尺寸的玻璃 目前版图差值内的玻璃 是否有同尺寸的 |
| | | //1.1 有同尺寸的 则生成同尺寸的任务 |
| | | //1.2 无同尺寸的 则生成版图顺序最小的出片 |
| | | EdgStorageCageDetails edgStorageCageDetails= baseMapper.selectOne(new MPJLambdaQueryWrapper<EdgStorageCageDetails>() |
| | | .selectAll(EdgStorageCageDetails.class) |
| | | .eq(EdgStorageCageDetails::getGlassId,glassId) |
| | | ); |
| | | List<EdgStorageCageDetails> listEdgStorageCageDetails= baseMapper.selectList(new LambdaQueryWrapper<EdgStorageCageDetails>() |
| | | .lt(EdgStorageCageDetails::getState,200) |
| | | .orderByAsc(EdgStorageCageDetails::getTemperingLayoutId,EdgStorageCageDetails::getTemperingFeedSequence) |
| | | ); |
| | | EdgStorageCageDetails minTemperingLayoutId=new EdgStorageCageDetails(); |
| | | if(!listEdgStorageCageDetails.isEmpty()){ |
| | | minTemperingLayoutId=listEdgStorageCageDetails.get(0); |
| | | } |
| | | EdgStorageCageDetails result=new EdgStorageCageDetails(); |
| | | if(edgStorageCageDetails!=null&&minTemperingLayoutId!=null){ |
| | | result=edgStorageCageMapper.selectJoinOne(EdgStorageCageDetails.class,new MPJLambdaWrapper<EdgStorageCage>() |
| | | .selectAll(EdgStorageCageDetails.class) |
| | | .leftJoin(EdgStorageCageDetails.class,on->on |
| | | .eq(EdgStorageCageDetails::getDeviceId,EdgStorageCage::getDeviceId) |
| | | .eq(EdgStorageCageDetails::getSlot,EdgStorageCage::getSlot)) |
| | | .isNotNull(EdgStorageCageDetails::getSlot) |
| | | .eq(EdgStorageCageDetails::getWidth,edgStorageCageDetails.getWidth()) |
| | | .eq(EdgStorageCageDetails::getHeight,edgStorageCageDetails.getHeight()) |
| | | .ge(EdgStorageCageDetails::getTemperingLayoutId,minTemperingLayoutId.getTemperingLayoutId()) |
| | | .le(EdgStorageCageDetails::getTemperingLayoutId,minTemperingLayoutId.getTemperingLayoutId()+poor) |
| | | .orderByAsc(EdgStorageCageDetails::getTemperingLayoutId,EdgStorageCageDetails::getTemperingFeedSequence) |
| | | ); |
| | | } |
| | | |
| | | if (result==null){ |
| | | result=edgStorageCageMapper.selectJoinOne(EdgStorageCageDetails.class,new MPJLambdaWrapper<EdgStorageCage>() |
| | | .selectAll(EdgStorageCageDetails.class) |
| | | .leftJoin(EdgStorageCageDetails.class,on->on |
| | | .eq(EdgStorageCageDetails::getDeviceId,EdgStorageCage::getDeviceId) |
| | | .eq(EdgStorageCageDetails::getSlot,EdgStorageCage::getSlot)) |
| | | .isNotNull(EdgStorageCageDetails::getSlot) |
| | | .orderByAsc(EdgStorageCageDetails::getTemperingLayoutId,EdgStorageCageDetails::getTemperingFeedSequence) |
| | | ); |
| | | } |
| | | return result; |
| | | } |
| | | |
| | | /** |
| | | * 查询笼内版图差值范围内的 此尺寸玻璃 如无则按照 钢化版图序号 以及玻璃序号 |
| | | * |
| | | * @param glassId |
| | | * @param poor |
| | | * @return |
| | | */ |
| | | @Override |
| | | public EdgStorageCageDetails selectConformGlass(String glassId, int poor) { |
| | | //1.去笼内查询此尺寸的玻璃 目前版图差值内的玻璃 是否有同尺寸的 |
| | | //1.1 有同尺寸的 则生成同尺寸的任务 |
| | | //1.2 无同尺寸的 则生成版图顺序最小的出片 |
| | | log.info("按照玻璃id:{}获取玻璃信息", glassId); |
| | | public EdgStorageCageDetails selectOutGlass(String glassId, int poor) { |
| | | EdgStorageCageDetails oldEdgStorageCageDetails = null; |
| | | if (StringUtils.isNotEmpty(glassId)) { |
| | | oldEdgStorageCageDetails = baseMapper.selectOne(new MPJLambdaQueryWrapper<EdgStorageCageDetails>() |
| | | .selectAll(EdgStorageCageDetails.class) |
| | | .eq(EdgStorageCageDetails::getGlassId, glassId)); |
| | | } |
| | | log.info("按照玻璃id:{}获取玻璃信息{}", glassId, oldEdgStorageCageDetails); |
| | | |
| | | LambdaQueryWrapper<TaskCache> wrapper = new LambdaQueryWrapper<TaskCache>().select(TaskCache::getGlassId).eq(TaskCache::getTaskType, "2"); |
| | | List<TaskCache> taskCacheList = taskCacheService.list(wrapper); |
| | | List<String> glassIds = taskCacheList.stream().map(TaskCache::getGlassId).collect(Collectors.toList()); |
| | | log.info("获取笼内所有已出片的玻璃id信息:{}", glassIds); |
| | | |
| | | //获取笼内最小版图id及版序为最小的玻璃信息(玻璃id不在任务表中的出片记录中) |
| | | EdgStorageCageDetails minTemperingLayoutId = baseMapper.selectOne(new LambdaQueryWrapper<EdgStorageCageDetails>() |
| | | .eq(EdgStorageCageDetails::getState, 100) |
| | | .notIn(CollectionUtils.isNotEmpty(glassIds), EdgStorageCageDetails::getGlassId, glassIds) |
| | |
| | | minTemperingLayoutId.getTemperingFeedSequence(), minTemperingLayoutId); |
| | | |
| | | EdgStorageCageDetails outEdgStorageCageDetails = null; |
| | | |
| | | //todo:获取笼子内最大版图id和最小版图id插值,判断是否大于阈值,大于阈值直接出最小版图玻璃 |
| | | //todo:逻辑1:获取两条线已出最后一块玻璃在笼内相同尺寸所剩数量,优先走数量少的线 |
| | | //todo:逻辑2:优先走空闲的线 |
| | | //todo:需要在卧式理片笼详情表中新增状态,用来表示玻璃进出理片笼情况 |
| | | if (oldEdgStorageCageDetails != null && minTemperingLayoutId != null) { |
| | | log.info("按照上一片已出玻璃宽度{},高度{},及版图id区间{}到{}获取出片任务玻璃信息", oldEdgStorageCageDetails.getWidth() |
| | | , oldEdgStorageCageDetails.getHeight(), minTemperingLayoutId.getTemperingLayoutId(), minTemperingLayoutId.getTemperingLayoutId() + poor); |
| | | outEdgStorageCageDetails = edgStorageCageMapper.selectJoinOne(EdgStorageCageDetails.class, new MPJLambdaWrapper<EdgStorageCage>() |
| | | .selectAll(EdgStorageCageDetails.class) |
| | | .leftJoin(EdgStorageCageDetails.class, on -> on |
| | | .eq(EdgStorageCageDetails::getDeviceId, EdgStorageCage::getDeviceId) |
| | | .eq(EdgStorageCageDetails::getSlot, EdgStorageCage::getSlot)) |
| | | .isNotNull(EdgStorageCageDetails::getSlot) |
| | | outEdgStorageCageDetails = this.getOne(new LambdaQueryWrapper<EdgStorageCageDetails>() |
| | | .notIn(CollectionUtils.isNotEmpty(glassIds), EdgStorageCageDetails::getGlassId, glassIds) |
| | | .eq(EdgStorageCageDetails::getWidth, oldEdgStorageCageDetails.getWidth()) |
| | | .eq(EdgStorageCageDetails::getHeight, oldEdgStorageCageDetails.getHeight()) |
| | | .ge(EdgStorageCageDetails::getTemperingLayoutId, minTemperingLayoutId.getTemperingLayoutId()) |
| | | .le(EdgStorageCageDetails::getTemperingLayoutId, minTemperingLayoutId.getTemperingLayoutId() + poor) |
| | | .orderByAsc(EdgStorageCageDetails::getTemperingLayoutId, EdgStorageCageDetails::getTemperingFeedSequence) |
| | | .last("limit 1") |
| | | ); |
| | | .last("limit 1")); |
| | | log.info("出片任务的玻璃信息:{}", outEdgStorageCageDetails); |
| | | } |
| | | |
| | | if (outEdgStorageCageDetails == null) { |
| | | outEdgStorageCageDetails = minTemperingLayoutId; |
| | | // outEdgStorageCageDetails = edgStorageCageMapper.selectJoinOne(EdgStorageCageDetails.class, new MPJLambdaWrapper<EdgStorageCage>() |
| | | // .selectAll(EdgStorageCageDetails.class) |
| | | // .leftJoin(EdgStorageCageDetails.class, on -> on |
| | | // .eq(EdgStorageCageDetails::getDeviceId, EdgStorageCage::getDeviceId) |
| | | // .eq(EdgStorageCageDetails::getSlot, EdgStorageCage::getSlot)) |
| | | // .isNotNull(EdgStorageCageDetails::getSlot) |
| | | // .orderByAsc(EdgStorageCageDetails::getTemperingLayoutId, EdgStorageCageDetails::getTemperingFeedSequence) |
| | | // .last("limit 1") |
| | | // ); |
| | | } |
| | | return outEdgStorageCageDetails; |
| | | } |
| | |
| | | import com.github.yulichang.base.MPJBaseServiceImpl; |
| | | import com.github.yulichang.toolkit.JoinWrappers; |
| | | import com.github.yulichang.wrapper.MPJLambdaWrapper; |
| | | import com.mes.common.config.Const; |
| | | import com.mes.edgstoragecage.entity.EdgStorageCage; |
| | | import com.mes.edgstoragecage.entity.EdgStorageCageDetails; |
| | | import com.mes.edgstoragecage.mapper.EdgStorageCageDetailsMapper; |
| | |
| | | @Autowired |
| | | UpPattenUsageMapper upPattenUsageMapper; |
| | | |
| | | @Override |
| | | public EdgStorageCage selectNearestEmpty(int currentSlot) { |
| | | return this.selectJoinOne(EdgStorageCage.class,new MPJLambdaWrapper<EdgStorageCage>() |
| | | .selectAll(EdgStorageCage.class) |
| | | .leftJoin(EdgStorageCageDetails.class,on->on |
| | | .eq(EdgStorageCageDetails::getSlot,EdgStorageCage::getSlot) |
| | | .eq(EdgStorageCageDetails::getState, Const.GLASS_STATE_IN)) |
| | | .isNull(EdgStorageCageDetails::getSlot) |
| | | .last("order by abs(slot - 4) asc limit 1") |
| | | ); |
| | | } |
| | | |
| | | /** |
| | | * 查询笼内空格 |
| | | * @return |
| | |
| | | .eq(EdgStorageCageDetails::getSlot,EdgStorageCage::getSlot) |
| | | .eq(EdgStorageCageDetails::getState,"100")) |
| | | .isNull(EdgStorageCageDetails::getSlot) |
| | | .last("order by abs(slot - 4) asc") |
| | | ); |
| | | } |
| | | |
| | |
| | | @Value("${mes.threshold}") |
| | | private int threshold; |
| | | |
| | | @Scheduled(fixedDelay = 10000) |
| | | @Scheduled(fixedDelay = 1000) |
| | | public void plcHomeEdgTask() { |
| | | PlcParameterObject plcParameterObject = S7object.getinstance().PlcMesObject; |
| | | |
| | | String taskRequestTypeValue = plcParameterObject.getPlcParameter("A06_request_word").getValue(); |
| | | String glassIdeValue = plcParameterObject.getPlcParameter("A05_scanning_ID").getValue(); |
| | | String confirmationWrodValue = plcParameterObject.getPlcParameter("MES_confirmation_word").getValue(); |
| | | // 1为A09空闲,2为A10空闲,3为A09A10都空闲,0为A09A10都有玻璃 |
| | | String outGlassstate = plcParameterObject.getPlcParameter("A09_glass_status").getValue(); |
| | | |
| | | String confirmationWrodAddress = plcParameterObject.getPlcParameter("MES_confirmation_word").getAddress(); |
| | | String currentSlot = plcParameterObject.getPlcParameter("Current_slot").getValue(); |
| | | log.info("1、获取到的请求字为:{},获取到的扫描ID为:{},获取到的确认字为:{},获取到的出片状态为:{},当前格子号为:{}", |
| | | taskRequestTypeValue, glassIdeValue, confirmationWrodValue, outGlassstate, currentSlot); |
| | | |
| | | if ("0".equals(taskRequestTypeValue)) { |
| | | log.info("1、获取到的请求字为0,将确认字改为0"); |
| | | if ("0".equals(confirmationWrodValue)) { |
| | | log.info("2、获取到的请求字为0,且确认字为0,不执行任务"); |
| | | return; |
| | | } |
| | | log.info("2、获取到的请求字为0,将确认字改为0"); |
| | | S7object.getinstance().plccontrol.WriteWord(confirmationWrodAddress, (short) 0); |
| | | return; |
| | | } |
| | | if (!"0".equals(confirmationWrodValue)) { |
| | | log.info("1、获取到的请求字不为0,将确认字改为0"); |
| | | log.info("2、获取到的请求字不为0,将确认字改为0"); |
| | | S7object.getinstance().plccontrol.WriteWord(confirmationWrodAddress, (short) 0); |
| | | return; |
| | | } |
| | | |
| | | if ("1".equals(taskRequestTypeValue)) { |
| | | log.info("2、进片请求,且确认字为0,执行进片任务"); |
| | | inTo(glassIdeValue, confirmationWrodAddress); |
| | | log.info("3、进片请求,且确认字为0,执行进片任务"); |
| | | inTo(glassIdeValue, confirmationWrodAddress, currentSlot); |
| | | } else if ("2".equals(taskRequestTypeValue)) { |
| | | //09空闲 :1 10空闲 :2 都空闲:3 其他0 |
| | | log.info("2、出片请求,且确认字为0,执行进片任务"); |
| | | outTo(Integer.parseInt(outGlassstate), confirmationWrodAddress); |
| | | log.info("3、出片请求,且确认字为0,执行进片任务"); |
| | | outTo(Integer.parseInt(outGlassstate), confirmationWrodAddress, currentSlot); |
| | | } else if ("3".equals(taskRequestTypeValue)) { |
| | | log.info("2、进片和出片都空闲,执行出片任务"); |
| | | log.info("3、进片和出片都空闲,执行出片任务"); |
| | | if ("0".equals(outGlassstate)) { |
| | | inTo(glassIdeValue, confirmationWrodAddress); |
| | | inTo(glassIdeValue, confirmationWrodAddress, currentSlot); |
| | | } else { |
| | | outTo(Integer.parseInt(outGlassstate), confirmationWrodAddress); |
| | | outTo(Integer.parseInt(outGlassstate), confirmationWrodAddress, currentSlot); |
| | | } |
| | | } |
| | | } |
| | | |
| | | private void inTo(String glassId, String confirmationWrodAddress) { |
| | | log.info("1、按照玻璃id:{}获取玻璃小片信息", glassId); |
| | | /** |
| | | * 进片任务 |
| | | * @param glassId |
| | | * @param confirmationWrodAddress |
| | | * @param currentSlot |
| | | */ |
| | | private void inTo(String glassId, String confirmationWrodAddress, String currentSlot) { |
| | | log.info("1、按照玻璃id:{}获取玻璃小片信息,当前格子为:{}", glassId, currentSlot); |
| | | GlassInfo glassInfo = glassInfoService.getOne(new LambdaQueryWrapper<GlassInfo>().eq(GlassInfo::getGlassId, glassId)); |
| | | if (glassInfo == null) { |
| | | log.info("2、此玻璃编号不存在"); |
| | |
| | | } |
| | | log.info("2、获取到的玻璃信息为{}", glassInfo); |
| | | //添加进片任务 查找空格 |
| | | List<EdgStorageCage> list = edgStorageCageService.selectCacheEmpty(); |
| | | log.info("3、查询卧式理片笼里面的空格:{}", list); |
| | | if (CollectionUtil.isEmpty(list)) { |
| | | log.info("4、不存在空格"); |
| | | return; |
| | | } |
| | | log.info("4、将玻璃信息插入卧式理片笼:{}", glassInfo); |
| | | EdgStorageCage nearestEmpty = edgStorageCageService.selectNearestEmpty(Integer.parseInt(currentSlot)); |
| | | Assert.isTrue(nearestEmpty == null, "格子已满"); |
| | | log.info("3、查询卧式理片笼里面的空格:{}", nearestEmpty); |
| | | |
| | | log.info("4、将玻璃信息插入卧式理片笼,当前玻璃信息:{}", glassInfo); |
| | | EdgStorageCageDetails details = new EdgStorageCageDetails(); |
| | | BeanUtils.copyProperties(glassInfo, details); |
| | | details.setState(100); |
| | | Integer slot = list.get(0).getSlot(); |
| | | Integer deviceId = list.get(0).getDeviceId(); |
| | | log.info("5、获取空闲格子为:{},设备号为{}", slot, deviceId); |
| | | details.setSlot(slot); |
| | | details.setDeviceId(deviceId); |
| | | details.setState(Const.GLASS_STATE_IN); |
| | | details.setSlot(nearestEmpty.getSlot()); |
| | | details.setDeviceId(nearestEmpty.getDeviceId()); |
| | | edgStorageCageDetailsService.save(details); |
| | | log.info("5、玻璃信息已存入理片笼详情表,玻璃信息为{}", details); |
| | | |
| | | log.info("6、生成进片任务信息存入任务表"); |
| | | //添加进片任务 |
| | | TaskCache taskCache = new TaskCache(); |
| | | taskCache.setGlassId(glassId); |
| | | taskCache.setTaskStatus(0); |
| | | taskCache.setStartCell(0); |
| | | taskCache.setEndCell(slot); |
| | | taskCache.setEndCell(nearestEmpty.getSlot()); |
| | | taskCache.setTaskType(1); |
| | | taskCache.setCreateTime(new Date()); |
| | | taskCacheService.insertTaskCache(taskCache); |
| | | log.info("6、发送确认字"); |
| | | log.info("6、生成进片任务信息存入任务表{}", taskCache); |
| | | |
| | | S7object.getinstance().plccontrol.WriteWord(confirmationWrodAddress, (short) 1); |
| | | log.info("7、发送确认字完成"); |
| | | |
| | | |
| | | } |
| | | |
| | | private void outTo(int line, String confirmationWrodAddress) { |
| | | /** |
| | | * 出片任务 |
| | | * @param line |
| | | * @param confirmationWrodAddress |
| | | * @param currentSlot |
| | | */ |
| | | private void outTo(int line, String confirmationWrodAddress, String currentSlot) { |
| | | Assert.isTrue(line != 0, "A09、A10都有玻璃,无法出片"); |
| | | log.info("1、出片任务出【{}】号线,备注(09空闲:1;10空闲:2;都空闲:3)", line); |
| | | int endcell = 0; |
| | | |
| | | List<TaskCache> oldTaskCacheList; |
| | | log.info("2、判断出片线路,获取最后该条线已出片的任务信息(备注:0待执行,1已执行),都空闲优先出A09线"); |
| | | if (line == 2) { |
| | | endcell = 2002; |
| | | endcell = Const.A10_OUT_TARGET_POSITION; |
| | | oldTaskCacheList = taskCacheService.selectLastOutCacheInfos(Const.A10_OUT_TARGET_POSITION); |
| | | } else { |
| | | endcell = 2001; |
| | | endcell = Const.A09_OUT_TARGET_POSITION; |
| | | oldTaskCacheList = taskCacheService.selectLastOutCacheInfos(Const.A09_OUT_TARGET_POSITION); |
| | | } |
| | | log.info("2、判断出片线路{},获取最后该条线已出片的任务信息{}(备注:0待执行,1已执行).都空闲优先出A09线", endcell, oldTaskCacheList); |
| | | |
| | | String glassId = ""; |
| | | if (CollectionUtil.isNotEmpty(oldTaskCacheList)) { |
| | | glassId = oldTaskCacheList.get(0).getGlassId(); |
| | | } |
| | | log.info("3、按照历史已出玻璃id{}和阈值{},拿出理片笼内的出片信息", glassId, threshold); |
| | | EdgStorageCageDetails glassInfo = edgStorageCageDetailsService.selectConformGlass(glassId, threshold); |
| | | EdgStorageCageDetails glassInfo = edgStorageCageDetailsService.selectOutGlass(glassId, threshold); |
| | | log.info("3、按照历史已出玻璃id{}和阈值{},拿出理片笼内的出片信息{}", glassId, threshold, glassInfo); |
| | | |
| | | if (glassInfo != null) { |
| | | log.info("4、添加出片任务,玻璃id:{},任务类型:{},起始位置:{},结束位置:{}", glassInfo.getGlassId(), |
| | |
| | | package com.mes.taskcache.service; |
| | | |
| | | import com.baomidou.mybatisplus.extension.service.IService; |
| | | import com.mes.edgstoragecage.entity.EdgStorageCageDetails; |
| | | import com.mes.glassinfo.entity.GlassInfo; |
| | | import com.mes.taskcache.entity.TaskCache; |
| | | |
| | | import java.util.List; |
| | |
| | | * @param line |
| | | * @return |
| | | */ |
| | | List<TaskCache> selectLastOutCacheInfos(String line); |
| | | List<TaskCache> selectLastOutCacheInfos(int line); |
| | | |
| | | /** |
| | | * 查询 A09 或 A10 最新的一片 出片任务 |
| | |
| | | * @return |
| | | */ |
| | | @Override |
| | | public List<TaskCache> selectLastOutCacheInfos(String line){ |
| | | public List<TaskCache> selectLastOutCacheInfos(int line){ |
| | | return baseMapper.selectList(new MPJLambdaWrapper<TaskCache>().selectAll(TaskCache.class).eq(TaskCache::getEndCell,line).eq(TaskCache::getTaskStatus,1).orderByDesc(TaskCache::getCreateTime)); |
| | | // return baseMapper.selectList(new QueryWrapper<TaskCache>().eq("end_cell",line).eq("task_status",1).orderByDesc("ID")); |
| | | } |
| | |
| | | "unit":"" |
| | | }, |
| | | { |
| | | "codeId": "Current_slot", |
| | | "addressIndex":"36", |
| | | "addressLenght":"2", |
| | | "ratio":"1", |
| | | "unit":"" |
| | | }, |
| | | { |
| | | "codeId": "MES_confirmation_word", |
| | | "addressIndex":"38", |
| | | "addressLenght":"2", |
| | |
| | | import java.util.ArrayList; |
| | | import java.util.List; |
| | | |
| | | import static com.mes.tools.InitUtil.readAndUpdateWordValues; |
| | | //import static com.mes.tools.InitUtil.readAndUpdateWordValues; |
| | | |
| | | public class PLCAutoMes extends Thread { |
| | | |
| | |
| | | // System.out.println(jsonFilePath); |
| | | |
| | | // readAndUpdateWordValues(PlcReadObject); |
| | | readAndUpdateWordValues(PlcMesObject); |
| | | //readAndUpdateWordValues(PlcMesObject); |
| | | |
| | | List<String> addresses = new ArrayList<>(); |
| | | addresses.add("FeedID"); |
| | |
| | | private DownWorkstationService downWorkstationService; |
| | | |
| | | |
| | | @Scheduled(fixedDelay = 300) |
| | | @Scheduled(fixedDelay = 300) |
| | | public void PlcdownglassTask() throws InterruptedException { |
| | | JSONObject jsonObject = new JSONObject(); |
| | | try { |
| | |
| | | |
| | | // String result = S7control.getinstance().ReadWord("DB14.0", 1).get(0) + ""; |
| | | // String number = S7control.getinstance().ReadWord("DB14.2", 1).get(0) + ""; |
| | | String result = "2"; |
| | | String number = "1"; |
| | | String result = "3"; |
| | | String number = "4"; |
| | | // 进片请求 |
| | | if (RESULT_IN.equals(result)) { |
| | | downStorageCageService.processInto(number); |
| | |
| | | // 进出片请求 |
| | | else if (RESULT_IN_OUT.equals(result)) { |
| | | // 先出后进 |
| | | if (!downStorageCageService.processOut()) { |
| | | if (downStorageCageService.processOut()) { |
| | | //下片更新 |
| | | downWorkstationService.insertdownglassinfo(); |
| | | // 执行进片操作 |
| | | downStorageCageService.processInto(number); |
| | | } else { |
| | | // 如果 processOut() 返回 false,可以在这里处理其他逻辑 |
| | | log.info("出片请求失败,无法执行进片操作"); |
| | | } |
| | | |
| | | } |
| | | |
| | | //下片更新 |
| | | downWorkstationService.insertdownglassinfo(); |
| | | |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | } |
| | |
| | | |
| | | import lombok.Data; |
| | | import lombok.EqualsAndHashCode; |
| | | import org.springframework.data.annotation.Id; |
| | | import org.springframework.stereotype.Component; |
| | | |
| | | |
| | | import java.io.Serializable; |
| | | |
| | |
| | | /** |
| | | * 下片玻璃信息表id |
| | | */ |
| | | |
| | | private Long id; |
| | | |
| | | /** |
| | |
| | | */ |
| | | private Double thickness; |
| | | |
| | | |
| | | /** |
| | | * 膜系 |
| | | */ |
| | | private String Filmsid; |
| | | |
| | | /** |
| | | * 玻璃id |
| | | */ |
| | | private String glassId; |
| | | |
| | | |
| | | } |
| | |
| | | * |
| | | * @return |
| | | */ |
| | | void updateTaskStateToZero(long id); |
| | | void updateTaskStateToZero(String id); |
| | | |
| | | /** |
| | | * 删除任务 |
| | |
| | | import com.mes.downworkstation.service.DownWorkstationService; |
| | | import com.mes.downworkstation.service.DownWorkstationTaskService; |
| | | import com.mes.tools.WebSocketServer; |
| | | import org.springframework.beans.BeanUtils; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | import java.util.List; |
| | |
| | | |
| | | @Override |
| | | public void insertDownGlassInfo(DownGlassInfo downGlassInfo) { |
| | | |
| | | |
| | | |
| | | baseMapper.insert(downGlassInfo); |
| | | } |
| | | |
| | |
| | | } |
| | | |
| | | @Override |
| | | public void updateTaskStateToZero(long id) { |
| | | public void updateTaskStateToZero(String id) { |
| | | UpdateWrapper<DownGlassTask> updateWrapper = new UpdateWrapper<>(); |
| | | updateWrapper.set("task_stauts", 0).eq("id", id); |
| | | baseMapper.update(new DownGlassTask(), updateWrapper); |
| | |
| | | @Override |
| | | public void deleteTask(String id) { |
| | | LambdaQueryWrapper<DownGlassTask> queryWrapper = new LambdaQueryWrapper<>(); |
| | | queryWrapper.eq(DownGlassTask::getFlowCardId, id); |
| | | queryWrapper.eq(DownGlassTask::getGlassId, id); |
| | | |
| | | baseMapper.delete(queryWrapper); |
| | | } |
| | |
| | | package com.mes.downstorage.controller; |
| | | |
| | | import com.mes.downstorage.entity.DownStorageCage; |
| | | import com.mes.downstorage.entity.DownStorageCageDetails; |
| | | import com.mes.downstorage.service.DownStorageCageDetailsService; |
| | | import com.mes.downstorage.service.DownStorageCageService; |
| | |
| | | @ApiOperation("查询缓存理片笼内详情") |
| | | @GetMapping("/selectStorageCage") |
| | | @ResponseBody |
| | | public Result selectEdgStorageCage () { |
| | | List<Map> list=downStorageCageDetailsService.getCacheInfo(); |
| | | public Result selectDownStorageCage () { |
| | | List<Map<String, Object>> list=downStorageCageService.selectDownStorageCages(); |
| | | return Result.build(200,"成功",list); |
| | | } |
| | | |
| | | |
| | | // |
| | | // @ApiOperation("添加缓存理片笼信息 功能:笼内绑定玻璃 参数(DownStorageCageDetails downStorageCageDetails)") |
| | | // @PostMapping("/insertEdgStorageCage") |
| | | // @ResponseBody |
| | | // public Result insertEdgStorageCage(@RequestBody DownStorageCageDetails downStorageCageDetails) { |
| | | // boolean isSucess=downStorageCageService.updatedownStorageCageDetails(downStorageCageDetails); |
| | | // return Result.build(200,"添加成功",1); |
| | | // } |
| | | |
| | | @ApiOperation("添加缓存理片笼信息 功能:笼内绑定玻璃 参数(DownStorageCageDetails downStorageCageDetails)") |
| | | @PostMapping("/insertEdgStorageCage") |
| | | @ResponseBody |
| | | public Result insertEdgStorageCage(@RequestBody DownStorageCageDetails downStorageCageDetails) { |
| | | boolean isSucess=downStorageCageDetailsService.updatedownStorageCageDetails(downStorageCageDetails); |
| | | return Result.build(200,"添加成功",1); |
| | | } |
| | | |
| | | |
| | | @ApiOperation("修改缓存理片笼信息 功能:对笼内栅格进行【启用/禁用】/ 【更换】笼内栅格玻璃信息") |
| | | @PostMapping("/updateEdgStorageCage") |
| | | @PostMapping("/updateDownStorageCage") |
| | | @ResponseBody |
| | | public Result updateEdgStorageCage(@RequestBody DownStorageCageDetails downStorageCageDetails) { |
| | | boolean isSucess=downStorageCageDetailsService.updatedownStorageCageDetails(downStorageCageDetails); |
| | | public Result updateDownStorageCage(@RequestBody DownStorageCage downStorageCage) { |
| | | boolean isSucess=downStorageCageService.updateDownStorageCage(downStorageCage); |
| | | return Result.build(200,"更换成功",1); |
| | | } |
| | | @ApiOperation("删除缓存理片笼信息 功能:对笼内栅格玻璃进行【清除】") |
| | | @PostMapping("/deleteEdgStorageCage") |
| | | @PostMapping("/deleteDownStorageCage") |
| | | @ResponseBody |
| | | public Result deleteEdgStorageCage(@RequestBody DownStorageCageDetails downStorageCageDetails) { |
| | | boolean isSucess=downStorageCageDetailsService.updatedownStorageCageDetails(downStorageCageDetails); |
| | | public Result deleteDownStorageCage(@RequestBody DownStorageCageDetails downStorageCageDetails,int downStorageCageId) { |
| | | boolean isSucess=downStorageCageService.updateDownStorageCageDetails(downStorageCageId,downStorageCageDetails); |
| | | return Result.build(200,"删除成功",1); |
| | | } |
| | | |
| | |
| | | package com.mes.downstorage.service; |
| | | |
| | | import com.mes.downstorage.entity.DownStorageCageDetails; |
| | | import com.mes.glassinfo.entity.GlassInfo; |
| | | |
| | | import java.util.List; |
| | | import java.util.Map; |
| | |
| | | */ |
| | | boolean updatedownStorageCageDetails(DownStorageCageDetails details); |
| | | |
| | | List<DownStorageCageDetails> getCacheLeisure(); |
| | | // List<DownStorageCageDetails> getCacheLeisure(); |
| | | |
| | | /** |
| | | * @param start |
| | | * @param end |
| | | * @return 根据传入的工位查询符合按照顺序和大小出片的小片 |
| | | */ |
| | | List<DownStorageCageDetails> getCacheOut(int start, int end); |
| | | // List<DownStorageCageDetails> getCacheOut(int start, int end); |
| | | |
| | | /** |
| | | * @return 查询笼子内信息 |
| | | */ |
| | | List<Map> getCacheInfo(); |
| | | List<Map<String, Object>> getCacheInfo(); |
| | | |
| | | |
| | | /** |
| | |
| | | * @param width |
| | | * @return 查询可进此片玻璃的栅格号 找到空格 |
| | | */ |
| | | List<DownStorageCageDetails> getIsExistIntoCacheByflowcardid(String flowcardid, double width); |
| | | // List<DownStorageCageDetails> getIsExistIntoCacheByflowcardid(String flowcardid, double width); |
| | | |
| | | /** |
| | | * @param start |
| | |
| | | /** |
| | | * @return 查询空格子 |
| | | */ |
| | | List<DownStorageCageDetails> selectCacheEmpty2(); |
| | | // List<DownStorageCageDetails> selectCacheEmpty2(); |
| | | |
| | | } |
| | |
| | | * @return 出片 |
| | | */ |
| | | boolean processOut(); |
| | | |
| | | |
| | | /** |
| | | * @return 找到空格子 |
| | | */ |
| | | List<DownStorageCageDetails> selectCacheEmpty() ; |
| | | |
| | | /** |
| | | * @param downStorageCage |
| | | * @return 修改理片笼信息 功能:对笼内栅格玻璃 【启用/禁用】 |
| | | */ |
| | | boolean updateDownStorageCage(DownStorageCage downStorageCage); |
| | | |
| | | /** |
| | | /** |
| | | *修改理片笼信息 功能:对笼内栅格玻璃 【添加/删除/更换】 |
| | | */ |
| | | boolean updateDownStorageCageDetails(int downStorageCageId,DownStorageCageDetails downStorageCageDetails); |
| | | |
| | | /** |
| | | * @return 查询笼子信息 |
| | | */ |
| | | List<Map<String, Object>> selectDownStorageCages(); |
| | | |
| | | } |
| | | |
| | | |
| | |
| | | package com.mes.downstorage.service.impl; |
| | | |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | import com.github.yulichang.query.MPJQueryWrapper; |
| | | |
| | | |
| | |
| | | |
| | | import com.mes.downstorage.mapper.DownStorageCageMapper; |
| | | import com.mes.downstorage.service.DownStorageCageDetailsService; |
| | | import com.mes.glassinfo.entity.GlassInfo; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | import javax.annotation.Resource; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | @Slf4j |
| | | @Service |
| | | public class DownStorageCageDetailsServiceImpl extends ServiceImpl<DownStorageCageDetailsMapper, DownStorageCageDetails> implements DownStorageCageDetailsService { |
| | | |
| | | @Autowired |
| | | @Autowired(required=false) |
| | | private DownStorageCageMapper downStorageCageMapper; |
| | | @Autowired |
| | | private DownStorageCageDetailsMapper downStorageCageDetailsMapper; |
| | | |
| | | @Override |
| | | public void addDownStorageCageDetails(DownStorageCageDetails details) { |
| | | this.save(details); |
| | |
| | | |
| | | |
| | | |
| | | @Override |
| | | public List<DownStorageCageDetails> getCacheOut(int start, int end) { |
| | | log.info("根据传入的工位查询符合按照顺序和大小出片的小片"); |
| | | return downStorageCageMapper.selectJoinList( |
| | | DownStorageCageDetails.class, new MPJQueryWrapper<DownStorageCage>() |
| | | .select("escd.*") |
| | | .leftJoin("down_storage_cage_details escd on t.slot = escd.slot") |
| | | .leftJoin("down_workstation dw on escd.flow_card_id = dw.flow_card_id") |
| | | .leftJoin("glass_info gi on dw.flow_card_id = gi.flowcard_id and gi.flowcard_id=escd.flow_card_id ") |
| | | .isNotNull("escd.slot") |
| | | .between("dw.workstation_id", start, end) |
| | | .orderByDesc("escd.width") |
| | | .orderByDesc("escd.height") |
| | | ); |
| | | } |
| | | |
| | | |
| | | // @Override |
| | | // public List<DownStorageCageDetails> getCacheOut(int start, int end) { |
| | | // log.info("根据传入的工位查询符合按照顺序和大小出片的小片"); |
| | | // return downStorageCageMapper.selectJoinList( |
| | | // DownStorageCageDetails.class, new MPJQueryWrapper<DownStorageCage>() |
| | | // .select("escd.*") |
| | | // .leftJoin("down_storage_cage_details escd on t.slot = escd.slot") |
| | | // .leftJoin("down_workstation dw on escd.flow_card_id = dw.flow_card_id") |
| | | // .leftJoin("glass_info gi on dw.flow_card_id = gi.flowcard_id and gi.flowcard_id=escd.flow_card_id ") |
| | | // .isNotNull("escd.slot") |
| | | // .between("dw.workstation_id", start, end) |
| | | // .orderByDesc("escd.width") |
| | | // .orderByDesc("escd.height") |
| | | // ); |
| | | // } |
| | | |
| | | |
| | | // @Override |
| | | // public List<DownStorageCageDetails> selectCacheEmpty2(){ |
| | | // return downStorageCageMapper.selectJoinList( |
| | | // DownStorageCageDetails.class, new MPJQueryWrapper<DownStorageCage>() |
| | | // .select("escd.glass_id","escd.flow_card_id","escd.width","escd.height") |
| | | // .leftJoin("down_storage_cage_details escd on t.device_id=escd.device_id and t.slot=escd.slot") |
| | | // .isNull("escd.slot") |
| | | // ); |
| | | // } |
| | | |
| | | |
| | | @Override |
| | | public List<DownStorageCageDetails> selectCacheEmpty2(){ |
| | | return downStorageCageMapper.selectJoinList( |
| | | DownStorageCageDetails.class, new MPJQueryWrapper<DownStorageCage>() |
| | | .select("escd.glass_id","escd.flow_card_id","escd.width","escd.height") |
| | | .leftJoin("down_storage_cage_details escd on t.device_id=escd.device_id and t.slot=escd.slot") |
| | | .isNull("escd.slot") |
| | | public List<Map<String, Object>> getCacheInfo() { |
| | | log.info("查询笼子内信息"); |
| | | return downStorageCageDetailsMapper.selectJoinMaps(JoinWrappers.lambda(DownStorageCageDetails.class) // 使用 JoinWrappers.lambda 创建联合查询 |
| | | .selectAll(DownStorageCageDetails.class) // 选择所有字段 |
| | | .eq(DownStorageCage::getSlot, DownStorageCageDetails::getSlot) // 设置关联条件 |
| | | .orderByAsc(DownStorageCage::getSlot) // 按 slot 字段升序排序 |
| | | ); |
| | | } |
| | | |
| | | // |
| | | // @Override |
| | | // public List<Map> getCacheInfo() { |
| | | // log.info(" 查询笼子内信息"); |
| | | // return downStorageCageMapper.selectJoinList( |
| | | // Map.class, new MPJQueryWrapper<DownStorageCage>() |
| | | // .select("escd.*") |
| | | // .leftJoin("down_storage_cage_details escd on t.slot = escd.slot") |
| | | // .orderByAsc("t.slot") |
| | | // ); |
| | | // |
| | | // } |
| | | |
| | | @Override |
| | | public List<Map> getCacheInfo() { |
| | | log.info(" 查询笼子内信息"); |
| | | return downStorageCageMapper.selectJoinList( |
| | | Map.class, new MPJQueryWrapper<DownStorageCage>() |
| | | .select("escd.*") |
| | | .leftJoin("down_storage_cage_details escd on t.slot = escd.slot") |
| | | .orderByAsc("t.slot") |
| | | ); |
| | | |
| | | } |
| | | // @Override |
| | | // public List<DownStorageCageDetails> getCacheLeisure() { |
| | | // log.info(" 查询笼子内空闲"); |
| | | // List<DownStorageCageDetails> list = downStorageCageMapper.selectJoinList( |
| | | // DownStorageCageDetails.class, new MPJQueryWrapper<DownStorageCage>() |
| | | // .select("escd.*") |
| | | // .leftJoin("down_storage_cage_details escd on t.slot = escd.slot") |
| | | // .isNull("escd.slot") |
| | | // |
| | | // .orderByAsc("escd.slot") |
| | | // ); |
| | | // return list; |
| | | // } |
| | | |
| | | |
| | | |
| | | @Override |
| | | public List<DownStorageCageDetails> getCacheLeisure() { |
| | | log.info(" 查询笼子内空闲"); |
| | | List<DownStorageCageDetails> list = downStorageCageMapper.selectJoinList( |
| | | DownStorageCageDetails.class, new MPJQueryWrapper<DownStorageCage>() |
| | | .select("escd.*") |
| | | .leftJoin("down_storage_cage_details escd on t.slot = escd.slot") |
| | | .isNull("escd.slot") |
| | | |
| | | .orderByAsc("escd.slot") |
| | | ); |
| | | return list; |
| | | } |
| | | |
| | | |
| | | @Override |
| | | public List<DownStorageCageDetails> getIsExistIntoCacheByflowcardid(String flowcardid, double width) { |
| | | log.info(" 查询可进此片玻璃的栅格号 找到空格"); |
| | | |
| | | return downStorageCageMapper.selectJoinList( |
| | | DownStorageCageDetails.class, new MPJQueryWrapper<DownStorageCage>() |
| | | .select("escd.*") |
| | | .leftJoin("down_storage_cage_details escd on t.slot = escd.slot") |
| | | .isNull("escd.slot") |
| | | .apply("t.remain_width - " + width + " > 0") |
| | | .orderByAsc("escd.sequence") |
| | | ); |
| | | |
| | | |
| | | |
| | | |
| | | } |
| | | // @Override |
| | | // public List<DownStorageCageDetails> getIsExistIntoCacheByflowcardid(String flowcardid, double width) { |
| | | // log.info(" 查询可进此片玻璃的栅格号 找到空格"); |
| | | // |
| | | // return downStorageCageMapper.selectJoinList( |
| | | // DownStorageCageDetails.class, new MPJQueryWrapper<DownStorageCage>() |
| | | // .select("escd.*") |
| | | // .leftJoin("down_storage_cage_details escd on t.slot = escd.slot") |
| | | // .isNull("escd.slot") |
| | | // .apply("t.remain_width - " + width + " > 0") |
| | | // .orderByAsc("escd.sequence") |
| | | // ); |
| | | // |
| | | // |
| | | // |
| | | // |
| | | // } |
| | | |
| | | |
| | | |
| | |
| | | package com.mes.downstorage.service.impl; |
| | | |
| | | import com.github.yulichang.toolkit.JoinWrappers; |
| | | import com.github.yulichang.wrapper.MPJLambdaWrapper; |
| | | import com.mes.common.PLCAutoMes; |
| | | import com.mes.common.S7control; |
| | | import com.mes.device.PlcParameterObject; |
| | |
| | | import com.mes.downstorage.entity.DownStorageCage; |
| | | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
| | | import com.mes.downstorage.entity.DownStorageCageDetails; |
| | | import com.mes.downstorage.mapper.DownStorageCageDetailsMapper; |
| | | import com.mes.downstorage.mapper.DownStorageCageMapper; |
| | | import com.mes.downstorage.service.DownStorageCageDetailsService; |
| | | import com.mes.downstorage.service.DownStorageCageService; |
| | | import com.mes.glassinfo.entity.GlassInfo; |
| | | import com.mes.glassinfo.service.GlassInfoService; |
| | | import com.mes.pp.entity.OptimizeDetail; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.beans.BeanUtils; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | |
| | | @Slf4j |
| | | @Service |
| | | public class DownStorageCageServiceImpl extends ServiceImpl<DownStorageCageMapper, DownStorageCage> implements DownStorageCageService { |
| | | @Autowired |
| | | @Autowired(required=false) |
| | | private DownStorageCageMapper downStorageCageMapper; |
| | | |
| | | @Autowired |
| | |
| | | private DownGlassTaskService downGlassTaskService; |
| | | @Autowired |
| | | private DownStorageCageDetailsService downStorageCageDetailsService; |
| | | @Autowired |
| | | private DownStorageCageDetailsMapper downStorageCageDetailsMapper; |
| | | |
| | | |
| | | |
| | | |
| | |
| | | //同找到同流程卡附近空格 |
| | | List<DownStorageCageDetails> list = selectCacheEmpty(); |
| | | |
| | | |
| | | |
| | | // list<Map> list=selectCacheEmpty(); |
| | | // list<Map> = downStorageCageService.selectCacheEmpty(); |
| | | if (list.size() > 0) { |
| | | //存在空格 |
| | | //1.生成任务: 起始位置0 结束位置this.slot 任务类型 1 (进片任务) |
| | |
| | | // 查询任务 |
| | | |
| | | |
| | | PlcParameterObject plcmes = PLCAutoMes.PlcMesObject; |
| | | // PlcParameterObject plcmes = PLCAutoMes.PlcMesObject; |
| | | |
| | | List<DownStorageCageDetails> list = downStorageCageDetailsService.CacheOut(1, 5); |
| | | List<DownStorageCageDetails> list2 = downStorageCageDetailsService.CacheOut(6, 10); |
| | | List<DownStorageCageDetails> list3 = downStorageCageDetailsService.CacheOut(1, 10); |
| | | //自动绑定架子 |
| | | |
| | | |
| | | |
| | | |
| | |
| | | DownGlassTask downGlassTask =createDownGlassTask(item3,"0",endcell,"2"); |
| | | downGlassTaskService.insertCacheTask(downGlassTask); |
| | | |
| | | S7control.getinstance().writeString(plcmes.getPlcParameter("DB14.28").getAddress(), SendEndcell); |
| | | S7control.getinstance().writeString(plcmes.getPlcParameter("DB14.20").getAddress(), "1"); |
| | | //S7control.getinstance().writeString(plcmes.getPlcParameter("DB14.28").getAddress(), SendEndcell); |
| | | //S7control.getinstance().writeString(plcmes.getPlcParameter("DB14.20").getAddress(), "1"); |
| | | return true; |
| | | |
| | | } |
| | |
| | | |
| | | DownGlassTask downGlassTask =createDownGlassTask(item,"0","06","2"); |
| | | downGlassTaskService.insertCacheTask(downGlassTask); |
| | | S7control.getinstance().writeString(plcmes.getPlcParameter("DB14.28").getAddress(), "1"); |
| | | S7control.getinstance().writeString(plcmes.getPlcParameter("DB14.20").getAddress(), "1"); |
| | | // S7control.getinstance().writeString(plcmes.getPlcParameter("DB14.28").getAddress(), "1"); |
| | | // S7control.getinstance().writeString(plcmes.getPlcParameter("DB14.20").getAddress(), "1"); |
| | | return true; |
| | | |
| | | // 按照大小符合后端出片 |
| | |
| | | DownGlassTask downGlassTask =createDownGlassTask(item2,"0","11","2"); |
| | | downGlassTaskService.insertCacheTask(downGlassTask); |
| | | |
| | | S7control.getinstance().writeString(plcmes.getPlcParameter("DB14.28").getAddress(), "2"); |
| | | S7control.getinstance().writeString(plcmes.getPlcParameter("DB14.20").getAddress(), "1"); |
| | | // S7control.getinstance().writeString(plcmes.getPlcParameter("DB14.28").getAddress(), "2"); |
| | | // S7control.getinstance().writeString(plcmes.getPlcParameter("DB14.20").getAddress(), "1"); |
| | | return true; |
| | | |
| | | |
| | |
| | | return false; |
| | | } |
| | | |
| | | |
| | | //找到空格子 |
| | | @Override |
| | | public List<DownStorageCageDetails> selectCacheEmpty() { |
| | | return baseMapper.selectJoinList(DownStorageCageDetails.class, |
| | |
| | | ); |
| | | } |
| | | |
| | | |
| | | @Override |
| | | public List<Map<String, Object>> selectDownStorageCages() { |
| | | return baseMapper.selectJoinMaps(JoinWrappers.lambda(DownStorageCage.class) |
| | | .selectAll(DownStorageCage.class) |
| | | .selectAs(DownStorageCageDetails::getId, "esdId") |
| | | .select(DownStorageCageDetails::getGlassId, DownStorageCageDetails::getWidth, DownStorageCageDetails::getHeight, DownStorageCageDetails::getId) |
| | | .leftJoin(DownStorageCageDetails.class, on -> on |
| | | .eq(DownStorageCageDetails::getDeviceId, DownStorageCage::getDeviceId) |
| | | .eq(DownStorageCageDetails::getSlot, DownStorageCage::getSlot)) |
| | | ); |
| | | |
| | | } |
| | | |
| | | /** |
| | | * 修改理片笼信息 功能:对笼内栅格玻璃 【启用/禁用】 |
| | | * @param downStorageCage |
| | | * @return |
| | | */ |
| | | @Override |
| | | public boolean updateDownStorageCage(DownStorageCage downStorageCage){ |
| | | DownStorageCage downItem=baseMapper.selectById(downStorageCage.getId()); |
| | | downItem.setEnableState(downStorageCage.getEnableState()); |
| | | baseMapper.updateById(downItem); |
| | | return true; |
| | | } |
| | | |
| | | /** |
| | | *修改理片笼信息 功能:对笼内栅格玻璃 【添加/删除/更换】 |
| | | * @param downStorageCageId |
| | | * @param downStorageCageDetails |
| | | * @return |
| | | */ |
| | | @Override |
| | | public boolean updateDownStorageCageDetails(int downStorageCageId,DownStorageCageDetails downStorageCageDetails){ |
| | | DownStorageCage downItem=baseMapper.selectById(downStorageCageId); |
| | | log.info("正常"+downItem); |
| | | if(downStorageCageDetails !=null){ |
| | | DownStorageCageDetails edgDItem=downStorageCageDetailsMapper.selectById(downStorageCageDetails.getId()); |
| | | //添加 |
| | | if(edgDItem!=null){ |
| | | //只传格子 :移除玻璃 |
| | | DownStorageCageDetails newresult=downStorageCageDetailsMapper.selectById(downStorageCageDetails.getId()); |
| | | newresult.setSlot(downItem.getSlot()); |
| | | downStorageCageDetailsMapper.updateById(newresult); |
| | | } |
| | | } |
| | | |
| | | if (downItem!=null){ |
| | | //移除 |
| | | DownStorageCageDetails result=downStorageCageDetailsMapper.selectOne(new MPJLambdaWrapper<DownStorageCageDetails>().eq(DownStorageCageDetails::getSlot,downStorageCageId)); |
| | | if (result!=null){ |
| | | result.setSlot(0); |
| | | downStorageCageDetailsMapper.updateById(result); |
| | | } |
| | | |
| | | } |
| | | return true; |
| | | } |
| | | |
| | | } |
| | |
| | | private Integer workState; |
| | | |
| | | |
| | | /** |
| | | * 总数量 |
| | | */ |
| | | @TableField("total_quantity") |
| | | private Integer totalquantity; |
| | | |
| | | /** |
| | | * 落架数量 |
| | | */ |
| | | @TableField("racks_number") |
| | | private Integer Racksnumber; |
| | | |
| | |
| | | */ |
| | | private Integer state; |
| | | /** |
| | | * 玻璃 |
| | | * 玻璃ID |
| | | */ |
| | | private String glassId; |
| | | } |
| | |
| | | import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
| | | import com.mes.downworkstation.entity.DownWorkstation; |
| | | import com.mes.downworkstation.entity.DownWorkstationTask; |
| | | import org.mapstruct.Mapper; |
| | | |
| | | import java.util.List; |
| | | |
| | |
| | | * @author zhoush |
| | | * @since 2024-04-07 |
| | | */ |
| | | |
| | | @DS("salve_hangzhoumes") |
| | | @Mapper |
| | | public interface DownWorkstationTaskMapper extends BaseMapper<DownWorkstationTask> { |
| | | |
| | | List<DownWorkstationTask> selectList(); |
| | |
| | | void insertdownWorkstationtask(DownGlassInfo downGlassInfo); |
| | | |
| | | /** |
| | | * @param Id 更新任务状态 |
| | | * @param downWorkstationTask 更新任务状态 |
| | | */ |
| | | void updateTaskStateToZero(long Id); |
| | | void updateTaskStateToZero(DownWorkstationTask downWorkstationTask); |
| | | |
| | | /** |
| | | * @return 获取任务状态为1的信息 |
| | | */ |
| | | List<DownWorkstationTask> getTaskState(); |
| | | |
| | | void deleteTask(DownWorkstationTask downWorkstationTask); |
| | | } |
| | |
| | | |
| | | @Autowired |
| | | private DownWorkstationMapper downWorkstationMapper; |
| | | @Autowired |
| | | @Autowired(required=false) |
| | | private DownWorkstationTaskMapper downWorkstationTaskMapper; |
| | | @Autowired |
| | | private DownGlassInfoService downGlassInfoService; |
| | |
| | | //获取总数量 |
| | | @Override |
| | | public int getTotalQuantity(int workstationId) { |
| | | QueryWrapper<DownWorkstation> queryWrapper = new QueryWrapper<>(); |
| | | queryWrapper.select("total_quantity") |
| | | .eq("workstation_id", workstationId); |
| | | DownWorkstation result = baseMapper.selectOne(new QueryWrapper<DownWorkstation>().lambda() |
| | | .select(DownWorkstation::getTotalquantity) |
| | | .eq(DownWorkstation::getWorkstationId, workstationId)); |
| | | |
| | | DownWorkstation result = baseMapper.selectOne(queryWrapper); |
| | | return result != null ? result.getTotalquantity() : 0; |
| | | } |
| | | |
| | | |
| | | //工位显示 |
| | | @Override |
| | |
| | | .leftJoin("down_glass_info b on t.flow_card_id = b.flow_card_id") |
| | | .groupBy("t.workstation_id", "t.flow_card_id"); |
| | | |
| | | // List<DownWorkstionAndDownGlassinfo> workstationList = downWorkstationMapper.selectJoinList(DownWorkstionAndDownGlassinfo.class, queryWrapper); |
| | | List<DownWorkstionAndDownGlassinfo> workstationList = null; |
| | | List<DownWorkstionAndDownGlassinfo> workstationList = downWorkstationMapper.selectJoinList(DownWorkstionAndDownGlassinfo.class, queryWrapper); |
| | | // List<DownWorkstionAndDownGlassinfo> workstationList = null; |
| | | List<Map<String, Object>> result = new ArrayList<>(); |
| | | for (DownWorkstionAndDownGlassinfo downWorkstionAndDownGlassinfo : workstationList) { |
| | | Map<String, Object> rack = new HashMap<>(); |
| | |
| | | for (DownGlassTask downGlassInfo : taskdownGlassInf) { |
| | | // 创建新的 DownGlassInfo 对象并设置相关属性 |
| | | DownGlassInfo newdownGlassInfo = new DownGlassInfo(); |
| | | |
| | | // newdownGlassInfo.setId(downGlassInfo.getId()); |
| | | newdownGlassInfo.setFlowCardId(downGlassInfo.getFlowCardId()); |
| | | Integer maxSequence = downGlassInfoService.getMaxSequenceByFlowCardId(downGlassInfo.getFlowCardId()); |
| | | // 初始化顺序字段值 |
| | | int sequence = maxSequence != null ? maxSequence + 1 : 1; |
| | | // newdownGlassInfo.setId(downGlassInfo.getId()); |
| | | newdownGlassInfo.setWidth(downGlassInfo.getWidth()); |
| | | newdownGlassInfo.setGlassId(downGlassInfo.getGlassId()); |
| | | newdownGlassInfo.setHeight(downGlassInfo.getHeight()); |
| | | newdownGlassInfo.setThickness(downGlassInfo.getThickness()); |
| | | newdownGlassInfo.setFilmsid(downGlassInfo.getFilmsid()); |
| | |
| | | // 插入数据到下片玻璃信息表 |
| | | downGlassInfoService.insertDownGlassInfo(newdownGlassInfo); |
| | | //插入数据到机械手任务表 |
| | | |
| | | downWorkstationTaskService.insertdownWorkstationtask(newdownGlassInfo); |
| | | //更新下片任务表状态为0 |
| | | downGlassTaskService.updateTaskStateToZero(downGlassInfo.getId()); |
| | | downGlassTaskService.updateTaskStateToZero(downGlassInfo.getGlassId()); |
| | | //删除下片任务表中的记录 |
| | | downGlassTaskService.deleteTask(downGlassInfo.getFlowCardId()); |
| | | downGlassTaskService.deleteTask(downGlassInfo.getGlassId()); |
| | | |
| | | sequence++; // 递增顺序字段值 |
| | | |
| | |
| | | DownWorkstation downWorkstation1 = selectByFlowCardId(downWorkstation.getFlowCardId()); |
| | | updateracksnumber(downWorkstation.getFlowCardId(), downWorkstation1.getRacksnumber() + 1); |
| | | //更新机械任务表中状态为0 |
| | | downWorkstationTaskService.updateTaskStateToZero(downWorkstation.getId()); |
| | | downWorkstationTaskService.updateTaskStateToZero(downWorkstation); |
| | | //删除机械任务表 |
| | | downWorkstationTaskService.removeById(downWorkstation.getId()); |
| | | downWorkstationTaskService.deleteTask(downWorkstation); |
| | | |
| | | |
| | | } |
| | |
| | | package com.mes.downworkstation.service.impl; |
| | | |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; |
| | | import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; |
| | | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
| | | import com.mes.downglassinfo.entity.DownGlassInfo; |
| | |
| | | Long newId = (maxId == null) ? 1 : maxId + 1; |
| | | |
| | | |
| | | BeanUtils.copyProperties(entity,downGlassInfo); |
| | | BeanUtils.copyProperties(downGlassInfo,entity); |
| | | entity.setId(newId); // 设置手动递增的 id |
| | | entity.setState(1); |
| | | baseMapper.insert(entity); |
| | |
| | | queryWrapper.eq("state", 1); |
| | | return baseMapper.selectList(queryWrapper); |
| | | } |
| | | @Override |
| | | public void updateTaskStateToZero(long id) { |
| | | UpdateWrapper<DownWorkstationTask> updateWrapper = new UpdateWrapper<>(); |
| | | updateWrapper.set("state", 0).eq("id", id); |
| | | |
| | | baseMapper.update(new DownWorkstationTask(), updateWrapper); |
| | | @Override |
| | | public void updateTaskStateToZero(DownWorkstationTask downWorkstationTask) { |
| | | LambdaUpdateWrapper<DownWorkstationTask> lambdaUpdateWrapper = new LambdaUpdateWrapper<>(); |
| | | |
| | | lambdaUpdateWrapper.set(DownWorkstationTask::getState, 0) |
| | | .eq(DownWorkstationTask::getGlassId, downWorkstationTask.getGlassId()); |
| | | |
| | | baseMapper.update(new DownWorkstationTask(), lambdaUpdateWrapper); |
| | | } |
| | | |
| | | |
| | | @Override |
| | | public void deleteTask(DownWorkstationTask downWorkstationTask) { |
| | | LambdaQueryWrapper<DownWorkstationTask> queryWrapper = new LambdaQueryWrapper<>(); |
| | | queryWrapper.eq(DownWorkstationTask::getGlassId, downWorkstationTask.getGlassId()); |
| | | |
| | | baseMapper.delete(queryWrapper); |
| | | } |
| | | |
| | | } |
| | |
| | | */ |
| | | public interface GlassInfoService extends IService<GlassInfo> { |
| | | |
| | | /** |
| | | * @param flowCardId |
| | | * @return 根据流程卡号查询玻璃信息 |
| | | */ |
| | | int getGlassInfoCountByFlowCardId(String flowCardId); |
| | | |
| | | /** |
| | | * @return |
| | | * 查询所有不同流程卡号 |
| | | */ |
| | | List<Map<String, Object>> getFlowCardId(); |
| | | |
| | | /** |
| | | * @param id |
| | | * @return 根据玻璃id查询玻璃信息 |
| | | */ |
| | | GlassInfo selectGlassId(String id); |
| | | // List<GlassInfo> getmaxglass(GlassInfo glassInfo); |
| | | } |
| | |
| | | |
| | | private GlassInfoMapper glassInfoMapper; |
| | | |
| | | @Autowired |
| | | @Autowired(required=false) |
| | | public GlassInfoServiceImpl(GlassInfoMapper glassInfoMapper) { |
| | | this.glassInfoMapper = glassInfoMapper; |
| | | } |
| | | |
| | | @Override |
| | | public int getGlassInfoCountByFlowCardId(String flowCardId) { |
| | | QueryWrapper<GlassInfo> queryWrapper = new QueryWrapper<>(); |
| | | queryWrapper.eq("flow_card_id", flowCardId); |
| | | |
| | | return baseMapper.selectCount(queryWrapper); |
| | | return baseMapper.selectCount(new QueryWrapper<GlassInfo>().lambda() |
| | | .eq(GlassInfo::getFlowCardId, flowCardId)); |
| | | } |
| | | |
| | | |
| | | @Override |
| | | public List<Map<String, Object>> getFlowCardId() { |
| | | return baseMapper.selectMaps(new QueryWrapper<GlassInfo>().select("DISTINCT flow_card_id")); |
| | | return baseMapper.selectMaps(new QueryWrapper<GlassInfo>().lambda().select(GlassInfo::getFlowCardId).groupBy(GlassInfo::getFlowCardId)); |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | @Override |
| | | public GlassInfo selectGlassId(String id) { |
| | | QueryWrapper<GlassInfo> queryWrapper = new QueryWrapper<>(); |
| | | queryWrapper.eq("glass_id", id); |
| | | |
| | | return baseMapper.selectOne(queryWrapper); |
| | | return baseMapper.selectOne(new QueryWrapper<GlassInfo>().lambda() |
| | | .eq(GlassInfo::getGlassId, id)); |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | } |
| | |
| | | public class ExcelToJsonConverter { |
| | | |
| | | public static void main(String[] args) { |
| | | String excelFilePath = "src/main/resources/JsonFile/alarm.xlsx"; |
| | | String excelFilePath = "src/main/resources/JsonFile/PlcdownGlass.xlsx"; |
| | | String sheetName = "Sheet1"; |
| | | int addressColumnIndex = 0; |
| | | int nameColumnIndex = 1; |
| | | |
| | | //int unitColumnIndex = 2; |
| | | String outputFilePath = "src/main/resources/JsonFile/PlcAlarm.json"; |
| | | String outputFilePath = "src/main/resources/JsonFile/PlcdownGlass.json"; |
| | | |
| | | try (Workbook workbook = new XSSFWorkbook(new FileInputStream(excelFilePath))) { |
| | | Sheet sheet = workbook.getSheet(sheetName); |
| | |
| | | LinkedHashMap<String, Object> resultObject = new LinkedHashMap<>(); |
| | | resultObject.put("plcAddressBegin", "DB100.0"); |
| | | resultObject.put("plcAddressLenght", String.valueOf(plcAddressLength)); |
| | | // resultObject.put("dataType", "word"); |
| | | resultObject.put("dataType", "bit"); |
| | | resultObject.put("dataType", "word"); |
| | | // resultObject.put("dataType", "bit"); |
| | | resultObject.put("parameteInfor", jsonList); |
| | | |
| | | Gson gson = new Gson(); |
New file |
| | |
| | | {
|
| | | "plcAddressBegin": "DB100.0",
|
| | | "plcAddressLenght": "142",
|
| | | "dataType": "word",
|
| | | "parameteInfor": [
|
| | | {
|
| | | "codeId": "RequestWord",
|
| | | "addressIndex": "0",
|
| | | "addressLenght": "2"
|
| | | },
|
| | | {
|
| | | "codeId": "G04ID",
|
| | | "addressIndex": "2",
|
| | | "addressLenght": "2"
|
| | | },
|
| | | {
|
| | | "codeId": "spare",
|
| | | "addressIndex": "4",
|
| | | "addressLenght": "2"
|
| | | },
|
| | | {
|
| | | "codeId": "spare",
|
| | | "addressIndex": "6",
|
| | | "addressLenght": "2"
|
| | | },
|
| | | {
|
| | | "codeId": "spare",
|
| | | "addressIndex": "8",
|
| | | "addressLenght": "2"
|
| | | },
|
| | | {
|
| | | "codeId": "spare",
|
| | | "addressIndex": "10",
|
| | | "addressLenght": "2"
|
| | | },
|
| | | {
|
| | | "codeId": "spare",
|
| | | "addressIndex": "12",
|
| | | "addressLenght": "2"
|
| | | },
|
| | | {
|
| | | "codeId": "spare",
|
| | | "addressIndex": "14",
|
| | | "addressLenght": "2"
|
| | | },
|
| | | {
|
| | | "codeId": "spare",
|
| | | "addressIndex": "16",
|
| | | "addressLenght": "2"
|
| | | },
|
| | | {
|
| | | "codeId": "spare",
|
| | | "addressIndex": "18",
|
| | | "addressLenght": "2"
|
| | | },
|
| | | {
|
| | | "codeId": "MESSendingWord",
|
| | | "addressIndex": "20",
|
| | | "addressLenght": "2"
|
| | | },
|
| | | {
|
| | | "codeId": "InputGrid",
|
| | | "addressIndex": "22",
|
| | | "addressLenght": "2"
|
| | | },
|
| | | {
|
| | | "codeId": "OutputGrid",
|
| | | "addressIndex": "24",
|
| | | "addressLenght": "2"
|
| | | },
|
| | | {
|
| | | "codeId": "出片ID",
|
| | | "addressIndex": "26",
|
| | | "addressLenght": "2"
|
| | | },
|
| | | {
|
| | | "codeId": "前端后端下片",
|
| | | "addressIndex": "28",
|
| | | "addressLenght": "2"
|
| | | },
|
| | | {
|
| | | "codeId": "spare",
|
| | | "addressIndex": "30",
|
| | | "addressLenght": "2"
|
| | | },
|
| | | {
|
| | | "codeId": "spare",
|
| | | "addressIndex": "32",
|
| | | "addressLenght": "2"
|
| | | },
|
| | | {
|
| | | "codeId": "spare",
|
| | | "addressIndex": "34",
|
| | | "addressLenght": "2"
|
| | | },
|
| | | {
|
| | | "codeId": "spare",
|
| | | "addressIndex": "36",
|
| | | "addressLenght": "2"
|
| | | },
|
| | | {
|
| | | "codeId": "spare",
|
| | | "addressIndex": "38",
|
| | | "addressLenght": "2"
|
| | | },
|
| | | {
|
| | | "codeId": "spare",
|
| | | "addressIndex": "40",
|
| | | "addressLenght": "2"
|
| | | },
|
| | | {
|
| | | "codeId": "spare",
|
| | | "addressIndex": "42",
|
| | | "addressLenght": "2"
|
| | | },
|
| | | {
|
| | | "codeId": "spare",
|
| | | "addressIndex": "44",
|
| | | "addressLenght": "2"
|
| | | },
|
| | | {
|
| | | "codeId": "spare",
|
| | | "addressIndex": "46",
|
| | | "addressLenght": "2"
|
| | | },
|
| | | {
|
| | | "codeId": "spare",
|
| | | "addressIndex": "48",
|
| | | "addressLenght": "2"
|
| | | },
|
| | | {
|
| | | "codeId": "spare",
|
| | | "addressIndex": "50",
|
| | | "addressLenght": "2"
|
| | | },
|
| | | {
|
| | | "codeId": "spare",
|
| | | "addressIndex": "52",
|
| | | "addressLenght": "2"
|
| | | },
|
| | | {
|
| | | "codeId": "spare",
|
| | | "addressIndex": "54",
|
| | | "addressLenght": "2"
|
| | | },
|
| | | {
|
| | | "codeId": "MES任务状态",
|
| | | "addressIndex": "56",
|
| | | "addressLenght": "2"
|
| | | },
|
| | | {
|
| | | "codeId": "spare",
|
| | | "addressIndex": "58",
|
| | | "addressLenght": "2"
|
| | | },
|
| | | {
|
| | | "codeId": "报警状态",
|
| | | "addressIndex": "60",
|
| | | "addressLenght": "2"
|
| | | },
|
| | | {
|
| | | "codeId": "报警字1",
|
| | | "addressIndex": "62",
|
| | | "addressLenght": "2"
|
| | | },
|
| | | {
|
| | | "codeId": "报警字2",
|
| | | "addressIndex": "64",
|
| | | "addressLenght": "2"
|
| | | },
|
| | | {
|
| | | "codeId": "报警字3",
|
| | | "addressIndex": "66",
|
| | | "addressLenght": "2"
|
| | | },
|
| | | {
|
| | | "codeId": "报警字4",
|
| | | "addressIndex": "68",
|
| | | "addressLenght": "2"
|
| | | },
|
| | | {
|
| | | "codeId": "内容",
|
| | | "addressIndex": "70",
|
| | | "addressLenght": "2"
|
| | | },
|
| | | {
|
| | | "codeId": "设备状态字",
|
| | | "addressIndex": "72",
|
| | | "addressLenght": "2"
|
| | | },
|
| | | {
|
| | | "codeId": "spare",
|
| | | "addressIndex": "74",
|
| | | "addressLenght": "2"
|
| | | },
|
| | | {
|
| | | "codeId": "spare",
|
| | | "addressIndex": "76",
|
| | | "addressLenght": "2"
|
| | | },
|
| | | {
|
| | | "codeId": "输入输出1",
|
| | | "addressIndex": "78",
|
| | | "addressLenght": "2"
|
| | | },
|
| | | {
|
| | | "codeId": "输入输出2",
|
| | | "addressIndex": "80",
|
| | | "addressLenght": "2"
|
| | | },
|
| | | {
|
| | | "codeId": "输入输出3",
|
| | | "addressIndex": "82",
|
| | | "addressLenght": "2"
|
| | | },
|
| | | {
|
| | | "codeId": "输入输出4",
|
| | | "addressIndex": "84",
|
| | | "addressLenght": "2"
|
| | | },
|
| | | {
|
| | | "codeId": "输入输出5",
|
| | | "addressIndex": "86",
|
| | | "addressLenght": "2"
|
| | | },
|
| | | {
|
| | | "codeId": "输入输出6",
|
| | | "addressIndex": "88",
|
| | | "addressLenght": "2"
|
| | | },
|
| | | {
|
| | | "codeId": "输入输出7",
|
| | | "addressIndex": "90",
|
| | | "addressLenght": "2"
|
| | | },
|
| | | {
|
| | | "codeId": "spare",
|
| | | "addressIndex": "92",
|
| | | "addressLenght": "2"
|
| | | },
|
| | | {
|
| | | "codeId": "spare",
|
| | | "addressIndex": "94",
|
| | | "addressLenght": "2"
|
| | | },
|
| | | {
|
| | | "codeId": "spare",
|
| | | "addressIndex": "96",
|
| | | "addressLenght": "2"
|
| | | },
|
| | | {
|
| | | "codeId": "spare",
|
| | | "addressIndex": "98",
|
| | | "addressLenght": "2"
|
| | | },
|
| | | {
|
| | | "codeId": "spare",
|
| | | "addressIndex": "100",
|
| | | "addressLenght": "2"
|
| | | },
|
| | | {
|
| | | "codeId": "G04动作状态",
|
| | | "addressIndex": "102",
|
| | | "addressLenght": "2"
|
| | | },
|
| | | {
|
| | | "codeId": "G05动作状态",
|
| | | "addressIndex": "104",
|
| | | "addressLenght": "2"
|
| | | },
|
| | | {
|
| | | "codeId": "G06动作状态",
|
| | | "addressIndex": "106",
|
| | | "addressLenght": "2"
|
| | | },
|
| | | {
|
| | | "codeId": "G07动作状态",
|
| | | "addressIndex": "108",
|
| | | "addressLenght": "2"
|
| | | },
|
| | | {
|
| | | "codeId": "G08动作状态",
|
| | | "addressIndex": "110",
|
| | | "addressLenght": "2"
|
| | | },
|
| | | {
|
| | | "codeId": "G09动作状态",
|
| | | "addressIndex": "112",
|
| | | "addressLenght": "2"
|
| | | },
|
| | | {
|
| | | "codeId": "G10动作状态",
|
| | | "addressIndex": "114",
|
| | | "addressLenght": "2"
|
| | | },
|
| | | {
|
| | | "codeId": "G11动作状态",
|
| | | "addressIndex": "116",
|
| | | "addressLenght": "2"
|
| | | },
|
| | | {
|
| | | "codeId": "G12动作状态",
|
| | | "addressIndex": "118",
|
| | | "addressLenght": "2"
|
| | | },
|
| | | {
|
| | | "codeId": "G13动作状态",
|
| | | "addressIndex": "120",
|
| | | "addressLenght": "2"
|
| | | },
|
| | | {
|
| | | "codeId": "G04ID",
|
| | | "addressIndex": "122",
|
| | | "addressLenght": "2"
|
| | | },
|
| | | {
|
| | | "codeId": "G05ID",
|
| | | "addressIndex": "124",
|
| | | "addressLenght": "2"
|
| | | },
|
| | | {
|
| | | "codeId": "G06ID",
|
| | | "addressIndex": "126",
|
| | | "addressLenght": "2"
|
| | | },
|
| | | {
|
| | | "codeId": "G07ID",
|
| | | "addressIndex": "128",
|
| | | "addressLenght": "2"
|
| | | },
|
| | | {
|
| | | "codeId": "G08ID",
|
| | | "addressIndex": "130",
|
| | | "addressLenght": "2"
|
| | | },
|
| | | {
|
| | | "codeId": "G09ID",
|
| | | "addressIndex": "132",
|
| | | "addressLenght": "2"
|
| | | },
|
| | | {
|
| | | "codeId": "G10ID",
|
| | | "addressIndex": "134",
|
| | | "addressLenght": "2"
|
| | | },
|
| | | {
|
| | | "codeId": "G11ID",
|
| | | "addressIndex": "136",
|
| | | "addressLenght": "2"
|
| | | },
|
| | | {
|
| | | "codeId": "G12ID",
|
| | | "addressIndex": "138",
|
| | | "addressLenght": "2"
|
| | | },
|
| | | {
|
| | | "codeId": "G13ID",
|
| | | "addressIndex": "140",
|
| | | "addressLenght": "2"
|
| | | }
|
| | | ]
|
| | | } |
| | |
| | | |
| | | import com.mes.downworkstation.service.DownWorkstationService; |
| | | import com.mes.downworkstation.service.impl.DownWorkstationServiceImpl; |
| | | import com.mes.glassinfo.service.impl.GlassInfoServiceImpl; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.junit.Test; |
| | | import org.junit.runner.RunWith; |
| | |
| | | DownStorageCageDetailsService downStorageCageDetailsService; |
| | | @Autowired |
| | | DownWorkstationServiceImpl downWorkstationServiceImpl; |
| | | @Autowired |
| | | GlassInfoServiceImpl glassInfoServiceImpl; |
| | | @Autowired |
| | | DownWorkstationService downWorkstationService; |
| | | |
| | | @Test |
| | | public void testFindPath() { |
| | |
| | | |
| | | @Test |
| | | public void testCacheGlass() { |
| | | List<Map> map = downStorageCageDetailsServiceImpl.getCacheInfo(); |
| | | log.info("笼内信息:{}", Arrays.asList(map)); |
| | | //List<Map<String, Object>> map = downStorageCageServiceImpl.selectDownStorageCages(); |
| | | // log.info("笼内信息:{}", Arrays.asList(map)); |
| | | downStorageCageServiceImpl.updateDownStorageCageDetails(1,null); |
| | | } |
| | | |
| | | @Test |
| | | public void testselectCacheEmpty() { |
| | | List<DownStorageCageDetails> map = downStorageCageDetailsServiceImpl.getCacheLeisure(); |
| | | log.info("笼内空格:{}", Arrays.asList(map)); |
| | | // List<DownStorageCageDetails> map = downStorageCageDetailsServiceImpl.getCacheLeisure(); |
| | | // log.info("笼内空格:{}", Arrays.asList(map)); |
| | | } |
| | | |
| | | |
| | | @Test |
| | | public void testgetCacheOut() { |
| | | List<DownStorageCageDetails> map = downStorageCageDetailsServiceImpl.getCacheOut(1, 5); |
| | | log.info("根据传入的工位查询符合按照顺序和大小出片的小片:{}", Arrays.asList(map)); |
| | | // List<DownStorageCageDetails> map = downStorageCageDetailsServiceImpl.getCacheOut(1, 5); |
| | | // log.info("根据传入的工位查询符合按照顺序和大小出片的小片:{}", Arrays.asList(map)); |
| | | } |
| | | |
| | | |
| | |
| | | @Test |
| | | public void testplc() { |
| | | log.info("测试"); |
| | | downWorkstationServiceImpl.insertdownglassinfo(); |
| | | glassInfoServiceImpl.getGlassInfoCountByFlowCardId("NG24030702A01"); |
| | | |
| | | } |
| | | |
| | |
| | | @Test |
| | | public void testin2() { |
| | | log.info("测试进片"); |
| | | downStorageCageDetailsServiceImpl.getIsExistIntoCacheByflowcardid("NG2023005",500); |
| | | //downStorageCageDetailsServiceImpl.getIsExistIntoCacheByflowcardid("NG2023005",500); |
| | | |
| | | } |
| | | |
| | |
| | | @Test |
| | | public void selectCacheEmpty() { |
| | | log.info("测试进片"); |
| | | downStorageCageDetailsServiceImpl.getCacheLeisure(); |
| | | //downStorageCageDetailsServiceImpl.getCacheLeisure(); |
| | | |
| | | } |
| | | |
| | |
| | | @Test |
| | | public void getTotalGlassDimensionsByWorkstation() { |
| | | log.info("工位显示"); |
| | | downWorkstationServiceImpl.getTotalGlassDimensionsByWorkstation(); |
| | | downWorkstationService.getTotalGlassDimensionsByWorkstation(); |
| | | |
| | | } |
| | | |
| | |
| | | public void updateTaskStateToZero() { |
| | | log.info("更新状态0"); |
| | | |
| | | downGlassTaskServiceImpl.updateTaskStateToZero(3); |
| | | downGlassTaskServiceImpl.updateTaskStateToZero("3"); |
| | | } |
| | | |
| | | |