Merge remote-tracking branch 'origin/master'
| | |
| | | export default { |
| | | export default { |
| | | "northglassMESsystem": "NorthGlass MES System", |
| | | login:{ |
| | | userErr:'Please enter account number', |
| | | pwErr:'Please input a password', |
| | | user:'Account number', |
| | | password:'Password', |
| | | login:'Log on', |
| | | loginSuccessful:'Log on was successful!', |
| | | register:'Register', |
| | | namea:'Name cannot be empty', |
| | | len:'The length cannot exceed 16', |
| | | passnull:'Password cannot be empty', |
| | | leng:'The password length cannot be less than 6 or more than 16', |
| | | spwn:'Confirm password cannot be empty', |
| | | depass:'The two passwords are not the same', |
| | | }, |
| | | register:{ |
| | | registerSuccessful:'login was successful', |
| | | newuserregister:'New user register', |
| | | name:'Full name:', |
| | | inputname:'Please enter your name', |
| | | password:'Password:', |
| | | pwErr:'Please input a password', |
| | | passwordation:'Confirm password:', |
| | | pwErration:'Please confirm password', |
| | | registration:'Registration Confirm', |
| | | false:'Cancel', |
| | | }, |
| | | main:{ |
| | | connectErr:'The server connection is abnormal. Please try again later', |
| | | titleFirst:"Welcome ", |
| | | titleLast:' to use NorthGlass MES system!', |
| | | quit:"Exit", |
| | | }, |
| | | basicData:{ |
| | | untask:'无任务', |
| | | tonumber:'上片总数量', |
| | | finishnumber:'已完成数量', |
| | | rackreset:'架子复位', |
| | | prackreset:'是否架子复位?', |
| | | printing:'自动打印', |
| | | laserprinting:'Laser printing machine ready status:', |
| | | cuttingmachine:'Cutting machine ready status:', |
| | | machine:'Online status of the loading table:', |
| | | machineaa:'Manual state of the loading table:', |
| | | selectproject:"Select project", |
| | | startloading:'Start loading', |
| | | stop:'Pause', |
| | | yes:'Confirm', |
| | | change:'Switch', |
| | | projectnumber:'Project number', |
| | | glasswidth:'Glass width', |
| | | glassheight:'Glass height', |
| | | coatingtypes:'Coating types', |
| | | coatingtypesa:'Coating types:', |
| | | quantity:'Quantity', |
| | | quantitya:'Quantity:', |
| | | thickness:'Thickness', |
| | | thicknessa:'Thickness:', |
| | | startstatus:'Start status', |
| | | pass:'Pass', |
| | | waiting:'Waiting', |
| | | up:'Loading', |
| | | finish:'Completed', |
| | | project:'Project ', |
| | | plselectproject:'Please select project', |
| | | confirm:'Confirm', |
| | | cancel:'Cancel', |
| | | startfilm:'Whether start loading?', |
| | | whetherpause:'Whether pause?', |
| | | station:'Station', |
| | | width:'Width', |
| | | widtha:'Width:', |
| | | height:'Height', |
| | | heighta:'Height:', |
| | | operate:'Operate', |
| | | add:'Increase', |
| | | delete:'Delete', |
| | | addglass:'Add glass', |
| | | selectwidth:'Please select width', |
| | | selectheight:'Please select high', |
| | | selectcoatingtypes:'Please select the coating types', |
| | | selectthickness:'Please select thickness', |
| | | selectquantity:'Please enter the quantity', |
| | | pause:'The height of the second and fourth rows must be greater than 2700 in order to save!', |
| | | pausea:'Please confirm the ready status of marking machine and cutting machine!', |
| | | infonull:'Project number cannot be empty!', |
| | | updatanull:'This project has not been saved to the loading list!', |
| | | glassnull:'An error occurred while updating the glass status', |
| | | deletemessage:'Do you want to delete this message?', |
| | | layoutSequence:'Serial Number', |
| | | }, |
| | | sorter:{ |
| | | onesort:'一线掰片', |
| | | twosort:'二线掰片', |
| | | inPlace:'到位', |
| | | ninPlace:'未到位', |
| | | emptymissions:'空任务', |
| | | advancetask:'进片任务', |
| | | outputtasks:'出片任务', |
| | | schedulingtasks:'调度任务', |
| | | advancerequests:'进片请求', |
| | | releaserequest:'出片请求', |
| | | straighttasks:'直通任务', |
| | | endingtask:'结束', |
| | | another:'其他', |
| | | taskRunning:'任务请求', |
| | | updateTime:'更新时间', |
| | | id:'磨边前理片笼表ID', |
| | | remainWidth:'剩余', |
| | | place:'是否到位', |
| | | layernow:'当前层号', |
| | | gridnumber:'Grid number', |
| | | glassnumber:'Glass number', |
| | | width:'Width', |
| | | height:'Height', |
| | | startstatus:'Start status', |
| | | disable:'Disabled', |
| | | start:'Enabled', |
| | | deficiencieste:'Report deficiencies', |
| | | updown:'Artificial filming', |
| | | operate:'Operate', |
| | | prompt:'Prompt', |
| | | information:'Is the missing information reported?', |
| | | infor:'Whether to manually download this information?', |
| | | yes:'Yes', |
| | | cancel:'Cancel', |
| | | }, |
| | | order:{ |
| | | projectnumber:'请输入工程号', |
| | | dilapidation:'Breakage', |
| | | takeaway:'Manual removal', |
| | | takeawaya:'是否人工拿走该条信息?', |
| | | takeon:'The arrangement is complete', |
| | | }, |
| | | searchOrder:{ |
| | | furnfullTemp:'玻璃总量', |
| | | startCell:'目标层号', |
| | | endCell:'预留层号', |
| | | begin:'开始', |
| | | finish:'完成', |
| | | uncar:'未上车', |
| | | inkage:'进片', |
| | | successfullyprocessed:'任务成功处理', |
| | | psuccessfullyprocessed:'是否进行任务成功处理?', |
| | | taskfailure:'任务失败处理', |
| | | ptaskfailure:'是否进行任务失败处理?', |
| | | totallogarithms:'总对数', |
| | | numberpairs:'配对数', |
| | | numberoccupied:'占用格子数', |
| | | totalfurnaces:'总炉数', |
| | | cagesnumber:'笼内数量', |
| | | slotnumber:'占有格子数', |
| | | progress:'进度%', |
| | | whethersame:'是否相同', |
| | | same:'相同', |
| | | notsame:'不相同', |
| | | partask:'任务重置', |
| | | partasks:'是否任务重置?', |
| | | empty:'默认空任务', |
| | | historicaltasks:'历史任务', |
| | | cagedetails:'笼内详情', |
| | | inkageEntity:'进片联机状态:', |
| | | requestEntity:'进片请求状态:', |
| | | mesReplyEntity:'启动命令:', |
| | | outInkageEntity:'出片联机状态:', |
| | | outRequestEntity:'出片请求状态:', |
| | | breakagn:'未破损', |
| | | lacknumber:'缺片数量', |
| | | processcard:'指定流程卡', |
| | | filminformation:'人工下片信息', |
| | | currentglassinformation:'扫码枪当前玻璃信息', |
| | | printlabels:'打印标签', |
| | | deleteTask:'结束工程', |
| | | pdeleteTask:'是否结束工程?', |
| | | searchlayout:'Non-tempered process card inquiry', |
| | | fullfurnaces:'Number of full furnaces', |
| | | specifiedproject:'The currently specified project', |
| | | undesignate:'取消钢化', |
| | | allnumber:'Total quantity', |
| | | numbercages:'Number of cages', |
| | | missingquantity:'Missing quantity', |
| | | breakquantity:'Breakage/Take Away quantity', |
| | | ceng:'layer', |
| | | cageinformation:'Sorter information', |
| | | productionqueue:'Production queue', |
| | | outputglassID:'Output glass ID', |
| | | startposition:'Start position', |
| | | targetlocation:'Target Position', |
| | | trips:'Train number', |
| | | number:'Serial Number', |
| | | taskstatus:'Task state', |
| | | filmenter:'Waiting for input glass', |
| | | infilm:'In progress', |
| | | endtask:'End task', |
| | | completetask:'Complete the task', |
| | | intoglassid:'Input glass ID', |
| | | line:'Wire', |
| | | Usage:'Usage rate', |
| | | free:'Free(pieces)', |
| | | addcage:'Add information on sorter', |
| | | glassIDa:'Glass ID:', |
| | | glassID:'Glass ID', |
| | | inglassID:'Please enter the glass ID', |
| | | pieceingrid:'The order of small pieces within the grid', |
| | | pieceingrida:'The order of small pieces within the grid:', |
| | | inpieceingrid:'Please enter the order of small pieces within the grid', |
| | | cardnumber:'Process card number', |
| | | cardnumbera:'Process card number:', |
| | | incardnumber:'Please enter the process card number', |
| | | typeglass:'Glass type', |
| | | typeglassa:'Glass type:', |
| | | intypeglass:'Please enter the glass type', |
| | | width:'Width', |
| | | widtha:'Width:', |
| | | inwidth:'Please enter width', |
| | | height:'Height', |
| | | heighta:'Height:', |
| | | inheight:'Please enter height', |
| | | coatingtypes:'Coating types', |
| | | thickness:'Thickness', |
| | | thicknessa:'Thickness:', |
| | | inthickness:'Please enter the thickness', |
| | | layoutID:'Drawing ID of loading for tempering furnace', |
| | | layoutIDa:'Drawing ID of loading for tempering furnace:', |
| | | inlayoutID:'Please enter the drawing ID of loading for tempering furnace', |
| | | picturesequence:'Drawing sequence of loading for tempering furnace', |
| | | picturesequencea:'Drawing sequence of loading for tempering furnace:', |
| | | inpicturesequence:'Please enter the drawing sequence of loading for tempering furnace', |
| | | startstatus:'Start status', |
| | | startstatusa:'Start status:', |
| | | instartstatus:'Please enter the enabled status', |
| | | glassgaps:'Glass gap', |
| | | glassgapsa:'Glass gap:', |
| | | inglassgaps:'Please enter the glass gap', |
| | | sure:'Confirm', |
| | | cancel:'Cancel', |
| | | operate:'Operate', |
| | | breakage:'Breakage', |
| | | delete:'Delete', |
| | | outfilm:'Output glass', |
| | | cagetableID:'Sorter table ID', |
| | | cagenumber:'Sorter number', |
| | | gridnumber:'Grid number', |
| | | gridnumbera:'Grid number:', |
| | | grid:'Please enter a grid number', |
| | | enable:'Enabled', |
| | | disable:'Disabled', |
| | | remainingwidth:'Remaining width', |
| | | add:'Add', |
| | | sheetID:'Tempered small piece information table ID', |
| | | processcards:'Process card', |
| | | processcardtype:'Process card glass type', |
| | | acceptshorizontal:'Does tempering accept horizontal placement', |
| | | xcoordinates:'x coordinate', |
| | | ycoordinates:'Y coordinate', |
| | | rotationangle:'Rotation angle (counterclockwise)', |
| | | state:'Status', |
| | | takeout:'Take away', |
| | | deletemessage:'Do you want to delete this message?', |
| | | prompt:'Prompt', |
| | | yes:'Yes', |
| | | accept:'Accept', |
| | | noaccept:'Not accept', |
| | | filmcomplete:'Glass output completed', |
| | | waiting:'Waiting', |
| | | broke:'Is this information damaged?', |
| | | brokeb:'Do you need to delete the message?', |
| | | outfil:'Whether the film is released or not?', |
| | | inputid:'Please enter the glass ID', |
| | | search:'Search', |
| | | tabid:'Dali film cage details table ID', |
| | | tid:'Device ID', |
| | | tida:'Device ID:', |
| | | fin:'Whether or not the task was completed?', |
| | | sureadd:'Confirm the addition', |
| | | sureadda:'Whether to confirm the addition?', |
| | | zailong:'In a cage', |
| | | rengongxp:'Artificial filming', |
| | | up:'Previous', |
| | | down:'Next', |
| | | now:'The current page is displayed', |
| | | tit:'data', |
| | | temperingqueries:'Tempering queries', |
| | | specifytempering:'Specify a furnace', |
| | | specifyout:'指定人工出片', |
| | | specifyengineerid:'Specify the project', |
| | | projectnumber:'Project number', |
| | | layoutnumber:'Drawing number of loading for tempering furnace', |
| | | numberglasses:'Number of glasses', |
| | | specifytemperinga:'请确认设备是否已关闭MES联机?', |
| | | temperedswitch:'Tempered switch', |
| | | dutyinformation:'Duty information', |
| | | process:'Process', |
| | | team:'Team', |
| | | basic:'equipment', |
| | | makesure:'Confirm the save', |
| | | temperingtotal:'Number of tempering furnaces:', |
| | | glasstotal:'Total number of glasses:', |
| | | Labelprinting:'标签打印', |
| | | Schedulingswitch:'调度开关', |
| | | }, |
| | | workOrder:{ |
| | | upnumber:'上片位编号', |
| | | coatingtypesbe:'原片膜系', |
| | | glassID:'Glass ID', |
| | | height:'Height', |
| | | width:'Width', |
| | | thickness:'Thickness', |
| | | coatingtypes:'Coating types', |
| | | productionsequence:'Production sequence', |
| | | cardnumber:'Process card number', |
| | | operate:'Operate', |
| | | messagedamaged:'Is this information damaged?', |
| | | prompt:'Prompt', |
| | | yes:'Yes', |
| | | cancel:'Cancel', |
| | | takemessage:'Do you need to delete the message?', |
| | | breakage:'Breakage', |
| | | takeout:'Take away', |
| | | glasstype:'Glass type', |
| | | line:'Wire', |
| | | status:'Status', |
| | | time:'Time period', |
| | | cway:'Please select a route', |
| | | cstate:'Please select a status', |
| | | edgingone:'Edging a line', |
| | | edgingtwo:'Edging two lines', |
| | | nedging:'Unedging', |
| | | edging:'Edging', |
| | | finedging:'has been edging', |
| | | }, |
| | | processCard:{ |
| | | intofurnace:'Entering the furnace', |
| | | beforefurnace:'Before entering the furnace', |
| | | outfurnace:'Glass finished from tempering furnace', |
| | | print:'Take away the print', |
| | | printing:'print', |
| | | projectnumber:'Please enter the project number', |
| | | inquire:'Inquire', |
| | | project:'Project number', |
| | | awayprocess:'Take away the process', |
| | | awayequipment:'Take away the equipment', |
| | | awayteam:'Take away the crew', |
| | | flowcard:'Process card', |
| | | layer:'Layer number', |
| | | temperinglayout:'Heat number', |
| | | temperingfeed:'Preface', |
| | | width:'Width', |
| | | height:'Height', |
| | | thickness:'Thickness', |
| | | glasstakeout:'Glass take away list', |
| | | layoutID:'Drawing ID of loading for tempering furnace', |
| | | glassID:'Glass ID', |
| | | }, |
| | | reportWork:{ |
| | | details:'Drop off details', |
| | | filming:'Artificial filming', |
| | | printing:'Automatic printing', |
| | | cenumber:'Number of layers', |
| | | artificialorder:'The number of pieces under artificial order', |
| | | processcard:'Print the process card', |
| | | printlabels:'Print labels', |
| | | information:'Landing information', |
| | | cstation:'Please select a desk', |
| | | all:'all', |
| | | timeperiod:'Time period', |
| | | stationnumber:'Station number', |
| | | order:'order', |
| | | filminformation:'Manual film information', |
| | | glassmation:'Artificial film current glass information', |
| | | barcodescanner:'The current glass information of the barcode scanner', |
| | | lowerbit:'Unloading station', |
| | | shelfnumber:'Rack number', |
| | | cardnumber:'Process card number', |
| | | totalquantity:'Total quantity', |
| | | beendropped:'Quantity of unloaded glass', |
| | | state:'Status', |
| | | devicenumber:'Equipment No.', |
| | | startstatus:'Start status', |
| | | enable:'Start', |
| | | unenable:'Unstart', |
| | | operate:'Operate', |
| | | bindingshelves:'Assigned rack', |
| | | clear:'Clear', |
| | | workstation:'Station No.', |
| | | shelfnumbera:'Rack number:', |
| | | cardnumbera:'Process card number:', |
| | | incardnumber:'Please select the process card number', |
| | | clearglass:'Clear the glass on the shelf', |
| | | sure:'Operate', |
| | | cancel:'Cancel', |
| | | glassinformation:'Glass information', |
| | | glassID:'Glass ID', |
| | | coatingtypes:'Coating types', |
| | | thickness:'Thickness', |
| | | width:'Width', |
| | | height:'Height', |
| | | }, |
| | | productStock:{ |
| | | configName:'配置名', |
| | | configCode:'配置代码', |
| | | configValue:'配置值', |
| | | addusers:'Add user', |
| | | username:'User name', |
| | | usernamea:'User name:', |
| | | inusername:'Enter one user name', |
| | | role:'Role', |
| | | rolea:'Role:', |
| | | inrole:'Please select a role', |
| | | test:'Test', |
| | | admin:'Administrator', |
| | | operate:'Operate', |
| | | resetpassword:'Reset password', |
| | | exit:'Edit', |
| | | delete:'Delete', |
| | | prompt:'Prompt', |
| | | repassword:'Do you want to reset the user password?', |
| | | yes:'Yes', |
| | | cancel:'Cancel', |
| | | reusername:'Modify Users', |
| | | addusername:'Add user', |
| | | password:'Password:', |
| | | sure:'Confirm', |
| | | inpassword:'Please input a password', |
| | | deusername:'Do you want to delete the user?', |
| | | }, |
| | | customer:{ |
| | | addmenua:'Add secondary menus', |
| | | addmenu:'Add a first-level menu', |
| | | firstmenu:'First level menu bar', |
| | | firstmenuname:'The name of the first-level menu:', |
| | | link:'Link', |
| | | inlink:'Please enter the link', |
| | | linka:'Link:', |
| | | sort:'Sort', |
| | | insort:'Please enter sorting', |
| | | sorta:'Sort:', |
| | | operate:'Operate', |
| | | exit:'Edit', |
| | | delete:'Delete', |
| | | semenu:'Secondary menu bar', |
| | | semenuname:'Secondary menu name:', |
| | | menu:'Menu bar:', |
| | | inmenu:'Please enter a menu name', |
| | | sure:'Confirm', |
| | | cancel:'Cancel', |
| | | exmene:'Modify the first-level menu', |
| | | exmenea:'Modify the secondary menu', |
| | | yes:'Yes', |
| | | demenu:'Do you want to delete this menu?', |
| | | prompt:'Prompt', |
| | | }, |
| | | delivery:{ |
| | | addrole:'Add Role', |
| | | editrole:'Modify role', |
| | | role :'Role', |
| | | rolea :'Role:', |
| | | inrole :'Please enter the role', |
| | | operate :'Operate', |
| | | edit :'Edit', |
| | | delete :'Delete', |
| | | yes:'Yes', |
| | | sure :'Confirm', |
| | | cancel :'Cancel', |
| | | derole :'Do you want to delete this role', |
| | | prompt:'Prompt', |
| | | choice:'Menu permissions:', |
| | | inchoice:'Please select Menu Permissions', |
| | | }, |
| | | replenish:{ |
| | | patchManagement:'Mesh management', |
| | | }, |
| | | rework:{ |
| | | reworkManagement:'Rework management', |
| | | addRework:"Rework added ", |
| | | }, |
| | | role:{ |
| | | id:'ID', |
| | | characterHomepage:'Character Home', |
| | | }, |
| | | user:{ |
| | | userId:'User ID', |
| | | userHomepage:'User Home', |
| | | }, |
| | | orderBasicData:{ |
| | | order:'orders', |
| | | orderType:'The type of order', |
| | | }, |
| | | machine:{ |
| | | basicId:'Device number', |
| | | basicName:'The name of the device', |
| | | basicCategory:'The process in which it is located', |
| | | tempering:'Steel', |
| | | }, |
| | | report:{ |
| | | productionReport:'Production reports', |
| | | workInProgressReport:'WIP report', |
| | | }, |
| | | productionBasicData:{ |
| | | basicDataQuery :'Basic data query', |
| | | }, |
| | | mainIngredient:{ |
| | | materialInformation :'Material information', |
| | | }, |
| | | mainIngredientStock:{ |
| | | materialName :'The name of the item', |
| | | createTime :'Return date', |
| | | }, |
| | | large:{ |
| | | percent:'Percent', |
| | | time: 'The time of the break', |
| | | tionnumber: 'Order number', |
| | | jobnumber: 'Job number', |
| | | productionnumber: 'The production order number', |
| | | cardnumber: 'Process card number', |
| | | projectname: 'The name of the project', |
| | | batch: 'batch', |
| | | detailID: 'Detail ID', |
| | | building: 'Building No', |
| | | serialnumber: 'Order serial number', |
| | | productname: 'Product name', |
| | | serial: 'Process validation number', |
| | | slicemarker: 'Frame marker (position)', |
| | | numberpatches: 'Number of patches', |
| | | width: 'Width', |
| | | height: 'Height', |
| | | shape: 'Shape', |
| | | responsibleprocess: 'Responsible process', |
| | | process: 'This process', |
| | | numberfractions: 'The number of unfilled fractions', |
| | | breakreason: 'The reason for the break', |
| | | breaktype: 'Sub-break type', |
| | | responsiblepersonnel: 'Responsible Personnel', |
| | | responsiblequipment: 'Responsible Equipment', |
| | | responsibleteam: 'Responsible team', |
| | | area: 'Sub-broken area', |
| | | inspector: 'Quality inspector', |
| | | operate: 'Operate', |
| | | mes: 'Detail', |
| | | projectnumber: 'The project order number', |
| | | brokeno: 'The report is broken and not filled', |
| | | close: 'Shut down', |
| | | orderId: 'Order ID', |
| | | order: '订单详情', |
| | | customerName: 'The name of the customer', |
| | | project: 'The name of the project', |
| | | are: 'are', |
| | | quantity: 'quantity', |
| | | warehousing: 'State', |
| | | deliveryDate: 'Delivery time', |
| | | notstocked: 'Not yet in stock', |
| | | inboundstatus: 'Partial inventory status', |
| | | allstatus: 'All in stock status', |
| | | completedquantity: 'Completed quantity', |
| | | scrapquantity: 'Scrap Quantity', |
| | | number: 'Quantity', |
| | | method: 'Processing method', |
| | | innumber: 'Quantity already entered', |
| | | productstatus: 'Production status', |
| | | right: 'normal', |
| | | stop: 'termination', |
| | | inquire: 'query', |
| | | starttime :'Start Time', |
| | | endtime :'End Time', |
| | | loading :'In the process of uploading:', |
| | | brokenNum:'brokenNum', |
| | | inventory:'inventory', |
| | | inventoryarea:'inventoryarea', |
| | | shippedQuantity:'shippedQuantity', |
| | | reportWorkQuantity:'reportWorkQuantity', |
| | | reportWorkQuantityCount:'reporting_work_num_count', |
| | | processId:'processId', |
| | | historicaltasks1:'historicaltasks1', |
| | | historicaltasks2:'historicaltasks2', |
| | | historicaltasks3:'historicaltasks3', |
| | | historicaltasks4:'historicaltasks4', |
| | | historicaltasks5:'historicaltasks5', |
| | | historicaltasks6:'historicaltasks6', |
| | | historicaltasks7:'historicaltasks7', |
| | | order:'order', |
| | | date:'date', |
| | | countOutOne:'countOutOne', |
| | | totalAreaOutOne:'totalAreaOutOne', |
| | | countOutTwo:'countOutTwo', |
| | | totalAreaOutTwo:'totalAreaOutTwo', |
| | | countIn:'countIn', |
| | | totalAreaIn:'totalAreaIn', |
| | | countOut:'countOut', |
| | | totalAreaOut:'totalAreaOut', |
| | | hollowCountOutOne:'hollowCountOutOne', |
| | | hollowTotalAreaOutOne:'hollowTotalAreaOutOne', |
| | | countOut:'countOut', |
| | | hollowCountOutTwo:'hollowCountOutTwo', |
| | | }, |
| | | reportmanage:{ |
| | | productiontime :'production time', |
| | | starttime :'Start Time', |
| | | endtime :'End Time', |
| | | ctype :'Please select type', |
| | | cstate :'Please select the status', |
| | | cprocess :'Please select the process', |
| | | all :'All', |
| | | completed :'Completed', |
| | | broke :'Damaged', |
| | | takeout :'Takeout', |
| | | dreportwork :'Unreported work', |
| | | pendingwork :'Pending job application', |
| | | reportwork :'Reported work', |
| | | reportworked :'Reported worked', |
| | | incise :'slicing', |
| | | edging :'edging', |
| | | steel :'toughened', |
| | | inquire :'query', |
| | | signingwork :'Reporting for work', |
| | | reporteam :'Report work team', |
| | | reportingequipment :'Reporting equipment', |
| | | line :'line', |
| | | process :'production processes', |
| | | glassID :'Glass ID', |
| | | projectnumber :'Project number', |
| | | layoutID :'Tempered layout ID', |
| | | type :'type', |
| | | state :'state', |
| | | processcards :'Flow Card', |
| | | number :'Serial Number', |
| | | layer :'storey', |
| | | typebreakage :'Damage type', |
| | | ptypebreakage :' Please select the type of damage', |
| | | causebreakage :'Reason for damage', |
| | | pcausebreakage :'Please select the reason for the damage', |
| | | responsibleprocess :'Responsibility Process', |
| | | responsiblepersonnel :'Responsible personnel', |
| | | presponsiblepersonnel :'Please enter the responsible personnel', |
| | | responsibleteam :'Responsible team', |
| | | presponsibleteam :'Please select the responsible team', |
| | | responsibleequipment :'Responsible equipment', |
| | | presponsibleequipment :'Please select the responsible device', |
| | | remark :'notes', |
| | | premark :'Please enter a note', |
| | | }, |
| | | film:{ |
| | | resetnumber:'架子号', |
| | | fail:'失败', |
| | | mes:'Original film storage details', |
| | | warehousing:'store', |
| | | pwarehousing:'入库请求', |
| | | wareout:'原片出库', |
| | | information:'是否出库该条信息?', |
| | | pwareout:'出库请求', |
| | | position:'吊装位:', |
| | | cposition:'请选择吊装位', |
| | | position1:'吊装位1', |
| | | position2:'吊装位2', |
| | | addglass:'原片信息', |
| | | operate: 'Operate', |
| | | exit:'Edit', |
| | | delete:'Delete', |
| | | outbound:'Outbound', |
| | | deviceid:'device ID', |
| | | enablestatea:'Enable tagging', |
| | | disable:'Disable', |
| | | start:'Enable', |
| | | startslot:'Start workstation', |
| | | endslot:'Target workstation', |
| | | slotid:'Grid ID', |
| | | slot:'格子号', |
| | | width:'Width', |
| | | widtha:'Width:', |
| | | inwidth:'Please enter width', |
| | | height:'Height', |
| | | inheight:'Please enter height', |
| | | heighta:'Height:', |
| | | thickness:'Thickness', |
| | | inthickness:'Please enter thickness', |
| | | thicknessa:'Thickness:', |
| | | films:'Films', |
| | | infilms:'Please enter films', |
| | | filmsa:'Films:', |
| | | createtime:'Creation time', |
| | | remainquantity:'Remaining Quantity', |
| | | thickremainquant:'Remaining quantity of original film (sheets)', |
| | | thickremainquantity:'Remaining quantity of original film (sheets):', |
| | | inquantity:'Please enter the quantity', |
| | | quantitya:'Number:', |
| | | enableid:'Task ID', |
| | | originateslot:'Starting grid', |
| | | endoriginateslot:'目标格子', |
| | | patternquantity:'Number', |
| | | enabletype:'Task Type', |
| | | enablestate:'Workstation status', |
| | | finish:'Completed', |
| | | unfinish:'Incomplete', |
| | | dedelete:'Do you want to delete this content?', |
| | | dedisable:'Do you want to disable this content?', |
| | | deoutbound:'Whether to release the content of this item from the warehouse?', |
| | | selectwarehousing:'Please select the lifting position', |
| | | inwarehousing:'Lifting position:', |
| | | warehousing1:'Lifting position 1', |
| | | warehousing2:'Lifting position 2', |
| | | starttime :'Start Time', |
| | | endtime :'End Time', |
| | | taskstatus :'Status', |
| | | built :'newly built', |
| | | execution :'In progress', |
| | | tasktype :'Task Type', |
| | | stocke :'store', |
| | | dispatch :'dispatch', |
| | | inquire :'query', |
| | | station :'station', |
| | | }, |
| | | Mounting:{ |
| | | previewproject :'Select Preview Project', |
| | | loadinglinea :'Upper film line', |
| | | loadingline :'Upper film line:', |
| | | inloadingline :'Please select the upper film line', |
| | | oneloadingline :'Line 1 on film', |
| | | twoloadingline :'Line 2 on film', |
| | | waiting :'Waiting', |
| | | pass: 'Pass', |
| | | setparameters :'Set parameters', |
| | | project :'Project number', |
| | | projecta :'Project number:', |
| | | width :'Width', |
| | | height :'Height', |
| | | thickness :'Thickness', |
| | | projectnumber :'Project original piece number', |
| | | state :'state', |
| | | createtime :'Creation time', |
| | | all :'Select All', |
| | | removalmethod: '请选择除膜方式', |
| | | removalmethodp: '除膜方式', |
| | | removalmethoda: '除膜方式:', |
| | | noremoval: '不除膜', |
| | | removal: '除膜', |
| | | coarselyground: '粗磨', |
| | | finegrinding: '精磨', |
| | | }, |
| | | hellow: { |
| | | totalPairQuantitya: '任务总配对数', |
| | | pairQuantitya: '已出配对数', |
| | | waitingout: '等待出片', |
| | | finishout: '出片完成', |
| | | hollowSequence: '中空顺序', |
| | | isPair: '是否配对', |
| | | no: '否', |
| | | listFormula: '配方信息', |
| | | HollowGlass: '队列信息', |
| | | totalLayer: '总层数', |
| | | totalPairQuantity: '总配对数量', |
| | | pairQuantity: '已完成配对数量', |
| | | isForceList: '是否强制', |
| | | yesisForceList: '强制', |
| | | noisForceList: '非强制', |
| | | hollowCountOutOne: '中空一线玻璃数量', |
| | | hollowCountOutTwo: '中空二线玻璃数量', |
| | | hollowTotalAreaOutOne: '中空一线玻璃面积', |
| | | hollowTotalAreaOutTwo: '中空二线玻璃面积', |
| | | countIn: '钢化前大理片笼玻璃数量', |
| | | countOut: '钢化玻璃数量', |
| | | countOutOne: '切割一线玻璃数量', |
| | | countOutTwo: '切割二线玻璃数量', |
| | | totalAreaIn: '钢化前大理片笼玻璃面积', |
| | | totalAreaOut: '钢化玻璃面积', |
| | | totalAreaOutOne: '切割一线玻璃面积', |
| | | totalAreaOutTwo: '切割二线玻璃面积', |
| | | freeone: '一线空闲状态:', |
| | | freetwo: '二线空闲状态:', |
| | | freethree: '三线空闲状态:', |
| | | casFour: '气体4', |
| | | casFourb: '气体4:', |
| | | casFoura: '请选择气体4', |
| | | casOne: '气体1', |
| | | casOneb: '气体1:', |
| | | casOnea: '请选择气体1', |
| | | casThree: '气体3', |
| | | casThreeb: '气体3:', |
| | | casThreea: '请选择气体3', |
| | | casTwo: '气体2', |
| | | casTwob: '气体2:', |
| | | casTwoa: '请选择气体2', |
| | | Y: '有', |
| | | F: '无', |
| | | frameFour: '间隔板4', |
| | | frameFourb: '间隔板4:', |
| | | frameFoura: '请输入间隔板4', |
| | | frameOne: '间隔板1', |
| | | frameOneb: '间隔板1:', |
| | | frameOnea: '请输入间隔板1', |
| | | frameThree: '间隔板3', |
| | | frameThreeb: '间隔板3:', |
| | | frameThreea: '请输入间隔板3', |
| | | frameTwo: '间隔板2', |
| | | frameTwob: '间隔板2:', |
| | | frameTwoa: '请输入间隔板2', |
| | | intervalFrameHeightOne: '间隔框高度1', |
| | | intervalFrameHeightTwo: '间隔框高度2', |
| | | intervalFrameHeightThree: '间隔框高度3', |
| | | intervalFrameHeightFour: '间隔框高度4', |
| | | intervalFrameHeightaOne: '请输入间隔框高度1', |
| | | intervalFrameHeightaTwo: '请输入间隔框高度2', |
| | | intervalFrameHeightaThree: '请输入间隔框高度3', |
| | | intervalFrameHeightaFour: '请输入间隔框高度4', |
| | | intervalFrameHeightbOne: '间隔框高度1:', |
| | | intervalFrameHeightbTwo: '间隔框高度2:', |
| | | intervalFrameHeightbThree: '间隔框高度3:', |
| | | intervalFrameHeightbFour: '间隔框高度4:', |
| | | intervalFrameTypeOne: '间隔框类型1', |
| | | intervalFrameTypeTwo: '间隔框类型2', |
| | | intervalFrameTypeThree: '间隔框类型3', |
| | | intervalFrameTypeFour: '间隔框类型4', |
| | | intervalFrameTypecOne: '请选择间隔框类型1', |
| | | intervalFrameTypecTwo: '请选择间隔框类型2', |
| | | intervalFrameTypecThree: '请选择间隔框类型3', |
| | | intervalFrameTypecFour: '请选择间隔框类型4', |
| | | intervalFrameTypedOne: '间隔框类型1:', |
| | | intervalFrameTypedTwo: '间隔框类型2:', |
| | | intervalFrameTypedThree: '间隔框类型3:', |
| | | intervalFrameTypedFour: '间隔框类型4:', |
| | | intervalFrameTypea: 'tps胶', |
| | | intervalFrameTypeb: '铝间隔条', |
| | | intervalFrameWidthOne: '间隔框宽度1', |
| | | intervalFrameWidthTwo: '间隔框宽度2', |
| | | intervalFrameWidthThree: '间隔框宽度3', |
| | | intervalFrameWidthFour: '间隔框宽度4', |
| | | intervalFrameWidthaOne: '请输入间隔框宽度1', |
| | | intervalFrameWidthaTwo: '请输入间隔框宽度2', |
| | | intervalFrameWidthaThree: '请输入间隔框宽度3', |
| | | intervalFrameWidthaFour: '请输入间隔框宽度4', |
| | | intervalFrameWidthbOne: '间隔框宽度1:', |
| | | intervalFrameWidthbTwo: '间隔框宽度2:', |
| | | intervalFrameWidthbThree: '间隔框宽度3:', |
| | | intervalFrameWidthbFour: '间隔框宽度4:', |
| | | sealInsert: '密封嵌入', |
| | | sealInsertb: '密封嵌入:', |
| | | sealInserta: '请输入密封嵌入', |
| | | hollowformula: '中空配方', |
| | | hollowformuldet: '是否删除该中空配方?', |
| | | hollowtaskdet: '是否删除该任务?', |
| | | taskdet: '删除任务', |
| | | edithollowformula: '修改中空配方', |
| | | phollowformula: '请选择中空配方', |
| | | hollowformulp: '中空配方:', |
| | | bottomRemove: '下侧除膜量:', |
| | | bottomRemovep: '下侧除膜量', |
| | | bottomRemovea: '请输入下侧除膜量', |
| | | topRemove: '上侧除膜量:', |
| | | topRemovep: '上侧除膜量', |
| | | topRemovea: '请输入上侧除膜量', |
| | | leftRemove: '左侧除膜量:', |
| | | leftRemovep: '左侧除膜量', |
| | | leftRemovea: '请输入左侧除膜量', |
| | | rightRemove: '右侧除膜量:', |
| | | rightRemovep: '右侧除膜量', |
| | | rightRemovea: '请输入右侧除膜量', |
| | | formulaNamep: '配方名', |
| | | formulaName: '配方名:', |
| | | formulaNamea: '请输入配方名', |
| | | stopproject: '暂停任务', |
| | | pstopproject: '是否暂停任务?', |
| | | reviewproject: '预览工程', |
| | | line: '线路', |
| | | linea: '线路:', |
| | | line1: '线路一', |
| | | line2: '线路二', |
| | | line3: '线路三', |
| | | createtask: '创建任务', |
| | | starttask: '开始任务', |
| | | pstarttask: '是否开始任务?', |
| | | stoptask: '停止任务', |
| | | pstoptask: '是否停止任务?', |
| | | currenttask: '当前任务:', |
| | | claimednumber: '已领取配对数量:', |
| | | linenumber: '进入中空线数量:', |
| | | order: '出片顺序', |
| | | flowCardId: '流程卡', |
| | | thickness: '厚度', |
| | | coatingtypes: '膜系', |
| | | layer: '层数', |
| | | height: '长', |
| | | width: '宽', |
| | | state: '状态', |
| | | cardnumber: '流程卡号', |
| | | cardnumbera: '流程卡号:', |
| | | layernumber: '层号', |
| | | totalnumber: '总片数', |
| | | pairsnumber: '已配对数量', |
| | | missingnumber: '缺片数量', |
| | | damagenumber: '破损数量', |
| | | operate: '操作', |
| | | claimquest: '领取任务', |
| | | pclaimquest: '是否领取任务?', |
| | | missingfilms: '缺片详情', |
| | | forcedfilming: '强制出片', |
| | | pforcedfilming: '是否强制出片?', |
| | | brokenpieces: '破损片数', |
| | | realpieces: '实际片数', |
| | | route: '路线:', |
| | | croute: '请选择路线', |
| | | ptotalpairQuantity: '总配对数量:', |
| | | cpairQuantity: '请输入总配对数量', |
| | | schedulingswitch: '调度开关', |
| | | }, |
| | | screendisplay:{ |
| | | login: { |
| | | userErr: 'Please enter account number', |
| | | pwErr: 'Please input a password', |
| | | user: 'Account number', |
| | | password: 'Password', |
| | | login: 'Log on', |
| | | loginSuccessful: 'Log on was successful!', |
| | | register: 'Register', |
| | | namea: 'Name cannot be empty', |
| | | len: 'The length cannot exceed 16', |
| | | passnull: 'Password cannot be empty', |
| | | leng: 'The password length cannot be less than 6 or more than 16', |
| | | spwn: 'Confirm password cannot be empty', |
| | | depass: 'The two passwords are not the same', |
| | | }, |
| | | register: { |
| | | registerSuccessful: 'login was successful', |
| | | newuserregister: 'New user register', |
| | | name: 'Full name:', |
| | | inputname: 'Please enter your name', |
| | | password: 'Password:', |
| | | pwErr: 'Please input a password', |
| | | passwordation: 'Confirm password:', |
| | | pwErration: 'Please confirm password', |
| | | registration: 'Registration Confirm', |
| | | false: 'Cancel', |
| | | }, |
| | | main: { |
| | | connectErr: 'The server connection is abnormal. Please try again later', |
| | | titleFirst: "Welcome ", |
| | | titleLast: ' to use NorthGlass MES system!', |
| | | quit: "Exit", |
| | | }, |
| | | basicData: { |
| | | untask: '无任务', |
| | | tonumber: '上片总数量', |
| | | finishnumber: '已完成数量', |
| | | rackreset: '架子复位', |
| | | prackreset: '是否架子复位?', |
| | | printing: '自动打印', |
| | | laserprinting: 'Laser printing machine ready status:', |
| | | cuttingmachine: 'Cutting machine ready status:', |
| | | machine: 'Online status of the loading table:', |
| | | machineaa: 'Manual state of the loading table:', |
| | | selectproject: "Select project", |
| | | startloading: 'Start loading', |
| | | stop: 'Pause', |
| | | yes: 'Confirm', |
| | | change: 'Switch', |
| | | projectnumber: 'Project number', |
| | | glasswidth: 'Glass width', |
| | | glassheight: 'Glass height', |
| | | coatingtypes: 'Coating types', |
| | | coatingtypesa: 'Coating types:', |
| | | quantity: 'Quantity', |
| | | quantitya: 'Quantity:', |
| | | thickness: 'Thickness', |
| | | thicknessa: 'Thickness:', |
| | | startstatus: 'Start status', |
| | | pass: 'Pass', |
| | | waiting: 'Waiting', |
| | | up: 'Loading', |
| | | finish: 'Completed', |
| | | project: 'Project ', |
| | | plselectproject: 'Please select project', |
| | | confirm: 'Confirm', |
| | | cancel: 'Cancel', |
| | | startfilm: 'Whether start loading?', |
| | | whetherpause: 'Whether pause?', |
| | | station: 'Station', |
| | | width: 'Width', |
| | | widtha: 'Width:', |
| | | height: 'Height', |
| | | heighta: 'Height:', |
| | | operate: 'Operate', |
| | | add: 'Increase', |
| | | delete: 'Delete', |
| | | addglass: 'Add glass', |
| | | selectwidth: 'Please select width', |
| | | selectheight: 'Please select high', |
| | | selectcoatingtypes: 'Please select the coating types', |
| | | selectthickness: 'Please select thickness', |
| | | selectquantity: 'Please enter the quantity', |
| | | pause: 'The height of the second and fourth rows must be greater than 2700 in order to save!', |
| | | pausea: 'Please confirm the ready status of marking machine and cutting machine!', |
| | | infonull: 'Project number cannot be empty!', |
| | | updatanull: 'This project has not been saved to the loading list!', |
| | | glassnull: 'An error occurred while updating the glass status', |
| | | deletemessage: 'Do you want to delete this message?', |
| | | layoutSequence: 'Serial Number', |
| | | }, |
| | | sorter: { |
| | | onesort: '一线掰片', |
| | | twosort: '二线掰片', |
| | | inPlace: '到位', |
| | | ninPlace: '未到位', |
| | | emptymissions: '空任务', |
| | | advancetask: '进片任务', |
| | | outputtasks: '出片任务', |
| | | schedulingtasks: '调度任务', |
| | | advancerequests: '进片请求', |
| | | releaserequest: '出片请求', |
| | | straighttasks: '直通任务', |
| | | endingtask: '结束', |
| | | another: '其他', |
| | | taskRunning: '任务请求', |
| | | updateTime: '更新时间', |
| | | id: '磨边前理片笼表ID', |
| | | remainWidth: '剩余', |
| | | place: '是否到位', |
| | | layernow: '当前层号', |
| | | gridnumber: 'Grid number', |
| | | glassnumber: 'Glass number', |
| | | width: 'Width', |
| | | height: 'Height', |
| | | startstatus: 'Start status', |
| | | disable: 'Disabled', |
| | | start: 'Enabled', |
| | | deficiencieste: 'Report deficiencies', |
| | | updown: 'Artificial filming', |
| | | operate: 'Operate', |
| | | prompt: 'Prompt', |
| | | information: 'Is the missing information reported?', |
| | | infor: 'Whether to manually download this information?', |
| | | yes: 'Yes', |
| | | cancel: 'Cancel', |
| | | }, |
| | | order: { |
| | | projectnumber: '请输入工程号', |
| | | dilapidation: 'Breakage', |
| | | takeaway: 'Manual removal', |
| | | takeawaya: '是否人工拿走该条信息?', |
| | | takeon: 'The arrangement is complete', |
| | | }, |
| | | searchOrder: { |
| | | furnfullTemp: '玻璃总量', |
| | | startCell: '目标层号', |
| | | endCell: '预留层号', |
| | | begin: '开始', |
| | | finish: '完成', |
| | | uncar: '未上车', |
| | | inkage: '进片', |
| | | successfullyprocessed: '任务成功处理', |
| | | psuccessfullyprocessed: '是否进行任务成功处理?', |
| | | taskfailure: '任务失败处理', |
| | | ptaskfailure: '是否进行任务失败处理?', |
| | | totallogarithms: '总对数', |
| | | numberpairs: '配对数', |
| | | numberoccupied: '占用格子数', |
| | | totalfurnaces: '总炉数', |
| | | cagesnumber: '笼内数量', |
| | | slotnumber: '占有格子数', |
| | | progress: '进度%', |
| | | whethersame: '是否相同', |
| | | same: '相同', |
| | | notsame: '不相同', |
| | | partask: '任务重置', |
| | | partasks: '是否任务重置?', |
| | | empty: '默认空任务', |
| | | historicaltasks: '历史任务', |
| | | cagedetails: '笼内详情', |
| | | inkageEntity: '进片联机状态:', |
| | | requestEntity: '进片请求状态:', |
| | | mesReplyEntity: '启动命令:', |
| | | outInkageEntity: '出片联机状态:', |
| | | outRequestEntity: '出片请求状态:', |
| | | breakagn: '未破损', |
| | | lacknumber: '缺片数量', |
| | | processcard: '指定流程卡', |
| | | filminformation: '人工下片信息', |
| | | currentglassinformation: '扫码枪当前玻璃信息', |
| | | printlabels: '打印标签', |
| | | deleteTask: '结束工程', |
| | | pdeleteTask: '是否结束工程?', |
| | | searchlayout: 'Non-tempered process card inquiry', |
| | | fullfurnaces: 'Number of full furnaces', |
| | | specifiedproject: 'The currently specified project', |
| | | undesignate: '取消钢化', |
| | | allnumber: 'Total quantity', |
| | | numbercages: 'Number of cages', |
| | | missingquantity: 'Missing quantity', |
| | | breakquantity: 'Breakage/Take Away quantity', |
| | | ceng: 'layer', |
| | | cageinformation: 'Sorter information', |
| | | productionqueue: 'Production queue', |
| | | outputglassID: 'Output glass ID', |
| | | startposition: 'Start position', |
| | | targetlocation: 'Target Position', |
| | | trips: 'Train number', |
| | | number: 'Serial Number', |
| | | taskstatus: 'Task state', |
| | | filmenter: 'Waiting for input glass', |
| | | infilm: 'In progress', |
| | | endtask: 'End task', |
| | | completetask: 'Complete the task', |
| | | intoglassid: 'Input glass ID', |
| | | line: 'Wire', |
| | | Usage: 'Usage rate', |
| | | free: 'Free(pieces)', |
| | | addcage: 'Add information on sorter', |
| | | glassIDa: 'Glass ID:', |
| | | glassID: 'Glass ID', |
| | | inglassID: 'Please enter the glass ID', |
| | | pieceingrid: 'The order of small pieces within the grid', |
| | | pieceingrida: 'The order of small pieces within the grid:', |
| | | inpieceingrid: 'Please enter the order of small pieces within the grid', |
| | | cardnumber: 'Process card number', |
| | | cardnumbera: 'Process card number:', |
| | | incardnumber: 'Please enter the process card number', |
| | | typeglass: 'Glass type', |
| | | typeglassa: 'Glass type:', |
| | | intypeglass: 'Please enter the glass type', |
| | | width: 'Width', |
| | | widtha: 'Width:', |
| | | inwidth: 'Please enter width', |
| | | height: 'Height', |
| | | heighta: 'Height:', |
| | | inheight: 'Please enter height', |
| | | coatingtypes: 'Coating types', |
| | | thickness: 'Thickness', |
| | | thicknessa: 'Thickness:', |
| | | inthickness: 'Please enter the thickness', |
| | | layoutID: 'Drawing ID of loading for tempering furnace', |
| | | layoutIDa: 'Drawing ID of loading for tempering furnace:', |
| | | inlayoutID: 'Please enter the drawing ID of loading for tempering furnace', |
| | | picturesequence: 'Drawing sequence of loading for tempering furnace', |
| | | picturesequencea: 'Drawing sequence of loading for tempering furnace:', |
| | | inpicturesequence: 'Please enter the drawing sequence of loading for tempering furnace', |
| | | startstatus: 'Start status', |
| | | startstatusa: 'Start status:', |
| | | instartstatus: 'Please enter the enabled status', |
| | | glassgaps: 'Glass gap', |
| | | glassgapsa: 'Glass gap:', |
| | | inglassgaps: 'Please enter the glass gap', |
| | | sure: 'Confirm', |
| | | cancel: 'Cancel', |
| | | operate: 'Operate', |
| | | breakage: 'Breakage', |
| | | delete: 'Delete', |
| | | outfilm: 'Output glass', |
| | | cagetableID: 'Sorter table ID', |
| | | cagenumber: 'Sorter number', |
| | | gridnumber: 'Grid number', |
| | | gridnumbera: 'Grid number:', |
| | | grid: 'Please enter a grid number', |
| | | enable: 'Enabled', |
| | | disable: 'Disabled', |
| | | remainingwidth: 'Remaining width', |
| | | add: 'Add', |
| | | sheetID: 'Tempered small piece information table ID', |
| | | processcards: 'Process card', |
| | | processcardtype: 'Process card glass type', |
| | | acceptshorizontal: 'Does tempering accept horizontal placement', |
| | | xcoordinates: 'x coordinate', |
| | | ycoordinates: 'Y coordinate', |
| | | rotationangle: 'Rotation angle (counterclockwise)', |
| | | state: 'Status', |
| | | takeout: 'Take away', |
| | | deletemessage: 'Do you want to delete this message?', |
| | | prompt: 'Prompt', |
| | | yes: 'Yes', |
| | | accept: 'Accept', |
| | | noaccept: 'Not accept', |
| | | filmcomplete: 'Glass output completed', |
| | | waiting: 'Waiting', |
| | | broke: 'Is this information damaged?', |
| | | brokeb: 'Do you need to delete the message?', |
| | | outfil: 'Whether the film is released or not?', |
| | | inputid: 'Please enter the glass ID', |
| | | search: 'Search', |
| | | tabid: 'Dali film cage details table ID', |
| | | tid: 'Device ID', |
| | | tida: 'Device ID:', |
| | | fin: 'Whether or not the task was completed?', |
| | | sureadd: 'Confirm the addition', |
| | | sureadda: 'Whether to confirm the addition?', |
| | | zailong: 'In a cage', |
| | | rengongxp: 'Artificial filming', |
| | | up: 'Previous', |
| | | down: 'Next', |
| | | now: 'The current page is displayed', |
| | | tit: 'data', |
| | | temperingqueries: 'Tempering queries', |
| | | specifytempering: 'Specify a furnace', |
| | | specifyout: '指定人工出片', |
| | | specifyengineerid: 'Specify the project', |
| | | projectnumber: 'Project number', |
| | | layoutnumber: 'Drawing number of loading for tempering furnace', |
| | | numberglasses: 'Number of glasses', |
| | | specifytemperinga: '请确认设备是否已关闭MES联机?', |
| | | temperedswitch: 'Tempered switch', |
| | | dutyinformation: 'Duty information', |
| | | process: 'Process', |
| | | team: 'Team', |
| | | basic: 'equipment', |
| | | makesure: 'Confirm the save', |
| | | temperingtotal: 'Number of tempering furnaces:', |
| | | glasstotal: 'Total number of glasses:', |
| | | Labelprinting: '标签打印', |
| | | Schedulingswitch: '调度开关', |
| | | }, |
| | | workOrder: { |
| | | upnumber: '上片位编号', |
| | | coatingtypesbe: '原片膜系', |
| | | glassID: 'Glass ID', |
| | | height: 'Height', |
| | | width: 'Width', |
| | | thickness: 'Thickness', |
| | | coatingtypes: 'Coating types', |
| | | productionsequence: 'Production sequence', |
| | | cardnumber: 'Process card number', |
| | | operate: 'Operate', |
| | | messagedamaged: 'Is this information damaged?', |
| | | prompt: 'Prompt', |
| | | yes: 'Yes', |
| | | cancel: 'Cancel', |
| | | takemessage: 'Do you need to delete the message?', |
| | | breakage: 'Breakage', |
| | | takeout: 'Take away', |
| | | glasstype: 'Glass type', |
| | | line: 'Wire', |
| | | status: 'Status', |
| | | time: 'Time period', |
| | | cway: 'Please select a route', |
| | | cstate: 'Please select a status', |
| | | edgingone: 'Edging a line', |
| | | edgingtwo: 'Edging two lines', |
| | | nedging: 'Unedging', |
| | | edging: 'Edging', |
| | | finedging: 'has been edging', |
| | | }, |
| | | processCard: { |
| | | intofurnace: 'Entering the furnace', |
| | | beforefurnace: 'Before entering the furnace', |
| | | outfurnace: 'Glass finished from tempering furnace', |
| | | print: 'Take away the print', |
| | | printing: 'print', |
| | | projectnumber: 'Please enter the project number', |
| | | inquire: 'Inquire', |
| | | project: 'Project number', |
| | | awayprocess: 'Take away the process', |
| | | awayequipment: 'Take away the equipment', |
| | | awayteam: 'Take away the crew', |
| | | flowcard: 'Process card', |
| | | layer: 'Layer number', |
| | | temperinglayout: 'Heat number', |
| | | temperingfeed: 'Preface', |
| | | width: 'Width', |
| | | height: 'Height', |
| | | thickness: 'Thickness', |
| | | glasstakeout: 'Glass take away list', |
| | | layoutID: 'Drawing ID of loading for tempering furnace', |
| | | glassID: 'Glass ID', |
| | | }, |
| | | reportWork: { |
| | | details: 'Drop off details', |
| | | filming: 'Artificial filming', |
| | | printing: 'Automatic printing', |
| | | cenumber: 'Number of layers', |
| | | artificialorder: 'The number of pieces under artificial order', |
| | | processcard: 'Print the process card', |
| | | printlabels: 'Print labels', |
| | | information: 'Landing information', |
| | | cstation: 'Please select a desk', |
| | | all: 'all', |
| | | timeperiod: 'Time period', |
| | | stationnumber: 'Station number', |
| | | order: 'order', |
| | | filminformation: 'Manual film information', |
| | | glassmation: 'Artificial film current glass information', |
| | | barcodescanner: 'The current glass information of the barcode scanner', |
| | | lowerbit: 'Unloading station', |
| | | shelfnumber: 'Rack number', |
| | | cardnumber: 'Process card number', |
| | | totalquantity: 'Total quantity', |
| | | beendropped: 'Quantity of unloaded glass', |
| | | state: 'Status', |
| | | devicenumber: 'Equipment No.', |
| | | startstatus: 'Start status', |
| | | enable: 'Start', |
| | | unenable: 'Unstart', |
| | | operate: 'Operate', |
| | | bindingshelves: 'Assigned rack', |
| | | clear: 'Clear', |
| | | workstation: 'Station No.', |
| | | shelfnumbera: 'Rack number:', |
| | | cardnumbera: 'Process card number:', |
| | | incardnumber: 'Please select the process card number', |
| | | clearglass: 'Clear the glass on the shelf', |
| | | sure: 'Operate', |
| | | cancel: 'Cancel', |
| | | glassinformation: 'Glass information', |
| | | glassID: 'Glass ID', |
| | | coatingtypes: 'Coating types', |
| | | thickness: 'Thickness', |
| | | width: 'Width', |
| | | height: 'Height', |
| | | }, |
| | | productStock: { |
| | | configName: '配置名', |
| | | configCode: '配置代码', |
| | | configValue: '配置值', |
| | | addusers: 'Add user', |
| | | username: 'User name', |
| | | usernamea: 'User name:', |
| | | inusername: 'Enter one user name', |
| | | role: 'Role', |
| | | rolea: 'Role:', |
| | | inrole: 'Please select a role', |
| | | test: 'Test', |
| | | admin: 'Administrator', |
| | | operate: 'Operate', |
| | | resetpassword: 'Reset password', |
| | | exit: 'Edit', |
| | | delete: 'Delete', |
| | | prompt: 'Prompt', |
| | | repassword: 'Do you want to reset the user password?', |
| | | yes: 'Yes', |
| | | cancel: 'Cancel', |
| | | reusername: 'Modify Users', |
| | | addusername: 'Add user', |
| | | password: 'Password:', |
| | | sure: 'Confirm', |
| | | inpassword: 'Please input a password', |
| | | deusername: 'Do you want to delete the user?', |
| | | }, |
| | | customer: { |
| | | addmenua: 'Add secondary menus', |
| | | addmenu: 'Add a first-level menu', |
| | | firstmenu: 'First level menu bar', |
| | | firstmenuname: 'The name of the first-level menu:', |
| | | link: 'Link', |
| | | inlink: 'Please enter the link', |
| | | linka: 'Link:', |
| | | sort: 'Sort', |
| | | insort: 'Please enter sorting', |
| | | sorta: 'Sort:', |
| | | operate: 'Operate', |
| | | exit: 'Edit', |
| | | delete: 'Delete', |
| | | semenu: 'Secondary menu bar', |
| | | semenuname: 'Secondary menu name:', |
| | | menu: 'Menu bar:', |
| | | inmenu: 'Please enter a menu name', |
| | | sure: 'Confirm', |
| | | cancel: 'Cancel', |
| | | exmene: 'Modify the first-level menu', |
| | | exmenea: 'Modify the secondary menu', |
| | | yes: 'Yes', |
| | | demenu: 'Do you want to delete this menu?', |
| | | prompt: 'Prompt', |
| | | }, |
| | | delivery: { |
| | | addrole: 'Add Role', |
| | | editrole: 'Modify role', |
| | | role: 'Role', |
| | | rolea: 'Role:', |
| | | inrole: 'Please enter the role', |
| | | operate: 'Operate', |
| | | edit: 'Edit', |
| | | delete: 'Delete', |
| | | yes: 'Yes', |
| | | sure: 'Confirm', |
| | | cancel: 'Cancel', |
| | | derole: 'Do you want to delete this role', |
| | | prompt: 'Prompt', |
| | | choice: 'Menu permissions:', |
| | | inchoice: 'Please select Menu Permissions', |
| | | }, |
| | | replenish: { |
| | | patchManagement: 'Mesh management', |
| | | }, |
| | | rework: { |
| | | reworkManagement: 'Rework management', |
| | | addRework: "Rework added ", |
| | | }, |
| | | role: { |
| | | id: 'ID', |
| | | characterHomepage: 'Character Home', |
| | | }, |
| | | user: { |
| | | userId: 'User ID', |
| | | userHomepage: 'User Home', |
| | | }, |
| | | orderBasicData: { |
| | | order: 'orders', |
| | | orderType: 'The type of order', |
| | | }, |
| | | machine: { |
| | | basicId: 'Device number', |
| | | basicName: 'The name of the device', |
| | | basicCategory: 'The process in which it is located', |
| | | tempering: 'Steel', |
| | | }, |
| | | report: { |
| | | productionReport: 'Production reports', |
| | | workInProgressReport: 'WIP report', |
| | | }, |
| | | productionBasicData: { |
| | | basicDataQuery: 'Basic data query', |
| | | }, |
| | | mainIngredient: { |
| | | materialInformation: 'Material information', |
| | | }, |
| | | mainIngredientStock: { |
| | | materialName: 'The name of the item', |
| | | createTime: 'Return date', |
| | | }, |
| | | large: { |
| | | load: 'load', |
| | | edg: 'edg', |
| | | temp: 'temp', |
| | | hollow: 'hollow', |
| | | oneFinish: 'oneFinish', |
| | | twoFinish: 'twoFinish', |
| | | oneunFinish: 'oneunFinish', |
| | | twounFinish: 'twounFinish', |
| | | ondDamage: 'ondDamage', |
| | | percent: 'Percent', |
| | | time: 'The time of the break', |
| | | tionnumber: 'Order number', |
| | | jobnumber: 'Job number', |
| | | productionnumber: 'The production order number', |
| | | cardnumber: 'Process card number', |
| | | projectname: 'The name of the project', |
| | | batch: 'batch', |
| | | detailID: 'Detail ID', |
| | | building: 'Building No', |
| | | serialnumber: 'Order serial number', |
| | | productname: 'Product name', |
| | | serial: 'Process validation number', |
| | | slicemarker: 'Frame marker (position)', |
| | | numberpatches: 'Number of patches', |
| | | width: 'Width', |
| | | height: 'Height', |
| | | shape: 'Shape', |
| | | responsibleprocess: 'Responsible process', |
| | | process: 'This process', |
| | | numberfractions: 'The number of unfilled fractions', |
| | | breakreason: 'The reason for the break', |
| | | breaktype: 'Sub-break type', |
| | | responsiblepersonnel: 'Responsible Personnel', |
| | | responsiblequipment: 'Responsible Equipment', |
| | | responsibleteam: 'Responsible team', |
| | | area: 'Sub-broken area', |
| | | inspector: 'Quality inspector', |
| | | operate: 'Operate', |
| | | mes: 'Detail', |
| | | projectnumber: 'The project order number', |
| | | brokeno: 'The report is broken and not filled', |
| | | close: 'Shut down', |
| | | orderId: 'Order ID', |
| | | order: '订单详情', |
| | | customerName: 'The name of the customer', |
| | | project: 'The name of the project', |
| | | are: 'are', |
| | | quantity: 'quantity', |
| | | warehousing: 'State', |
| | | deliveryDate: 'Delivery time', |
| | | notstocked: 'Not yet in stock', |
| | | inboundstatus: 'Partial inventory status', |
| | | allstatus: 'All in stock status', |
| | | completedquantity: 'Completed quantity', |
| | | scrapquantity: 'Scrap Quantity', |
| | | number: 'Quantity', |
| | | method: 'Processing method', |
| | | innumber: 'Quantity already entered', |
| | | productstatus: 'Production status', |
| | | right: 'normal', |
| | | stop: 'termination', |
| | | inquire: 'query', |
| | | starttime: 'Start Time', |
| | | endtime: 'End Time', |
| | | loading: 'In the process of uploading:', |
| | | brokenNum: 'brokenNum', |
| | | inventory: 'inventory', |
| | | inventoryarea: 'inventoryarea', |
| | | shippedQuantity: 'shippedQuantity', |
| | | reportWorkQuantity: 'reportWorkQuantity', |
| | | reportWorkQuantityCount: 'reporting_work_num_count', |
| | | processId: 'processId', |
| | | historicaltasks1: 'historicaltasks1', |
| | | historicaltasks2: 'historicaltasks2', |
| | | historicaltasks3: 'historicaltasks3', |
| | | historicaltasks4: 'historicaltasks4', |
| | | historicaltasks5: 'historicaltasks5', |
| | | historicaltasks6: 'historicaltasks6', |
| | | historicaltasks7: 'historicaltasks7', |
| | | order: 'order', |
| | | date: 'date', |
| | | countOutOne: 'countOutOne', |
| | | totalAreaOutOne: 'totalAreaOutOne', |
| | | countOutTwo: 'countOutTwo', |
| | | totalAreaOutTwo: 'totalAreaOutTwo', |
| | | countIn: 'countIn', |
| | | totalAreaIn: 'totalAreaIn', |
| | | countOut: 'countOut', |
| | | totalAreaOut: 'totalAreaOut', |
| | | hollowCountOutOne: 'hollowCountOutOne', |
| | | hollowTotalAreaOutOne: 'hollowTotalAreaOutOne', |
| | | countOut: 'countOut', |
| | | hollowCountOutTwo: 'hollowCountOutTwo', |
| | | }, |
| | | reportmanage: { |
| | | productiontime: 'production time', |
| | | starttime: 'Start Time', |
| | | endtime: 'End Time', |
| | | ctype: 'Please select type', |
| | | cstate: 'Please select the status', |
| | | cprocess: 'Please select the process', |
| | | all: 'All', |
| | | completed: 'Completed', |
| | | broke: 'Damaged', |
| | | takeout: 'Takeout', |
| | | dreportwork: 'Unreported work', |
| | | pendingwork: 'Pending job application', |
| | | reportwork: 'Reported work', |
| | | reportworked: 'Reported worked', |
| | | incise: 'slicing', |
| | | edging: 'edging', |
| | | steel: 'toughened', |
| | | inquire: 'query', |
| | | signingwork: 'Reporting for work', |
| | | reporteam: 'Report work team', |
| | | reportingequipment: 'Reporting equipment', |
| | | line: 'line', |
| | | process: 'production processes', |
| | | glassID: 'Glass ID', |
| | | projectnumber: 'Project number', |
| | | layoutID: 'Tempered layout ID', |
| | | type: 'type', |
| | | state: 'state', |
| | | processcards: 'Flow Card', |
| | | number: 'Serial Number', |
| | | layer: 'storey', |
| | | typebreakage: 'Damage type', |
| | | ptypebreakage: ' Please select the type of damage', |
| | | causebreakage: 'Reason for damage', |
| | | pcausebreakage: 'Please select the reason for the damage', |
| | | responsibleprocess: 'Responsibility Process', |
| | | responsiblepersonnel: 'Responsible personnel', |
| | | presponsiblepersonnel: 'Please enter the responsible personnel', |
| | | responsibleteam: 'Responsible team', |
| | | presponsibleteam: 'Please select the responsible team', |
| | | responsibleequipment: 'Responsible equipment', |
| | | presponsibleequipment: 'Please select the responsible device', |
| | | remark: 'notes', |
| | | premark: 'Please enter a note', |
| | | }, |
| | | film: { |
| | | resetnumber: '架子号', |
| | | fail: '失败', |
| | | mes: 'Original film storage details', |
| | | warehousing: 'store', |
| | | pwarehousing: '入库请求', |
| | | wareout: '原片出库', |
| | | information: '是否出库该条信息?', |
| | | pwareout: '出库请求', |
| | | position: '吊装位:', |
| | | cposition: '请选择吊装位', |
| | | position1: '吊装位1', |
| | | position2: '吊装位2', |
| | | addglass: '原片信息', |
| | | operate: 'Operate', |
| | | exit: 'Edit', |
| | | delete: 'Delete', |
| | | outbound: 'Outbound', |
| | | deviceid: 'device ID', |
| | | enablestatea: 'Enable tagging', |
| | | disable: 'Disable', |
| | | start: 'Enable', |
| | | startslot: 'Start workstation', |
| | | endslot: 'Target workstation', |
| | | slotid: 'Grid ID', |
| | | slot: '格子号', |
| | | width: 'Width', |
| | | widtha: 'Width:', |
| | | inwidth: 'Please enter width', |
| | | height: 'Height', |
| | | inheight: 'Please enter height', |
| | | heighta: 'Height:', |
| | | thickness: 'Thickness', |
| | | inthickness: 'Please enter thickness', |
| | | thicknessa: 'Thickness:', |
| | | films: 'Films', |
| | | infilms: 'Please enter films', |
| | | filmsa: 'Films:', |
| | | createtime: 'Creation time', |
| | | remainquantity: 'Remaining Quantity', |
| | | thickremainquant: 'Remaining quantity of original film (sheets)', |
| | | thickremainquantity: 'Remaining quantity of original film (sheets):', |
| | | inquantity: 'Please enter the quantity', |
| | | quantitya: 'Number:', |
| | | enableid: 'Task ID', |
| | | originateslot: 'Starting grid', |
| | | endoriginateslot: '目标格子', |
| | | patternquantity: 'Number', |
| | | enabletype: 'Task Type', |
| | | enablestate: 'Workstation status', |
| | | finish: 'Completed', |
| | | unfinish: 'Incomplete', |
| | | dedelete: 'Do you want to delete this content?', |
| | | dedisable: 'Do you want to disable this content?', |
| | | deoutbound: 'Whether to release the content of this item from the warehouse?', |
| | | selectwarehousing: 'Please select the lifting position', |
| | | inwarehousing: 'Lifting position:', |
| | | warehousing1: 'Lifting position 1', |
| | | warehousing2: 'Lifting position 2', |
| | | starttime: 'Start Time', |
| | | endtime: 'End Time', |
| | | taskstatus: 'Status', |
| | | built: 'newly built', |
| | | execution: 'In progress', |
| | | tasktype: 'Task Type', |
| | | stocke: 'store', |
| | | dispatch: 'dispatch', |
| | | inquire: 'query', |
| | | station: 'station', |
| | | }, |
| | | Mounting: { |
| | | previewproject: 'Select Preview Project', |
| | | loadinglinea: 'Upper film line', |
| | | loadingline: 'Upper film line:', |
| | | inloadingline: 'Please select the upper film line', |
| | | oneloadingline: 'Line 1 on film', |
| | | twoloadingline: 'Line 2 on film', |
| | | waiting: 'Waiting', |
| | | pass: 'Pass', |
| | | setparameters: 'Set parameters', |
| | | project: 'Project number', |
| | | projecta: 'Project number:', |
| | | width: 'Width', |
| | | height: 'Height', |
| | | thickness: 'Thickness', |
| | | projectnumber: 'Project original piece number', |
| | | state: 'state', |
| | | createtime: 'Creation time', |
| | | all: 'Select All', |
| | | removalmethod: '请选择除膜方式', |
| | | removalmethodp: '除膜方式', |
| | | removalmethoda: '除膜方式:', |
| | | noremoval: '不除膜', |
| | | removal: '除膜', |
| | | coarselyground: '粗磨', |
| | | finegrinding: '精磨', |
| | | }, |
| | | hellow: { |
| | | totalPairQuantitya: '任务总配对数', |
| | | pairQuantitya: '已出配对数', |
| | | waitingout: '等待出片', |
| | | finishout: '出片完成', |
| | | hollowSequence: '中空顺序', |
| | | isPair: '是否配对', |
| | | no: '否', |
| | | listFormula: '配方信息', |
| | | HollowGlass: '队列信息', |
| | | totalLayer: '总层数', |
| | | totalPairQuantity: '总配对数量', |
| | | pairQuantity: '已完成配对数量', |
| | | isForceList: '是否强制', |
| | | yesisForceList: '强制', |
| | | noisForceList: '非强制', |
| | | hollowCountOutOne: '中空一线玻璃数量', |
| | | hollowCountOutTwo: '中空二线玻璃数量', |
| | | hollowTotalAreaOutOne: '中空一线玻璃面积', |
| | | hollowTotalAreaOutTwo: '中空二线玻璃面积', |
| | | countIn: '钢化前大理片笼玻璃数量', |
| | | countOut: '钢化玻璃数量', |
| | | countOutOne: '切割一线玻璃数量', |
| | | countOutTwo: '切割二线玻璃数量', |
| | | totalAreaIn: '钢化前大理片笼玻璃面积', |
| | | totalAreaOut: '钢化玻璃面积', |
| | | totalAreaOutOne: '切割一线玻璃面积', |
| | | totalAreaOutTwo: '切割二线玻璃面积', |
| | | freeone: '一线空闲状态:', |
| | | freetwo: '二线空闲状态:', |
| | | freethree: '三线空闲状态:', |
| | | casFour: '气体4', |
| | | casFourb: '气体4:', |
| | | casFoura: '请选择气体4', |
| | | casOne: '气体1', |
| | | casOneb: '气体1:', |
| | | casOnea: '请选择气体1', |
| | | casThree: '气体3', |
| | | casThreeb: '气体3:', |
| | | casThreea: '请选择气体3', |
| | | casTwo: '气体2', |
| | | casTwob: '气体2:', |
| | | casTwoa: '请选择气体2', |
| | | Y: '有', |
| | | F: '无', |
| | | frameFour: '间隔板4', |
| | | frameFourb: '间隔板4:', |
| | | frameFoura: '请输入间隔板4', |
| | | frameOne: '间隔板1', |
| | | frameOneb: '间隔板1:', |
| | | frameOnea: '请输入间隔板1', |
| | | frameThree: '间隔板3', |
| | | frameThreeb: '间隔板3:', |
| | | frameThreea: '请输入间隔板3', |
| | | frameTwo: '间隔板2', |
| | | frameTwob: '间隔板2:', |
| | | frameTwoa: '请输入间隔板2', |
| | | intervalFrameHeightOne: '间隔框高度1', |
| | | intervalFrameHeightTwo: '间隔框高度2', |
| | | intervalFrameHeightThree: '间隔框高度3', |
| | | intervalFrameHeightFour: '间隔框高度4', |
| | | intervalFrameHeightaOne: '请输入间隔框高度1', |
| | | intervalFrameHeightaTwo: '请输入间隔框高度2', |
| | | intervalFrameHeightaThree: '请输入间隔框高度3', |
| | | intervalFrameHeightaFour: '请输入间隔框高度4', |
| | | intervalFrameHeightbOne: '间隔框高度1:', |
| | | intervalFrameHeightbTwo: '间隔框高度2:', |
| | | intervalFrameHeightbThree: '间隔框高度3:', |
| | | intervalFrameHeightbFour: '间隔框高度4:', |
| | | intervalFrameTypeOne: '间隔框类型1', |
| | | intervalFrameTypeTwo: '间隔框类型2', |
| | | intervalFrameTypeThree: '间隔框类型3', |
| | | intervalFrameTypeFour: '间隔框类型4', |
| | | intervalFrameTypecOne: '请选择间隔框类型1', |
| | | intervalFrameTypecTwo: '请选择间隔框类型2', |
| | | intervalFrameTypecThree: '请选择间隔框类型3', |
| | | intervalFrameTypecFour: '请选择间隔框类型4', |
| | | intervalFrameTypedOne: '间隔框类型1:', |
| | | intervalFrameTypedTwo: '间隔框类型2:', |
| | | intervalFrameTypedThree: '间隔框类型3:', |
| | | intervalFrameTypedFour: '间隔框类型4:', |
| | | intervalFrameTypea: 'tps胶', |
| | | intervalFrameTypeb: '铝间隔条', |
| | | intervalFrameWidthOne: '间隔框宽度1', |
| | | intervalFrameWidthTwo: '间隔框宽度2', |
| | | intervalFrameWidthThree: '间隔框宽度3', |
| | | intervalFrameWidthFour: '间隔框宽度4', |
| | | intervalFrameWidthaOne: '请输入间隔框宽度1', |
| | | intervalFrameWidthaTwo: '请输入间隔框宽度2', |
| | | intervalFrameWidthaThree: '请输入间隔框宽度3', |
| | | intervalFrameWidthaFour: '请输入间隔框宽度4', |
| | | intervalFrameWidthbOne: '间隔框宽度1:', |
| | | intervalFrameWidthbTwo: '间隔框宽度2:', |
| | | intervalFrameWidthbThree: '间隔框宽度3:', |
| | | intervalFrameWidthbFour: '间隔框宽度4:', |
| | | sealInsert: '密封嵌入', |
| | | sealInsertb: '密封嵌入:', |
| | | sealInserta: '请输入密封嵌入', |
| | | hollowformula: '中空配方', |
| | | hollowformuldet: '是否删除该中空配方?', |
| | | hollowtaskdet: '是否删除该任务?', |
| | | taskdet: '删除任务', |
| | | edithollowformula: '修改中空配方', |
| | | phollowformula: '请选择中空配方', |
| | | hollowformulp: '中空配方:', |
| | | bottomRemove: '下侧除膜量:', |
| | | bottomRemovep: '下侧除膜量', |
| | | bottomRemovea: '请输入下侧除膜量', |
| | | topRemove: '上侧除膜量:', |
| | | topRemovep: '上侧除膜量', |
| | | topRemovea: '请输入上侧除膜量', |
| | | leftRemove: '左侧除膜量:', |
| | | leftRemovep: '左侧除膜量', |
| | | leftRemovea: '请输入左侧除膜量', |
| | | rightRemove: '右侧除膜量:', |
| | | rightRemovep: '右侧除膜量', |
| | | rightRemovea: '请输入右侧除膜量', |
| | | formulaNamep: '配方名', |
| | | formulaName: '配方名:', |
| | | formulaNamea: '请输入配方名', |
| | | stopproject: '暂停任务', |
| | | pstopproject: '是否暂停任务?', |
| | | reviewproject: '预览工程', |
| | | line: '线路', |
| | | linea: '线路:', |
| | | line1: '线路一', |
| | | line2: '线路二', |
| | | line3: '线路三', |
| | | createtask: '创建任务', |
| | | starttask: '开始任务', |
| | | pstarttask: '是否开始任务?', |
| | | stoptask: '停止任务', |
| | | pstoptask: '是否停止任务?', |
| | | currenttask: '当前任务:', |
| | | claimednumber: '已领取配对数量:', |
| | | linenumber: '进入中空线数量:', |
| | | order: '出片顺序', |
| | | flowCardId: '流程卡', |
| | | thickness: '厚度', |
| | | coatingtypes: '膜系', |
| | | layer: '层数', |
| | | height: '长', |
| | | width: '宽', |
| | | state: '状态', |
| | | cardnumber: '流程卡号', |
| | | cardnumbera: '流程卡号:', |
| | | layernumber: '层号', |
| | | totalnumber: '总片数', |
| | | pairsnumber: '已配对数量', |
| | | missingnumber: '缺片数量', |
| | | damagenumber: '破损数量', |
| | | operate: '操作', |
| | | claimquest: '领取任务', |
| | | pclaimquest: '是否领取任务?', |
| | | missingfilms: '缺片详情', |
| | | forcedfilming: '强制出片', |
| | | pforcedfilming: '是否强制出片?', |
| | | brokenpieces: '破损片数', |
| | | realpieces: '实际片数', |
| | | route: '路线:', |
| | | croute: '请选择路线', |
| | | ptotalpairQuantity: '总配对数量:', |
| | | cpairQuantity: '请输入总配对数量', |
| | | schedulingswitch: '调度开关', |
| | | }, |
| | | screendisplay: { |
| | | pwidth: '请输入宽度', |
| | | pheight: '请输入高度', |
| | | upnumber: '上片数量', |
| | | } |
| | | } |
| | | } |
| | |
| | | createTime :'返库日期', |
| | | }, |
| | | large:{ |
| | | load:'切割', |
| | | edg:'磨边', |
| | | temp:'钢化', |
| | | hollow:'中空', |
| | | oneFinish:'一线完成', |
| | | twoFinish:'二线完成', |
| | | oneunFinish:'一线未完成', |
| | | twounFinish:'二线未完成', |
| | | ondDamage:'一线破损', |
| | | percent:'进度百分比', |
| | | time: '次破时间', |
| | | tionnumber: '订单号', |
| | |
| | | <script setup> |
| | | import { onBeforeUnmount, onMounted, onUnmounted, ref, computed } from "vue"; |
| | | import { onBeforeUnmount, onMounted, onUnmounted, ref, computed, nextTick } from "vue"; |
| | | import { useRouter } from "vue-router" |
| | | import { host, WebSocketHost } from '@/utils/constants' |
| | | import request from "@/utils/request" |
| | |
| | | import dayjs from 'dayjs'; |
| | | import { ElMessage } from 'element-plus' |
| | | import { useI18n } from 'vue-i18n' |
| | | import * as echarts from 'echarts'; |
| | | |
| | | const load = ref(true) |
| | | const edg = ref(true) |
| | | const temp = ref(true) |
| | | const hollow = ref(true) |
| | | const router = useRouter() |
| | | const blinda = ref(false) |
| | | const blindb = ref(false) |
| | |
| | | const edgTwoTasks = ref([]) |
| | | const engineeringOne = ref([]) |
| | | const engineeringTwo = ref([]) |
| | | |
| | | const socketUrl1 = `ws://${WebSocketHost}:${host}/api/cacheGlass/api/talk/largenScreen`; |
| | | const handleMessage1 = (data) => { |
| | | edgOneTasks.value = data.edgOneTasks[0]; |
| | |
| | | numBoxes2.value = edgTwoTasks.value.length; |
| | | boxStart2(); |
| | | } |
| | | const pieChartVOS = ref([]); |
| | | pieChartVOS.value = data.pieChartVOS[0]; |
| | | |
| | | let oneFinish = ref(); |
| | | let twoFinish = ref(); |
| | | let oneunFinish = ref(); |
| | | let twounFinish = ref(); |
| | | if (load.value) { |
| | | oneFinish = pieChartVOS.value[0].oneCompletedQuantity; |
| | | twoFinish = pieChartVOS.value[0].twoCompletedQuantity; |
| | | oneunFinish = pieChartVOS.value[0].oneUncompletedQuantity; |
| | | twounFinish = pieChartVOS.value[0].twoUncompletedQuantity; |
| | | } else { |
| | | oneFinish = pieChartVOS.value[0].oneCompletedArea; |
| | | twoFinish = pieChartVOS.value[0].twoCompletedArea; |
| | | oneunFinish = pieChartVOS.value[0].oneUncompletedArea; |
| | | twounFinish = pieChartVOS.value[0].twoUncompletedArea; |
| | | } |
| | | |
| | | const chartDomOne = chartOne.value; |
| | | if (!chartDomOne) { |
| | | console.error('图表容器未找到'); |
| | | return; |
| | | } |
| | | const myChartOne = echarts.init(chartDomOne); |
| | | const optionOne = { |
| | | title: { |
| | | text: t('large.load'), |
| | | subtext: '', |
| | | left: 'right' |
| | | }, |
| | | tooltip: { |
| | | trigger: 'item' |
| | | }, |
| | | legend: { |
| | | orient: 'vertical', |
| | | left: 'left' |
| | | }, |
| | | series: [ |
| | | { |
| | | name: '', |
| | | type: 'pie', |
| | | radius: '50%', |
| | | data: [ |
| | | { value: oneFinish, name: t('large.oneFinish') }, |
| | | { value: twoFinish, name: t('large.twoFinish') }, |
| | | { value: oneunFinish, name: t('large.oneunFinish') }, |
| | | { value: twounFinish, name: t('large.twounFinish') }, |
| | | ], |
| | | emphasis: { |
| | | itemStyle: { |
| | | shadowBlur: 10, |
| | | shadowOffsetX: 0, |
| | | shadowColor: 'rgba(0, 0, 0, 0.5)' |
| | | } |
| | | } |
| | | } |
| | | ], |
| | | graphic: [ |
| | | { |
| | | type: 'rect', |
| | | left: 'center', |
| | | top: 0, |
| | | shape: { |
| | | width: 80, |
| | | height: 30 |
| | | }, |
| | | style: { |
| | | text: load.value == true ? t('large.quantity') : t('large.are'), |
| | | fill: '#5470C6', |
| | | stroke: '#000', |
| | | lineWidth: 1 |
| | | }, |
| | | onclick: function () { |
| | | load.value = !load.value; |
| | | } |
| | | } |
| | | ] |
| | | }; |
| | | |
| | | myChartOne.setOption(optionOne); |
| | | }; |
| | | let socket2 = null; |
| | | const temperingTaskType = ref([]) |
| | |
| | | numBoxes4.value = 0; |
| | | } |
| | | temperingGlassInfoInList.value = data.temperingGlassInfoInList[0]; |
| | | // if (numBoxes4.value != temperingGlassInfoOutList.value) { |
| | | // numBoxes4.value = temperingGlassInfoOutList.value; |
| | | // boxStart3(); |
| | | // } |
| | | const pieChartVOS = ref([]); |
| | | pieChartVOS.value = data.pieChartVOS[0]; |
| | | let oneFinish = ref(); |
| | | let ondDamage = ref(); |
| | | let oneunFinish = ref(); |
| | | if (temp.value) { |
| | | oneFinish = pieChartVOS.value[0].oneCompletedQuantity; |
| | | ondDamage = pieChartVOS.value[0].oneDamageQuantity; |
| | | oneunFinish = pieChartVOS.value[0].oneUncompletedQuantity; |
| | | } else { |
| | | oneFinish = pieChartVOS.value[0].oneCompletedArea; |
| | | ondDamage = pieChartVOS.value[0].oneDamageArea; |
| | | oneunFinish = pieChartVOS.value[0].oneUncompletedArea; |
| | | } |
| | | |
| | | const chartDomOne = chartThree.value; |
| | | if (!chartDomOne) { |
| | | console.error('图表容器未找到'); |
| | | return; |
| | | } |
| | | const myChartOne = echarts.init(chartDomOne); |
| | | const optionOne = { |
| | | title: { |
| | | text: t('large.temp'), |
| | | subtext: '', |
| | | left: 'right' |
| | | }, |
| | | tooltip: { |
| | | trigger: 'item' |
| | | }, |
| | | legend: { |
| | | orient: 'vertical', |
| | | left: 'left' |
| | | }, |
| | | series: [ |
| | | { |
| | | name: '', |
| | | type: 'pie', |
| | | radius: '50%', |
| | | data: [ |
| | | { value: oneFinish, name: t('large.oneFinish') }, |
| | | { value: ondDamage, name: t('large.ondDamage') }, |
| | | { value: oneunFinish, name: t('large.oneunFinish') }, |
| | | ], |
| | | emphasis: { |
| | | itemStyle: { |
| | | shadowBlur: 10, |
| | | shadowOffsetX: 0, |
| | | shadowColor: 'rgba(0, 0, 0, 0.5)' |
| | | } |
| | | } |
| | | } |
| | | ], |
| | | graphic: [ |
| | | { |
| | | type: 'rect', |
| | | left: 'center', |
| | | top: 0, |
| | | shape: { |
| | | width: 80, |
| | | height: 30 |
| | | }, |
| | | style: { |
| | | text: temp.value == true ? t('large.quantity') : t('large.are'), |
| | | fill: '#5470C6', |
| | | stroke: '#000', |
| | | lineWidth: 1 |
| | | }, |
| | | onclick: function () { |
| | | temp.value = !temp.value; |
| | | } |
| | | } |
| | | ] |
| | | }; |
| | | |
| | | myChartOne.setOption(optionOne); |
| | | }; |
| | | let socket3 = null; |
| | | const bigStorageCageUsage = ref([]) |
| | | const socketUrl3 = `ws://${WebSocketHost}:${host}/api/cacheVerticalGlass/api/talk/largenScreen`; |
| | | const handleMessage3 = (data) => { |
| | | bigStorageCageUsage.value = data.bigStorageCageUsage[0]; |
| | | const pieChartVOS = ref([]); |
| | | pieChartVOS.value = data.pieChartVOS[0]; |
| | | let oneFinish = ref(); |
| | | let twoFinish = ref(); |
| | | let oneunFinish = ref(); |
| | | let twounFinish = ref(); |
| | | if (edg.value) { |
| | | oneFinish = pieChartVOS.value[0].oneCompletedQuantity; |
| | | twoFinish = pieChartVOS.value[0].twoCompletedQuantity; |
| | | oneunFinish = pieChartVOS.value[0].oneUncompletedQuantity; |
| | | twounFinish = pieChartVOS.value[0].twoUncompletedQuantity; |
| | | } else { |
| | | oneFinish = pieChartVOS.value[0].oneCompletedArea; |
| | | twoFinish = pieChartVOS.value[0].twoCompletedArea; |
| | | oneunFinish = pieChartVOS.value[0].oneUncompletedArea; |
| | | twounFinish = pieChartVOS.value[0].twoUncompletedArea; |
| | | } |
| | | |
| | | const chartDomOne = chartTwo.value; |
| | | if (!chartDomOne) { |
| | | console.error('图表容器未找到'); |
| | | return; |
| | | } |
| | | const myChartOne = echarts.init(chartDomOne); |
| | | const optionOne = { |
| | | title: { |
| | | text: t('large.edg'), |
| | | subtext: '', |
| | | left: 'right' |
| | | }, |
| | | tooltip: { |
| | | trigger: 'item' |
| | | }, |
| | | legend: { |
| | | orient: 'vertical', |
| | | left: 'left' |
| | | }, |
| | | series: [ |
| | | { |
| | | name: '', |
| | | type: 'pie', |
| | | radius: '50%', |
| | | data: [ |
| | | { value: oneFinish, name: t('large.oneFinish') }, |
| | | { value: twoFinish, name: t('large.twoFinish') }, |
| | | { value: oneunFinish, name: t('large.oneunFinish') }, |
| | | { value: twounFinish, name: t('large.twounFinish') }, |
| | | ], |
| | | emphasis: { |
| | | itemStyle: { |
| | | shadowBlur: 10, |
| | | shadowOffsetX: 0, |
| | | shadowColor: 'rgba(0, 0, 0, 0.5)' |
| | | } |
| | | } |
| | | } |
| | | ], |
| | | graphic: [ |
| | | { |
| | | type: 'rect', |
| | | left: 'center', |
| | | top: 0, |
| | | shape: { |
| | | width: 80, |
| | | height: 30 |
| | | }, |
| | | style: { |
| | | text: edg.value == true ? t('large.quantity') : t('large.are'), |
| | | fill: '#5470C6', |
| | | stroke: '#000', |
| | | lineWidth: 1 |
| | | }, |
| | | onclick: function () { |
| | | edg.value = !edg.value; |
| | | } |
| | | } |
| | | ] |
| | | }; |
| | | |
| | | myChartOne.setOption(optionOne); |
| | | }; |
| | | let socket4 = null; |
| | | const hollowBigStorageCageUsage = ref([]) |
| | | const socketUrl4 = `ws://${WebSocketHost}:${host}/api/hollowGlass/api/talk/largenScreen`; |
| | | const handleMessage4 = (data) => { |
| | | hollowBigStorageCageUsage.value = data.hollowBigStorageCageUsage[0]; |
| | | const pieChartVOS = ref([]); |
| | | pieChartVOS.value = data.pieChartVOS[0]; |
| | | let oneFinish = ref(); |
| | | let twoFinish = ref(); |
| | | let oneunFinish = ref(); |
| | | let twounFinish = ref(); |
| | | if (hollow.value) { |
| | | oneFinish = pieChartVOS.value[0].oneCompletedQuantity; |
| | | twoFinish = pieChartVOS.value[0].twoCompletedQuantity; |
| | | oneunFinish = pieChartVOS.value[0].oneUncompletedQuantity; |
| | | twounFinish = pieChartVOS.value[0].twoUncompletedQuantity; |
| | | } else { |
| | | oneFinish = pieChartVOS.value[0].oneCompletedArea; |
| | | twoFinish = pieChartVOS.value[0].twoCompletedArea; |
| | | oneunFinish = pieChartVOS.value[0].oneUncompletedArea; |
| | | twounFinish = pieChartVOS.value[0].twoUncompletedArea; |
| | | } |
| | | |
| | | const chartDomOne = chartFour.value; |
| | | if (!chartDomOne) { |
| | | console.error('图表容器未找到'); |
| | | return; |
| | | } |
| | | const myChartOne = echarts.init(chartDomOne); |
| | | const optionOne = { |
| | | title: { |
| | | text: t('large.hollow'), |
| | | subtext: '', |
| | | left: 'right' |
| | | }, |
| | | tooltip: { |
| | | trigger: 'item' |
| | | }, |
| | | legend: { |
| | | orient: 'vertical', |
| | | left: 'left' |
| | | }, |
| | | series: [ |
| | | { |
| | | name: '', |
| | | type: 'pie', |
| | | radius: '50%', |
| | | data: [ |
| | | { value: oneFinish, name: t('large.oneFinish') }, |
| | | { value: twoFinish, name: t('large.twoFinish') }, |
| | | { value: oneunFinish, name: t('large.oneunFinish') }, |
| | | { value: twounFinish, name: t('large.twounFinish') }, |
| | | ], |
| | | emphasis: { |
| | | itemStyle: { |
| | | shadowBlur: 10, |
| | | shadowOffsetX: 0, |
| | | shadowColor: 'rgba(0, 0, 0, 0.5)' |
| | | } |
| | | } |
| | | } |
| | | ], |
| | | graphic: [ |
| | | { |
| | | type: 'rect', |
| | | left: 'center', |
| | | top: 0, |
| | | shape: { |
| | | width: 80, |
| | | height: 30 |
| | | }, |
| | | style: { |
| | | text: hollow.value == true ? t('large.quantity') : t('large.are'), |
| | | fill: '#5470C6', |
| | | stroke: '#000', |
| | | lineWidth: 1 |
| | | }, |
| | | onclick: function () { |
| | | hollow.value = !hollow.value; |
| | | } |
| | | } |
| | | ] |
| | | }; |
| | | |
| | | myChartOne.setOption(optionOne); |
| | | }; |
| | | let socket5 = null; |
| | | const productionVO = ref([]) |
| | | const socketUrl5 = `ws://${WebSocketHost}:${host}/api/cacheGlass/api/talk/largenScreenProduction`; |
| | | const handleMessage5 = (data) => { |
| | | productionVO.value = data.productionVO; |
| | | productionVO.value = data.productionVO[0]; |
| | | // 将原始数据转换为 ECharts 图表所需格式 |
| | | categories = productionVO.value.map(item => item.date); // 获取日期作为 x 轴 |
| | | totalAreaOutOne = productionVO.value.map(item => item.totalAreaOutOne); |
| | | countIn = productionVO.value.map(item => item.countIn); |
| | | totalAreaOutTwo = productionVO.value.map(item => item.totalAreaOutTwo); |
| | | totalAreaOut = productionVO.value.map(item => item.totalAreaOut); |
| | | countOut = productionVO.value.map(item => item.countOut); |
| | | hollowTotalAreaOutTwo = productionVO.value.map(item => item.hollowTotalAreaOutTwo); |
| | | hollowCountOutOne = productionVO.value.map(item => item.hollowCountOutOne); |
| | | countOutTwo = productionVO.value.map(item => item.countOutTwo); |
| | | hollowCountOutTwo = productionVO.value.map(item => item.hollowCountOutTwo); |
| | | hollowTotalAreaOutOne = productionVO.value.map(item => item.hollowTotalAreaOutOne); |
| | | totalAreaIn = productionVO.value.map(item => item.totalAreaIn); |
| | | countOutOne = productionVO.value.map(item => item.countOutOne); |
| | | //图表 |
| | | nextTick() // 确保 DOM 加载完成 |
| | | const chartDom = chartRef.value; |
| | | if (!chartDom) { |
| | | console.error('图表容器未找到'); |
| | | return; |
| | | } |
| | | |
| | | const myChart = echarts.init(chartDom); |
| | | |
| | | |
| | | const option = { |
| | | title: { text: '' }, |
| | | tooltip: { trigger: 'axis' }, |
| | | legend: { |
| | | data: [ |
| | | t('large.countOutOne'), |
| | | t('large.totalAreaOutOne'), |
| | | t('large.countOutTwo'), |
| | | t('large.totalAreaOutTwo'), |
| | | t('large.countIn'), |
| | | t('large.totalAreaIn') |
| | | ] |
| | | }, |
| | | grid: { left: '3%', right: '4%', bottom: '3%', containLabel: true }, |
| | | toolbox: { feature: { saveAsImage: {} } }, |
| | | xAxis: { |
| | | type: 'category', |
| | | boundaryGap: false, |
| | | data: categories // 这是日期数据 |
| | | }, |
| | | yAxis: { type: 'value' }, |
| | | series: [ |
| | | { name: t('large.countOutOne'), type: 'bar', data: countOutOne }, |
| | | { name: t('large.totalAreaOutOne'), type: 'bar', data: totalAreaOutOne }, |
| | | { name: t('large.countOutTwo'), type: 'bar', data: countOutTwo }, |
| | | { name: t('large.totalAreaOutTwo'), type: 'bar', data: totalAreaOutTwo }, |
| | | { name: t('large.countIn'), type: 'bar', data: countIn }, |
| | | { name: t('large.totalAreaIn'), type: 'bar', data: totalAreaIn } |
| | | ] |
| | | }; |
| | | |
| | | myChart.setOption(option); |
| | | |
| | | const chartDom2 = chartRef2.value; |
| | | if (!chartDom2) { |
| | | console.error('图表容器未找到'); |
| | | return; |
| | | } |
| | | const myChart2 = echarts.init(chartDom2); |
| | | const option2 = { |
| | | title: { text: '' }, |
| | | tooltip: { trigger: 'axis' }, |
| | | legend: { |
| | | data: [ |
| | | t('large.totalAreaOut'), |
| | | t('large.countOut'), |
| | | t('large.hollowTotalAreaOutOne'), |
| | | t('large.hollowCountOutOne'), |
| | | t('large.hollowCountOutTwo'), |
| | | t('large.hollowTotalAreaOutTwo') |
| | | ] |
| | | }, |
| | | grid: { left: '3%', right: '4%', bottom: '3%', containLabel: true }, |
| | | toolbox: { feature: { saveAsImage: {} } }, |
| | | xAxis: { |
| | | type: 'category', |
| | | boundaryGap: false, |
| | | data: categories // 这是日期数据 |
| | | }, |
| | | yAxis: { type: 'value' }, |
| | | series: [ |
| | | { name: t('large.totalAreaOut'), type: 'bar', data: totalAreaOut }, |
| | | { name: t('large.countOut'), type: 'bar', data: countOut }, |
| | | { name: t('large.hollowTotalAreaOutOne'), type: 'bar', data: hollowTotalAreaOutOne }, |
| | | { name: t('large.hollowCountOutOne'), type: 'bar', data: hollowCountOutOne }, |
| | | { name: t('large.hollowCountOutTwo'), type: 'bar', data: hollowCountOutTwo }, |
| | | { name: t('large.hollowTotalAreaOutTwo'), type: 'bar', data: hollowTotalAreaOutTwo } |
| | | ] |
| | | }; |
| | | |
| | | myChart2.setOption(option2); |
| | | }; |
| | | // 将原始数据转换为 ECharts 图表所需格式 |
| | | let categories = ref([]); // 获取日期作为 x 轴 |
| | | let totalAreaOutOne = ref([]); |
| | | let countIn = ref([]); |
| | | let totalAreaOutTwo = ref([]); |
| | | let totalAreaOut = ref([]); |
| | | let countOut = ref([]); |
| | | let hollowTotalAreaOutTwo = ref([]); |
| | | let hollowCountOutOne = ref([]); |
| | | let countOutTwo = ref([]); |
| | | let hollowCountOutTwo = ref([]); |
| | | let hollowTotalAreaOutOne = ref([]); |
| | | let totalAreaIn = ref([]); |
| | | let countOutOne = ref([]); |
| | | |
| | | const tableDatad = ref([]); |
| | | const patternUsage = async () => { |
| | |
| | | blindb.value = true; |
| | | patternUsage() |
| | | }; |
| | | const chartRef = ref(null) |
| | | const chartRef2 = ref(null) |
| | | const chartOne = ref(null) |
| | | const chartTwo = ref(null) |
| | | const chartThree = ref(null) |
| | | const chartFour = ref(null) |
| | | |
| | | |
| | | // 在组件挂载时设置默认时间范围 |
| | | onMounted(() => { |
| | | onMounted(async () => { |
| | | |
| | | boxStart(); |
| | | boxStart2(); |
| | | boxStart3(); |
| | |
| | | const startTime = endTime.subtract(1, 'day').startOf('minute'); // 当前时间的前一天,精确到分钟 |
| | | // 设置时间范围为 [开始时间, 结束时间] |
| | | // timeRange.value = [startTime.format('YYYY-MM-DD HH:mm:ss'), endTime.format('YYYY-MM-DD HH:mm:ss')]; |
| | | |
| | | }); |
| | | // onMounted(() => { |
| | | // socket = initializeWebSocket(socketUrl, handleMessage); |
| | |
| | | const numBoxes3 = ref(5); |
| | | const numBoxes4 = ref(1); |
| | | const speed = 0.1; |
| | | const maxX = 250; // 终点X坐标 |
| | | const maxY = -90; // 终点Y坐标 |
| | | const maxX = 200; // 终点X坐标 |
| | | const maxY = -75; // 终点Y坐标 |
| | | const maxX2 = 313; // 终点X坐标 |
| | | const maxY2 = -204; // 终点Y坐标 |
| | | const maxX3 = 125; // 终点X坐标 |
| | | const maxY3 = -105; // 终点Y坐标 |
| | | const maxX4 = 80; // 终点X坐标 |
| | | const maxY2 = -165; // 终点Y坐标 |
| | | const maxX3 = 95; // 终点X坐标 |
| | | const maxY3 = -85; // 终点Y坐标 |
| | | const maxX4 = 60; // 终点X坐标 |
| | | const maxY4 = 0; // 终点Y坐标 |
| | | const delayFrames = 600; // 每个 div 的延迟帧数 |
| | | const boxes = ref([]); |
| | |
| | | hollowTotalAreaOutTwo: t('large.hollowTotalAreaOutTwo'), |
| | | }; |
| | | |
| | | |
| | | </script> |
| | | <template> |
| | | <div style="height: 500px;"> |
| | | <el-dialog v-model="iframe1" top="5vh" width="95%" @close="iframeUrl1=''"> |
| | | <el-dialog v-model="iframe1" top="5vh" width="95%" @close="iframeUrl1 = ''"> |
| | | <iframe :src="iframeUrl1" marginwidth="2000px" marginheight="2000px" width="100%" height="700px" |
| | | frameborder="0"></iframe> |
| | | </el-dialog> |
| | | <el-dialog v-model="iframe2" top="5vh" width="95%" @close="iframeUrl2=''"> |
| | | <el-dialog v-model="iframe2" top="5vh" width="95%" @close="iframeUrl2 = ''"> |
| | | <iframe :src="iframeUrl2" marginwidth="2000px" marginheight="2000px" width="100%" height="700px" |
| | | frameborder="0"></iframe> |
| | | </el-dialog> |
| | | <el-dialog v-model="iframe3" top="5vh" width="95%" @close="iframeUrl3=''"> |
| | | <el-dialog v-model="iframe3" top="5vh" width="95%" @close="iframeUrl3 = ''"> |
| | | <iframe :src="iframeUrl3" marginwidth="2000px" marginheight="2000px" width="100%" height="700" |
| | | frameborder="0"></iframe> |
| | | </el-dialog> |
| | | <el-dialog v-model="iframe4" top="5vh" width="95%" @close="iframeUrl4=''"> |
| | | <el-dialog v-model="iframe4" top="5vh" width="95%" @close="iframeUrl4 = ''"> |
| | | <iframe :src="iframeUrl4" marginwidth="2000px" marginheight="2000px" width="100%" height="750px" |
| | | frameborder="0"></iframe> |
| | | </el-dialog> |
| | | <el-dialog v-model="iframe5" top="5vh" width="95%" @close="iframeUrl5=''"> |
| | | <el-dialog v-model="iframe5" top="5vh" width="95%" @close="iframeUrl5 = ''"> |
| | | <iframe :src="iframeUrl5" marginwidth="2000px" marginheight="2000px" width="100%" height="750px" |
| | | frameborder="0"></iframe> |
| | | </el-dialog> |
| | | <el-dialog v-model="iframe6" top="5vh" width="95%" @close="iframeUrl6=''"> |
| | | <el-dialog v-model="iframe6" top="5vh" width="95%" @close="iframeUrl6 = ''"> |
| | | <iframe :src="iframeUrl6" marginwidth="2000px" marginheight="2000px" width="100%" height="750px" |
| | | frameborder="0"></iframe> |
| | | </el-dialog> |
| | | <el-dialog v-model="iframe7" top="5vh" width="95%" @close="iframeUrl7=''"> |
| | | <el-dialog v-model="iframe7" top="5vh" width="95%" @close="iframeUrl7 = ''"> |
| | | <iframe :src="iframeUrl7" marginwidth="2000px" marginheight="2000px" width="100%" height="750px" |
| | | frameborder="0"></iframe> |
| | | </el-dialog> |
| | | <el-dialog v-model="iframe8" top="5vh" width="95%" @close="iframeUrl8=''"> |
| | | <el-dialog v-model="iframe8" top="5vh" width="95%" @close="iframeUrl8 = ''"> |
| | | <iframe :src="iframeUrl8" marginwidth="2000px" marginheight="2000px" width="100%" height="750px" |
| | | frameborder="0"></iframe> |
| | | </el-dialog> |
| | | <el-dialog v-model="iframe9" top="5vh" width="95%" @close="iframeUrl9=''"> |
| | | <el-dialog v-model="iframe9" top="5vh" width="95%" @close="iframeUrl9 = ''"> |
| | | <iframe :src="iframeUrl9" marginwidth="2000px" marginheight="2000px" width="100%" height="750px" |
| | | frameborder="0"></iframe> |
| | | </el-dialog> |
| | | <el-dialog v-model="iframe10" top="5vh" width="95%" @close="iframeUrl10=''"> |
| | | <el-dialog v-model="iframe10" top="5vh" width="95%" @close="iframeUrl10 = ''"> |
| | | <iframe :src="iframeUrl10" marginwidth="2000px" marginheight="2000px" width="100%" height="750px" |
| | | frameborder="0"></iframe> |
| | | </el-dialog> |
| | | |
| | | <div class="awatch" style="display: flex;"> |
| | | <!-- 生产统计 --> |
| | | <div style="height: 100px;width: 15%;float: right;"> |
| | | <el-table height="540" ref="table" :data="transposedData" @click="handlehistorical10" |
| | | :header-cell-style="{ background: '#F2F3F5', color: '#1D2129' }"> |
| | | <el-table-column prop="name" align="center" min-width="100" /> |
| | | <el-table-column v-for="(item, index) in productionVO" :key="index" :prop="'value' + index" align="center" |
| | | min-width="80" /> |
| | | </el-table> |
| | | <div> |
| | | <el-button style="margin-top: 5px;margin-left: 5px;" id="searchButton" type="primary" |
| | | @click="handlehistorical1">{{ |
| | | $t('large.historicaltasks1') }}</el-button> |
| | | <el-button style="margin-top: 5px;margin-left: 5px;" id="searchButton" type="primary" |
| | | @click="blindc=true">{{ |
| | | $t('large.order') }}</el-button> |
| | | <el-button style="margin-top: 5px;margin-left: 5px;" id="searchButton" type="primary" |
| | | @click="handlehistorical2">{{ |
| | | $t('large.historicaltasks2') }}</el-button> |
| | | <el-button style="margin-top: 5px;margin-left: 5px;" id="searchButton" type="primary" |
| | | @click="handlehistorical3">{{ |
| | | $t('large.historicaltasks3') }}</el-button> |
| | | <el-button style="margin-top: 5px;margin-left: 5px;" id="searchButton" type="primary" |
| | | @click="handlehistorical4">{{ |
| | | $t('large.historicaltasks4') }}</el-button> |
| | | <el-button style="margin-top: 5px;margin-left: 5px;" id="searchButton" type="primary" |
| | | @click="handlehistorical5">{{ |
| | | $t('large.historicaltasks5') }}</el-button> |
| | | <el-button style="margin-top: 5px;margin-left: 5px;" id="searchButton" type="primary" |
| | | @click="handlehistorical7">{{ |
| | | $t('large.historicaltasks7') }}</el-button> |
| | | <el-button style="margin-top: 5px;margin-left: 5px;" id="searchButton" type="primary" |
| | | @click="handlehistorical8">{{ |
| | | $t('large.historicaltasks8') }}</el-button> |
| | | <el-button style="margin-top: 5px;margin-left: 5px;" id="searchButton" type="primary" |
| | | @click="handlehistorical6">{{ |
| | | $t('large.historicaltasks6') }}</el-button> |
| | | <el-button style="margin-top: 5px;margin-left: 5px;" id="searchButton" type="primary" |
| | | @click="handlehistorical9">{{ |
| | | $t('large.historicaltasks9') }}</el-button> |
| | | <div style="height: 100px;width: 25%;float: right;"> |
| | | <div id="ss" style="width: 100%; display: flex; justify-content: center;"> |
| | | <div ref="chartRef" style="width: 600px; height: 400px;"></div> |
| | | </div> |
| | | <div style="width: 100%;height: 245px;display: flex;"> |
| | | <div ref="chartOne" style="width: 100%;"></div> |
| | | </div> |
| | | <div style="width: 100%;height: 245px;display: flex;"> |
| | | <div ref="chartTwo" style="width: 100%;"></div> |
| | | </div> |
| | | </div> |
| | | <div class="img-screen" alt="Screen"> |
| | | <!-- 钢化色块 --> |
| | | <div v-if="temperingGlassInfoInList > 0" class="tempering" |
| | | style="width: 55px;height: 25px;top: 359px;left: 162px;position: absolute;background-color: #911005;"></div> |
| | | <div v-if="temperingGlassInfoList > 0" class="tempering" |
| | | style="width: 66px;height: 28px;top: 355px;left: 284px;position: absolute;background-color: #911005;"></div> |
| | | <div v-if="temperingGlassInfoList > 1" class="tempering" |
| | | style="width: 66px;height: 28px;top: 355px;left: 358px;position: absolute;background-color: #911005;"></div> |
| | | <!-- 切割台色块 --> |
| | | <div v-if="engineeringOne.length > 1" class="slicing" |
| | | style="width: 59px;height: 29px;top: 629px;left: 562px;position: absolute;background-color: #911005;"></div> |
| | | <div v-if="engineeringTwo.length > 1" class="slicing" |
| | | style="width: 59px;height: 29px;top: 692px;left: 562px;position: absolute;background-color: #911005;"></div> |
| | | <!-- 原片仓储色块 --> |
| | | <div class="raw" style="width: 35px;height: 40px;top: 624px;left: 372px;position: absolute;"> |
| | | <div v-for="(item, index) in rawGlassStorageDetailList.slice(0, 7)" :key="index" |
| | | :style='"width: " + (item.remainQuantity / 5) + "px;height: 5.6px;background-color: #911005;"'></div> |
| | | <div style="width: 50%;"> |
| | | <div class="img-screen" alt="Screen"> |
| | | <!-- 钢化半透明色块 --> |
| | | <div style="width: 80px;height: 40px;top: 130px;left: 130px;position: absolute;background-color: rgba(0, 0, 0, 0.5);color: white;font-size: 12px;z-index: 999;"> |
| | | <div>{{ $t('large.quantity') }}:{{ productionVO.length > 0 ? productionVO[6].countOut : 0 }}片</div> |
| | | <div>{{ $t('large.are') }}:{{ productionVO.length > 0 ? productionVO[6].totalAreaOut : 0 }}m²</div> |
| | | </div> |
| | | <!-- 中空一线半透明色块 --> |
| | | <div style="width: 80px;height: 40px;top: 315px;left: 450px;position: absolute;background-color: rgba(0, 0, 0, 0.5);color: white;font-size: 12px;z-index: 999;"> |
| | | <div>{{ $t('large.quantity') }}:{{ productionVO.length > 0 ? productionVO[6].hollowCountOutOne : 0 }}片</div> |
| | | <div>{{ $t('large.are') }}:{{ productionVO.length > 0 ? productionVO[6].hollowTotalAreaOutOne : 0 }}m²</div> |
| | | </div> |
| | | <!-- 中空二线半透明色块 --> |
| | | <div style="width: 80px;height: 40px;top: 230px;left: 450px;position: absolute;background-color: rgba(0, 0, 0, 0.5);color: white;font-size: 12px;z-index: 999;"> |
| | | <div>{{ $t('large.quantity') }}:{{ productionVO.length > 0 ? productionVO[6].hollowCountOutTwo : 0 }}片</div> |
| | | <div>{{ $t('large.are') }}:{{ productionVO.length > 0 ? productionVO[6].hollowTotalAreaOutTwo : 0 }}m²</div> |
| | | </div> |
| | | <!-- 切割二线半透明色块 --> |
| | | <div style="width: 80px;height: 40px;top: 542px;left: 410px;position: absolute;background-color: rgba(0, 0, 0, 0.5);color: white;font-size: 12px;z-index: 999;"> |
| | | <div>{{ $t('large.quantity') }}:{{ productionVO.length > 0 ? productionVO[6].countOutOne : 0 }}片</div> |
| | | <div>{{ $t('large.are') }}:{{ productionVO.length > 0 ? productionVO[6].totalAreaOutOne : 0 }}m²</div> |
| | | </div> |
| | | <!-- 切割一线半透明色块 --> |
| | | <div style="width: 80px;height: 40px;top: 490px;left: 410px;position: absolute;background-color: rgba(0, 0, 0, 0.5);color: white;font-size: 12px;z-index: 999;"> |
| | | <div>{{ $t('large.quantity') }}:{{ productionVO.length > 0 ? productionVO[6].countOutTwo : 0 }}片</div> |
| | | <div>{{ $t('large.are') }}:{{ productionVO.length > 0 ? productionVO[6].totalAreaOutTwo : 0 }}m²</div> |
| | | </div> |
| | | <!-- 磨边一线半透明色块 --> |
| | | <div style="width: 80px;height: 40px;top: 410px;left: 450px;position: absolute;background-color: rgba(0, 0, 0, 0.5);color: white;font-size: 12px;z-index: 999;"> |
| | | <div>{{ $t('large.quantity') }}:{{ productionVO.length > 0 ? productionVO[6].countOutOne : 0 }}片</div> |
| | | <div>{{ $t('large.are') }}:{{ productionVO.length > 0 ? productionVO[6].totalAreaOutOne : 0 }}m²</div> |
| | | </div> |
| | | <!-- 磨边二线半透明色块 --> |
| | | <div style="width: 80px;height: 40px;top: 369px;left: 450px;position: absolute;background-color: rgba(0, 0, 0, 0.5);color: white;font-size: 12px;z-index: 999;"> |
| | | <div>{{ $t('large.quantity') }}:{{ productionVO.length > 0 ? productionVO[6].countOutTwo : 0 }}片</div> |
| | | <div>{{ $t('large.are') }}:{{ productionVO.length > 0 ? productionVO[6].totalAreaOutTwo : 0 }}m²</div> |
| | | </div> |
| | | <!-- 钢化前大理片半透明色块 --> |
| | | <div style="width: 80px;height: 40px;top: 380px;left: 290px;position: absolute;background-color: rgba(0, 0, 0, 0.5);color: white;font-size: 12px;z-index: 999;"> |
| | | <div>{{ $t('large.quantity') }}:{{ productionVO.length > 0 ? productionVO[6].countIn : 0 }}片</div> |
| | | <div>{{ $t('large.are') }}:{{ productionVO.length > 0 ? productionVO[6].totalAreaIn : 0 }}m²</div> |
| | | </div> |
| | | |
| | | <!-- 钢化色块 --> |
| | | <div v-if="temperingGlassInfoInList > 0" class="tempering" |
| | | style="width: 44px;height: 19px;top: 284px;left: 178px;position: absolute;background-color: #911005;"></div> |
| | | <div v-if="temperingGlassInfoList > 0" class="tempering" |
| | | style="width: 53px;height: 22px;top: 282px;left: 226px;position: absolute;background-color: #911005;"></div> |
| | | <div v-if="temperingGlassInfoList > 1" class="tempering" |
| | | style="width: 53px;height: 22px;top: 282px;left: 282px;position: absolute;background-color: #911005;"></div> |
| | | <!-- 切割台色块 --> |
| | | <div v-if="engineeringOne.length > 1" class="slicing" |
| | | style="width: 45px;height: 20px;top: 500px;left: 496px;position: absolute;background-color: #911005;"></div> |
| | | <div v-if="engineeringTwo.length > 1" class="slicing" |
| | | style="width: 45px;height: 20px;top: 550px;left: 496px;position: absolute;background-color: #911005;"></div> |
| | | <!-- 原片仓储色块 --> |
| | | <div class="raw" style="width: 27px;height: 30px;top: 497px;left: 296px;position: absolute;"> |
| | | <div v-for="(item, index) in rawGlassStorageDetailList.slice(0, 7)" :key="index" |
| | | :style='"width: " + (item.remainQuantity / 1.8) + "px;height: 5.6px;background-color: #911005;"'></div> |
| | | </div> |
| | | <div class="raw" style="width: 27px;height: 45px;top: 535px;left: 296px;position: absolute;"> |
| | | <div v-for="(item, index) in rawGlassStorageDetailList.slice(8, 17)" :key="index" |
| | | :style='"width: " + (item.remainQuantity / 1.8) + "px;height: 5.6px;background-color: #911005;"'></div> |
| | | </div> |
| | | <div class="raw" style="width: 27px;height: 13px;top: 598px;left: 296px;position: absolute;"> |
| | | <div v-for="(item, index) in rawGlassStorageDetailList.slice(18, 20)" :key="index" |
| | | :style='"width: " + (item.remainQuantity / 1.8) + "px;height: 5.6px;background-color: #911005;"'></div> |
| | | </div> |
| | | <div class="raw" style="width: 27px;height: 23px;top: 580px;left: 365px;position: absolute;"> |
| | | <div v-for="(item, index) in rawGlassStorageDetailList.slice(21, 25)" :key="index" |
| | | :style='"width: " + (item.remainQuantity / 1.8) + "px;height: 5.6px;background-color: #911005;"'></div> |
| | | </div> |
| | | <!-- <div class="raw" style="width: 27px;height: 12px;top: 611px;left: 459px;position: absolute;"> |
| | | <div v-for="(item, index) in rawGlassStorageDetailList.slice(26, 27)" :key="index" |
| | | :style='"width: " + (item.remainQuantity / 1.8) + "px;height: 5.6px;background-color: #911005;"'></div> |
| | | </div> |
| | | <div class="raw" style="width: 27px;height: 12px;top: 6676px;left: 459px;position: absolute;"> |
| | | <div v-for="(item, index) in rawGlassStorageDetailList.slice(28, 29)" :key="index" |
| | | :style='"width: " + (item.remainQuantity / 1.8) + "px;height: 5.6px;background-color: #911005;"'></div> |
| | | </div> --> |
| | | <!-- 磨边色块 --> |
| | | <div class="container" |
| | | style="position: relative;width: 15px;height: 15px;top: 500px;left: 638px;position: absolute;"> |
| | | <div v-for="(box, index) in boxes" :key="index" class="box" :style="box.style"></div> |
| | | </div> |
| | | <div class="container" |
| | | style="position: relative;width: 15px;height: 15px;top: 548px;left: 690px;position: absolute;"> |
| | | <div v-for="(box, index) in boxes2" :key="index" class="box" :style="box.style"></div> |
| | | </div> |
| | | <!-- 钢化运动色块 --> |
| | | <div class="container" |
| | | style="position: relative;width: 15px;height: 15px;top: 370px;left: 195px;position: absolute;background-color: red;"> |
| | | <div v-for="(box, index) in boxes3" :key="index" class="box" :style="box.style"></div> |
| | | </div> |
| | | <div class="container" |
| | | style="position: relative;width: 15px;height: 15px;top: 284px;left: 489px;position: absolute;"> |
| | | <div v-for="(box, index) in boxes4" :key="index" class="box" :style="box.style"></div> |
| | | </div> |
| | | <!-- 钢化前大理片色块 --> |
| | | <div class="container" v-for="(item, index) in bigStorageCageUsage.slice(0, 1)" :key="index" |
| | | :style='"position: relative;width: " + (37 * item.percentage / 100) + "px;height: 13px;top: 374px;left: 309px;position: absolute;background-color: #911005;"'> |
| | | </div> |
| | | <div class="container" v-for="(item, index) in bigStorageCageUsage.slice(1, 2)" :key="index" |
| | | :style='"position: relative;width: " + (37 * item.percentage / 100) + "px;height: 13px;top: 390px;left: 309px;position: absolute;background-color: #911005;"'> |
| | | </div> |
| | | <div class="container" v-for="(item, index) in bigStorageCageUsage.slice(2, 3)" :key="index" |
| | | :style='"position: relative;width: " + (37 * item.percentage / 100) + "px;height: 13px;top: 406px;left: 309px;position: absolute;background-color: #911005;"'> |
| | | </div> |
| | | <div class="container" v-for="(item, index) in bigStorageCageUsage.slice(3, 4)" :key="index" |
| | | :style='"position: relative;width: " + (37 * item.percentage / 100) + "px;height: 13px;top: 422px;left: 309px;position: absolute;background-color: #911005;"'> |
| | | </div> |
| | | <!-- 中空前大理片色块 --> |
| | | <div class="container" v-for="(item, index) in hollowBigStorageCageUsage.slice(0, 1)" :key="index" |
| | | :style='"position: relative;width: " + (37 * item.percentage / 100) + "px;height: 13px;top: 265px;left: 662px;position: absolute;background-color: #911005;"'> |
| | | </div> |
| | | <div class="container" v-for="(item, index) in hollowBigStorageCageUsage.slice(1, 2)" :key="index" |
| | | :style='"position: relative;width: " + (37 * item.percentage / 100) + "px;height: 13px;top: 281px;left: 662px;position: absolute;background-color: #911005;"'> |
| | | </div> |
| | | <div class="container" v-for="(item, index) in hollowBigStorageCageUsage.slice(2, 3)" :key="index" |
| | | :style='"position: relative;width: " + (37 * item.percentage / 100) + "px;height: 13px;top: 297px;left: 662px;position: absolute;background-color: #911005;"'> |
| | | </div> |
| | | <div class="container" v-for="(item, index) in hollowBigStorageCageUsage.slice(3, 4)" :key="index" |
| | | :style='"position: relative;width: " + (37 * item.percentage / 100) + "px;height: 13px;top: 313px;left: 662px;position: absolute;background-color: #911005;"'> |
| | | </div> |
| | | <div class="container" v-for="(item, index) in hollowBigStorageCageUsage.slice(4, 5)" :key="index" |
| | | :style='"position: relative;width: " + (37 * item.percentage / 100) + "px;height: 13px;top: 329px;left: 662px;position: absolute;background-color: #911005;"'> |
| | | </div> |
| | | <div class="clickable-area" @click="handlehistorical" |
| | | style="position: relative;width: 108px;height: 134px;top: 478px;left: 290px;"></div> |
| | | </div> |
| | | <div class="raw" style="width: 35px;height: 58px;top: 673px;left: 372px;position: absolute;"> |
| | | <div v-for="(item, index) in rawGlassStorageDetailList.slice(8, 17)" :key="index" |
| | | :style='"width: " + (item.remainQuantity / 5) + "px;height: 5.6px;background-color: #911005;"'></div> |
| | | <div style="height: 190px;width: 100%;float: right;"> |
| | | <el-table height="190" ref="table" :data="orderDTOS" |
| | | :header-cell-style="{ background: '#F2F3F5 ', color: '#1D2129' }"> |
| | | <el-table-column prop="orderId" align="center" :label="$t('large.orderId')" min-width="50" /> |
| | | <el-table-column prop="customerName" align="center" :show-overflow-tooltip="true" |
| | | :label="$t('large.customerName')" min-width="90" /> |
| | | <el-table-column prop="project" align="center" :label="$t('large.project')" min-width="50" /> |
| | | <el-table-column prop="area" align="center" :label="$t('large.are')" min-width="50" /> |
| | | <el-table-column prop="quantity" align="center" :label="$t('large.quantity')" min-width="50" /> |
| | | <el-table-column prop="percent" align="center" :label="$t('large.percent')" min-width="50" /> |
| | | <el-table-column align="center" :label="$t('large.operate')" min-width="50"> |
| | | <template #default="scope"> |
| | | <el-button type="text" style="margin-left: 10px;margin-bottom: 10px;" |
| | | @click="flowCardDetail(scope.row.orderId)">{{ $t('large.mes') }}</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | </div> |
| | | <div class="raw" style="width: 35px;height: 20px;top: 751px;left: 372px;position: absolute;"> |
| | | <div v-for="(item, index) in rawGlassStorageDetailList.slice(18, 20)" :key="index" |
| | | :style='"width: " + (item.remainQuantity / 5) + "px;height: 5.6px;background-color: #911005;"'></div> |
| | | </div> |
| | | |
| | | <div style="height: 100px;width: 25%;float: right;"> |
| | | <div id="ss" style="width: 100%; display: flex; justify-content: center;"> |
| | | <div ref="chartRef2" style="width: 600px; height: 400px;"></div> |
| | | </div> |
| | | <div class="raw" style="width: 35px;height: 27px;top: 732px;left: 459px;position: absolute;"> |
| | | <div v-for="(item, index) in rawGlassStorageDetailList.slice(21, 25)" :key="index" |
| | | :style='"width: " + (item.remainQuantity / 5) + "px;height: 5.6px;background-color: #911005;"'></div> |
| | | <div style="width: 100%;height: 245px;display: flex;"> |
| | | <div ref="chartThree" style="width: 100%;"></div> |
| | | </div> |
| | | <div class="raw" style="width: 35px;height: 12px;top: 611px;left: 459px;position: absolute;"> |
| | | <div v-for="(item, index) in rawGlassStorageDetailList.slice(26, 27)" :key="index" |
| | | :style='"width: " + (item.remainQuantity / 5) + "px;height: 5.6px;background-color: #911005;"'></div> |
| | | <div style="width: 100%;height: 245px;display: flex;"> |
| | | <div ref="chartFour" style="width: 100%;"></div> |
| | | </div> |
| | | <div class="raw" style="width: 35px;height: 12px;top: 6676px;left: 459px;position: absolute;"> |
| | | <div v-for="(item, index) in rawGlassStorageDetailList.slice(28, 29)" :key="index" |
| | | :style='"width: " + (item.remainQuantity / 5) + "px;height: 5.6px;background-color: #911005;"'></div> |
| | | </div> |
| | | <!-- 磨边色块 --> |
| | | <div class="container" |
| | | style="position: relative;width: 20px;height: 20px;top: 628px;left: 804px;position: absolute;"> |
| | | <div v-for="(box, index) in boxes" :key="index" class="box" :style="box.style"></div> |
| | | </div> |
| | | <div class="container" |
| | | style="position: relative;width: 20px;height: 20px;top: 690px;left: 867px;position: absolute;"> |
| | | <div v-for="(box, index) in boxes2" :key="index" class="box" :style="box.style"></div> |
| | | </div> |
| | | <!-- 钢化运动色块 --> |
| | | <div class="container" |
| | | style="position: relative;width: 20px;height: 20px;top: 468px;left: 250px;position: absolute;"> |
| | | <div v-for="(box, index) in boxes3" :key="index" class="box" :style="box.style"></div> |
| | | </div> |
| | | <div class="container" |
| | | style="position: relative;width: 20px;height: 20px;top: 357px;left: 618px;position: absolute;"> |
| | | <div v-for="(box, index) in boxes4" :key="index" class="box" :style="box.style"></div> |
| | | </div> |
| | | <!-- 钢化前大理片色块 --> |
| | | <div class="container" v-for="(item, index) in bigStorageCageUsage.slice(0, 1)" :key="index" |
| | | :style='"position: relative;width: " + (46 * item.percentage / 100) + "px;height: 17px;top: 471px;left: 389px;position: absolute;background-color: #911005;"'> |
| | | </div> |
| | | <div class="container" v-for="(item, index) in bigStorageCageUsage.slice(1, 2)" :key="index" |
| | | :style='"position: relative;width: " + (46 * item.percentage / 100) + "px;height: 17px;top: 491px;left: 389px;position: absolute;background-color: #911005;"'> |
| | | </div> |
| | | <div class="container" v-for="(item, index) in bigStorageCageUsage.slice(2, 3)" :key="index" |
| | | :style='"position: relative;width: " + (46 * item.percentage / 100) + "px;height: 17px;top: 510px;left: 389px;position: absolute;background-color: #911005;"'> |
| | | </div> |
| | | <div class="container" v-for="(item, index) in bigStorageCageUsage.slice(3, 4)" :key="index" |
| | | :style='"position: relative;width: " + (46 * item.percentage / 100) + "px;height: 17px;top: 530px;left: 389px;position: absolute;background-color: #911005;"'> |
| | | </div> |
| | | <!-- 中空前大理片色块 --> |
| | | <div class="container" v-for="(item, index) in hollowBigStorageCageUsage.slice(0, 1)" :key="index" |
| | | :style='"position: relative;width: " + (46 * item.percentage / 100) + "px;height: 17px;top: 334px;left: 832px;position: absolute;background-color: #911005;"'> |
| | | </div> |
| | | <div class="container" v-for="(item, index) in hollowBigStorageCageUsage.slice(1, 2)" :key="index" |
| | | :style='"position: relative;width: " + (46 * item.percentage / 100) + "px;height: 17px;top: 354px;left: 832px;position: absolute;background-color: #911005;"'> |
| | | </div> |
| | | <div class="container" v-for="(item, index) in hollowBigStorageCageUsage.slice(2, 3)" :key="index" |
| | | :style='"position: relative;width: " + (46 * item.percentage / 100) + "px;height: 17px;top: 374px;left: 832px;position: absolute;background-color: #911005;"'> |
| | | </div> |
| | | <div class="container" v-for="(item, index) in hollowBigStorageCageUsage.slice(3, 4)" :key="index" |
| | | :style='"position: relative;width: " + (46 * item.percentage / 100) + "px;height: 17px;top: 394px;left: 832px;position: absolute;background-color: #911005;"'> |
| | | </div> |
| | | <div class="container" v-for="(item, index) in hollowBigStorageCageUsage.slice(4, 5)" :key="index" |
| | | :style='"position: relative;width: " + (46 * item.percentage / 100) + "px;height: 17px;top: 414px;left: 832px;position: absolute;background-color: #911005;"'> |
| | | </div> |
| | | <div class="clickable-area" @click="handlehistorical" |
| | | style="position: relative;width: 140px;height: 170px;top: 603px;left: 364px;"></div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | |
| | | /* float: left; */ |
| | | position: relative; |
| | | background-image: url('../../assets/screen.png'); |
| | | width: 1002px; |
| | | height: 878px; |
| | | width: 795px; |
| | | height: 700px; |
| | | background-size: contain; |
| | | background-repeat: no-repeat; |
| | | /* background-position: center; */ |
New file |
| | |
| | | package com.mes.largenscreen.entity; |
| | | |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | import lombok.Data; |
| | | |
| | | /** |
| | | * @Author : zhoush |
| | | * @Date: 2025/3/12 14:30 |
| | | * @Description: |
| | | */ |
| | | @Data |
| | | public class PieChartVO { |
| | | |
| | | @ApiModelProperty(value = "一线已完成玻璃数量") |
| | | private Integer oneCompletedQuantity; |
| | | |
| | | @ApiModelProperty(value = "一线已完成玻璃面积") |
| | | private Double oneCompletedArea; |
| | | |
| | | @ApiModelProperty(value = "一线次破玻璃数量") |
| | | private Integer oneDamageQuantity; |
| | | |
| | | @ApiModelProperty(value = "一线次破玻璃面积") |
| | | private Double oneDamageArea; |
| | | |
| | | @ApiModelProperty(value = "二线已完成玻璃数量") |
| | | private Integer twoCompletedQuantity; |
| | | |
| | | @ApiModelProperty(value = "二线已完成玻璃面积") |
| | | private Double twoCompletedArea; |
| | | |
| | | @ApiModelProperty(value = "二线次破玻璃数量") |
| | | private Integer twoDamageQuantity; |
| | | |
| | | @ApiModelProperty(value = "二线次破玻璃面积") |
| | | private Double twoDamageArea; |
| | | |
| | | @ApiModelProperty(value = "一线未完成玻璃数量") |
| | | private Integer oneUncompletedQuantity; |
| | | |
| | | @ApiModelProperty(value = "一线未完成玻璃面积") |
| | | private Double oneUncompletedArea; |
| | | |
| | | @ApiModelProperty(value = "二线未完成玻璃数量") |
| | | private Integer twoUncompletedQuantity; |
| | | |
| | | @ApiModelProperty(value = "二线未完成玻璃面积") |
| | | private Double twoUncompletedArea; |
| | | |
| | | } |
| | |
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| | | import com.mes.largenscreen.entity.DailyProductionVO; |
| | | import com.mes.largenscreen.entity.DateRequest; |
| | | import com.mes.largenscreen.entity.PieChartVO; |
| | | |
| | | import java.util.List; |
| | | |
| | | /** |
| | | * @Author : zhoush |
| | |
| | | |
| | | Page<DailyProductionVO> queryDailyProduction(DateRequest query); |
| | | |
| | | DailyProductionVO querySameDayProduction(DateRequest query); |
| | | List<DailyProductionVO> querySameDayProduction(DateRequest query); |
| | | |
| | | } |
| | |
| | | |
| | | import javax.annotation.Resource; |
| | | import java.text.SimpleDateFormat; |
| | | import java.util.Calendar; |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | |
| | |
| | | } |
| | | |
| | | @Override |
| | | public DailyProductionVO querySameDayProduction(DateRequest query) { |
| | | public List<DailyProductionVO> querySameDayProduction(DateRequest query) { |
| | | if (StringUtils.isEmpty(query.getBeginDate())) { |
| | | SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); |
| | | query.setBeginDate(sdf.format(new Date())); |
| | | Calendar calendar = Calendar.getInstance(); |
| | | calendar.add(Calendar.DAY_OF_MONTH, -6); |
| | | query.setBeginDate(sdf.format(calendar.getTime())); |
| | | query.setEndDate(sdf.format(new Date())); |
| | | } |
| | | List<DailyProductionVO> list = largenScreenMapper.queryDailyProduction(query.getBeginDate(), query.getEndDate()); |
| | | return list.get(0); |
| | | return list; |
| | | } |
| | | |
| | | |
| | |
| | | package com.mes.order.controller; |
| | | |
| | | import com.mes.order.entity.Orderdetail; |
| | | import com.mes.order.entity.Orders; |
| | | import com.mes.order.entity.dto.OrderDTO; |
| | | import com.mes.order.entity.request.OrderRequest; |
| | | import com.mes.order.service.OrdersService; |
| | | import com.mes.utils.Result; |
| | | import io.swagger.annotations.Api; |
| | |
| | | |
| | | /** |
| | | * <p> |
| | | * 前端控制器 |
| | | * 前端控制器 |
| | | * </p> |
| | | * |
| | | * @author wu |
| | |
| | | log.info("显示订单详情信息:{}", glass); |
| | | return Result.build(200, "", glass); |
| | | } |
| | | |
| | | @ApiOperation("订单接口查询") |
| | | @PostMapping("/selectOrder") //显示工程选择信息 |
| | | @ResponseBody |
| | | public Result<List<OrderDTO>> selectOrder(@RequestBody OrderRequest orderRequest) { |
| | | // OrderDTO orderDTO = new OrderDTO(); |
| | | return Result.build(200, "", null); |
| | | } |
| | | } |
| | | |
| | |
| | | |
| | | import com.baomidou.mybatisplus.annotation.IdType; |
| | | import com.baomidou.mybatisplus.annotation.TableId; |
| | | import io.swagger.models.auth.In; |
| | | import lombok.Data; |
| | | import lombok.EqualsAndHashCode; |
| | | |
| | |
| | | /** |
| | | * 订单数量 |
| | | */ |
| | | private String quantity; |
| | | private Integer quantity; |
| | | |
| | | /** |
| | | * 订单面积 |
| | | */ |
| | | private String area; |
| | | private Double area; |
| | | |
| | | /** |
| | | * 创建时间 |
| | |
| | | /** |
| | | * 订单进度百分比 |
| | | */ |
| | | private String percent; |
| | | private Double percent; |
| | | |
| | | /** |
| | | * 订单状态 |
| | | */ |
| | | private Integer orderStatus; |
| | | |
| | | |
| | | } |
New file |
| | |
| | | package com.mes.order.entity.request; |
| | | |
| | | import com.fasterxml.jackson.annotation.JsonFormat; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | import lombok.Data; |
| | | import lombok.EqualsAndHashCode; |
| | | import org.springframework.format.annotation.DateTimeFormat; |
| | | |
| | | import java.io.Serializable; |
| | | import java.util.Date; |
| | | |
| | | /** |
| | | * <p> |
| | | * |
| | | * </p> |
| | | * |
| | | * @author wu |
| | | * @since 2024-06-17 |
| | | */ |
| | | @Data |
| | | @EqualsAndHashCode(callSuper = false) |
| | | public class OrderRequest implements Serializable { |
| | | |
| | | @ApiModelProperty(value = "订单Id") |
| | | private String orderId; |
| | | @ApiModelProperty(value = "客户名称") |
| | | private String customerName; |
| | | @ApiModelProperty(value = "项目名称") |
| | | private String project; |
| | | @ApiModelProperty(value = "订单状态") |
| | | private Integer orderStatus; |
| | | @ApiModelProperty(value = "开始时间") |
| | | @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") |
| | | @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") |
| | | private Date startTime; |
| | | @ApiModelProperty(value = "结束时间") |
| | | @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") |
| | | @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") |
| | | private Date endTime; |
| | | |
| | | |
| | | } |
| | |
| | | |
| | | |
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| | | import com.mes.pp.entity.dto.FlowCardPercentDTO; |
| | | import com.mes.pp.entity.request.FlowCardRequest; |
| | | import com.mes.pp.service.FlowCardService; |
| | | import com.mes.utils.Result; |
| | | import io.swagger.annotations.Api; |
| | |
| | | import org.springframework.web.bind.annotation.RestController; |
| | | |
| | | import javax.annotation.Resource; |
| | | import java.util.List; |
| | | |
| | | /** |
| | | * <p> |
| | |
| | | return Result.build(200, "查询成功", flowCardService.flowCardReportForms(orderId)); |
| | | } |
| | | |
| | | @ApiOperation("订单详情进度接口") |
| | | @PostMapping("/flowCardPercent") |
| | | public Result<List<FlowCardPercentDTO>> flowCardPercent(@RequestBody FlowCardRequest flowCardRequest) { |
| | | return Result.build(200, "查询成功", null); |
| | | } |
| | | |
| | | } |
| | | |
| | |
| | | package com.mes.pp.controller; |
| | | |
| | | |
| | | import com.mes.pp.entity.dto.FlowCardPercentDTO; |
| | | import com.mes.pp.entity.dto.ReportWorkDTO; |
| | | import com.mes.pp.entity.request.FlowCardRequest; |
| | | import com.mes.pp.entity.request.ReportWorkRequest; |
| | | import com.mes.utils.Result; |
| | | import io.swagger.annotations.Api; |
| | | import io.swagger.annotations.ApiOperation; |
| | | import org.springframework.web.bind.annotation.PostMapping; |
| | | import org.springframework.web.bind.annotation.RequestBody; |
| | | import org.springframework.web.bind.annotation.RequestMapping; |
| | | |
| | | import org.springframework.web.bind.annotation.RestController; |
| | | |
| | | import java.util.List; |
| | | |
| | | /** |
| | | * <p> |
| | | * 前端控制器 |
| | | * 前端控制器 |
| | | * </p> |
| | | * |
| | | * @author wu |
| | | * @since 2024-07-25 |
| | | */ |
| | | @Api(tags = "报工") |
| | | @RestController |
| | | @RequestMapping("/reporting-work-detail") |
| | | public class ReportingWorkDetailController { |
| | | |
| | | @ApiOperation("报工数据查询接口") |
| | | @PostMapping("/reportWorkQuery") |
| | | public Result<List<ReportWorkDTO>> reportWorkQuery(@RequestBody ReportWorkRequest reportWorkRequest) { |
| | | return Result.build(200, "查询成功", null); |
| | | } |
| | | } |
| | | |
New file |
| | |
| | | package com.mes.pp.entity.dto; |
| | | |
| | | import lombok.Data; |
| | | import lombok.EqualsAndHashCode; |
| | | |
| | | import java.io.Serializable; |
| | | |
| | | /** |
| | | * <p> |
| | | * |
| | | * </p> |
| | | * |
| | | * @author wu |
| | | * @since 2024-07-25 |
| | | */ |
| | | @Data |
| | | @EqualsAndHashCode(callSuper = false) |
| | | public class FlowCardPercentDTO implements Serializable { |
| | | |
| | | private static final long serialVersionUID = 1L; |
| | | |
| | | /** |
| | | * 流程卡号 |
| | | */ |
| | | private String processId; |
| | | |
| | | /** |
| | | * 层号 |
| | | */ |
| | | private Integer technologyNumber; |
| | | |
| | | /** |
| | | * 订单序号 |
| | | */ |
| | | private Integer orderNumber; |
| | | |
| | | /** |
| | | * 项目名称 |
| | | */ |
| | | private String productName; |
| | | |
| | | /** |
| | | * 玻璃名称 |
| | | */ |
| | | private String glassChild; |
| | | |
| | | /** |
| | | * 宽 |
| | | */ |
| | | private Double width; |
| | | |
| | | /** |
| | | * 高 |
| | | */ |
| | | private Double height; |
| | | |
| | | /** |
| | | * 订单数量 |
| | | */ |
| | | private Integer quantity; |
| | | |
| | | /** |
| | | * 订单类型 |
| | | */ |
| | | private String orderType; |
| | | |
| | | /** |
| | | * 面积 |
| | | */ |
| | | private Double area; |
| | | |
| | | /** |
| | | * 补片数量 |
| | | */ |
| | | private Integer PatchQuantity; |
| | | |
| | | /** |
| | | * 报工工序 |
| | | */ |
| | | private String reportWorkProcess; |
| | | |
| | | /** |
| | | * 报工数量 |
| | | */ |
| | | private String reportWorkQuantityCount; |
| | | |
| | | /** |
| | | * 库存数量 |
| | | */ |
| | | private Integer inventory; |
| | | |
| | | /** |
| | | * 生产终止状态 |
| | | */ |
| | | private String orderNumberStatus; |
| | | |
| | | /** |
| | | * 生产终止状态 |
| | | */ |
| | | private String packagingMethod; |
| | | |
| | | } |
New file |
| | |
| | | package com.mes.pp.entity.dto; |
| | | |
| | | import lombok.Data; |
| | | import lombok.EqualsAndHashCode; |
| | | |
| | | import java.io.Serializable; |
| | | |
| | | /** |
| | | * <p> |
| | | * |
| | | * </p> |
| | | * |
| | | * @author wu |
| | | * @since 2024-07-25 |
| | | */ |
| | | @Data |
| | | @EqualsAndHashCode(callSuper = false) |
| | | public class ReportWorkDTO implements Serializable { |
| | | |
| | | private static final long serialVersionUID = 1L; |
| | | |
| | | /** |
| | | * 流程卡号 |
| | | */ |
| | | private String processId; |
| | | |
| | | /** |
| | | * 层号 |
| | | */ |
| | | private Integer technologyNumber; |
| | | |
| | | /** |
| | | * 报工工序 |
| | | */ |
| | | private String reportWorkProcess; |
| | | |
| | | /** |
| | | * 玻璃名称 |
| | | */ |
| | | private String glassChild; |
| | | |
| | | /** |
| | | * 报工数量 |
| | | */ |
| | | private String reportWorkQuantity; |
| | | |
| | | /** |
| | | * 报工面积 |
| | | */ |
| | | private String reportWorkArea; |
| | | |
| | | /** |
| | | * 次破数量 |
| | | */ |
| | | private String damageWorkQuantity; |
| | | |
| | | /** |
| | | * 次破面积 |
| | | */ |
| | | private String damageWorkArea; |
| | | |
| | | /** |
| | | * 时间 |
| | | */ |
| | | private String reportTime; |
| | | |
| | | } |
New file |
| | |
| | | package com.mes.pp.entity.request; |
| | | |
| | | import com.fasterxml.jackson.annotation.JsonFormat; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | import lombok.Data; |
| | | import lombok.EqualsAndHashCode; |
| | | import org.springframework.format.annotation.DateTimeFormat; |
| | | |
| | | import java.io.Serializable; |
| | | import java.util.Date; |
| | | |
| | | /** |
| | | * <p> |
| | | * |
| | | * </p> |
| | | * |
| | | * @author wu |
| | | * @since 2024-06-17 |
| | | */ |
| | | @Data |
| | | @EqualsAndHashCode(callSuper = false) |
| | | public class FlowCardRequest implements Serializable { |
| | | |
| | | @ApiModelProperty(value = "订单Id") |
| | | private String orderId; |
| | | |
| | | |
| | | } |
New file |
| | |
| | | package com.mes.pp.entity.request; |
| | | |
| | | import com.fasterxml.jackson.annotation.JsonFormat; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | import lombok.Data; |
| | | import lombok.EqualsAndHashCode; |
| | | import org.springframework.format.annotation.DateTimeFormat; |
| | | |
| | | import java.io.Serializable; |
| | | import java.util.Date; |
| | | |
| | | /** |
| | | * <p> |
| | | * |
| | | * </p> |
| | | * |
| | | * @author wu |
| | | * @since 2024-06-17 |
| | | */ |
| | | @Data |
| | | @EqualsAndHashCode(callSuper = false) |
| | | public class ReportWorkRequest implements Serializable { |
| | | |
| | | @ApiModelProperty(value = "流程卡号") |
| | | private String processId; |
| | | @ApiModelProperty(value = "工序名称") |
| | | private String reportWorkProcess; |
| | | @ApiModelProperty(value = "开始时间") |
| | | @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") |
| | | @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") |
| | | private Date startTime; |
| | | @ApiModelProperty(value = "结束时间") |
| | | @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") |
| | | @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") |
| | | private Date endTime; |
| | | |
| | | |
| | | } |
| | |
| | | |
| | | import com.baomidou.dynamic.datasource.annotation.DS; |
| | | import com.github.yulichang.base.MPJBaseMapper; |
| | | import com.mes.largenscreen.entity.PieChartVO; |
| | | import com.mes.temperingglass.entity.TemperingGlassInfo; |
| | | import org.apache.ibatis.annotations.Param; |
| | | import org.apache.ibatis.annotations.Select; |
| | |
| | | "deleted = CASE WHEN #{state} < 8 THEN 0 ELSE deleted END " + |
| | | "WHERE glass_id = #{glassId}") |
| | | Integer updateTemperingGlassInfo(TemperingGlassInfo temperingGlassInfo); |
| | | |
| | | @Select("SELECT\n" + |
| | | "\tround( SUM ( CASE WHEN state <> - 1 AND state <> 8 THEN 1 ELSE 0 END ), 2 ) AS oneCompletedQuantity,\n" + |
| | | "\tround( SUM ( CASE WHEN state <> - 1 AND state <> 8 THEN CAST ( width AS FLOAT ) * height / 1000000 ELSE 0 END ), 2 ) AS oneCompletedArea,\n" + |
| | | "\tround( SUM ( CASE WHEN state = 8 THEN 1 ELSE 0 END ), 2 ) AS oneDamageQuantity,\n" + |
| | | "\tround( SUM ( CASE WHEN state = 8 THEN CAST ( width AS FLOAT ) * height / 1000000 ELSE 0 END ), 2 ) AS oneDamageArea,\n" + |
| | | "\tround( SUM ( CASE WHEN state = - 1 THEN 1 ELSE 0 END ), 2 ) AS oneUncompletedQuantity,\n" + |
| | | "\tround(SUM ( CASE WHEN state = - 1 THEN CAST ( width AS FLOAT ) * height / 1000000 ELSE 0 END ), 2 ) AS oneUncompletedArea \n" + |
| | | "FROM\n" + |
| | | "\ttempering_glass_info \n" + |
| | | "WHERE\n" + |
| | | "\tCONVERT ( DATE, create_time ) = CONVERT ( DATE, getdate( ) )") |
| | | List<PieChartVO> queryPieChart(); |
| | | } |
| | |
| | | import com.github.yulichang.base.MPJBaseService; |
| | | import com.mes.glassinfo.entity.GlassInfo; |
| | | import com.mes.glassinfo.entity.LoadGlassInfo; |
| | | import com.mes.largenscreen.entity.PieChartVO; |
| | | import com.mes.temperingglass.entity.TemperingGlassInfo; |
| | | |
| | | import java.util.List; |
| | |
| | | GlassInfo selectTempering(GlassInfo glassInfo); |
| | | |
| | | List<LoadGlassInfo> selectTemperingGlass(GlassInfo glassInfo); |
| | | |
| | | /** |
| | | * 获取钢化饼图信息 |
| | | * @return |
| | | */ |
| | | List<PieChartVO> queryPieChart(); |
| | | } |
| | |
| | | import com.mes.glassinfo.entity.GlassInfo; |
| | | import com.mes.glassinfo.entity.LoadGlassInfo; |
| | | import com.mes.glassinfo.mapper.GlassInfoMapper; |
| | | import com.mes.largenscreen.entity.PieChartVO; |
| | | import com.mes.temperingglass.entity.TemperingGlassInfo; |
| | | import com.mes.temperingglass.mapper.TemperingGlassInfoMapper; |
| | | import com.mes.temperingglass.service.TemperingGlassInfoService; |
| | |
| | | * @since 2024-04-07 |
| | | */ |
| | | @Service |
| | | @DS("salve_northGlassMes") |
| | | @DS("north_glass_mes") |
| | | public class TemperingGlassInfoServiceImpl extends MPJBaseServiceImpl<TemperingGlassInfoMapper, TemperingGlassInfo> implements TemperingGlassInfoService { |
| | | @Resource |
| | | TemperingGlassInfoMapper temperingMapper; |
| | |
| | | // .select("engineer_id,tempering_layout_id,width,height,tempering_feed_sequence,x_coordinate,y_coordinate,angle,glass_id"); |
| | | // return glassInfoMapper.selectList(wrapper); |
| | | } |
| | | |
| | | @Override |
| | | public List<PieChartVO> queryPieChart() { |
| | | return baseMapper.queryPieChart(); |
| | | } |
| | | } |
| | |
| | | import com.mes.edgstoragecage.entity.EdgStorageCageDetails; |
| | | import com.mes.edgstoragecage.entity.vo.CutDrawingVO; |
| | | import com.mes.edgstoragecage.entity.vo.EdgSlotRemainVO; |
| | | import com.mes.largenscreen.entity.PieChartVO; |
| | | import org.apache.ibatis.annotations.Param; |
| | | import org.springframework.security.core.parameters.P; |
| | | |
| | |
| | | List<CutDrawingVO> queryCutDrawingByEngineerId(@Param("engineerId") String engineerId, @Param("patternSequence") int patternSequence, @Param("isAll") int isAll); |
| | | |
| | | List<EdgSlotRemainVO> querySlotRemainWidth(@Param("cellLength") int cellLength, @Param("glassGap") int glassGap); |
| | | |
| | | List<PieChartVO> queryPieChart(); |
| | | } |
| | |
| | | import com.mes.edgstoragecage.entity.EdgStorageCageDetails; |
| | | import com.mes.edgstoragecage.entity.vo.CutDrawingVO; |
| | | import com.mes.edgstoragecage.entity.vo.EdgSlotRemainVO; |
| | | import com.mes.largenscreen.entity.PieChartVO; |
| | | |
| | | import java.util.List; |
| | | import java.util.Map; |
| | |
| | | String edgDetailsOperate(DamageRequest request); |
| | | |
| | | List<EdgSlotRemainVO> querySlotRemainWidth(int cellLength, int glassGap); |
| | | |
| | | List<PieChartVO> queryPieChart(); |
| | | } |
| | |
| | | import com.mes.engineering.mapper.EngineeringMapper; |
| | | import com.mes.glassinfo.entity.GlassInfo; |
| | | import com.mes.glassinfo.service.GlassInfoService; |
| | | import com.mes.largenscreen.entity.PieChartVO; |
| | | import com.mes.pp.entity.OptimizeHeatDetail; |
| | | import com.mes.pp.entity.OptimizeHeatLayout; |
| | | import com.mes.pp.entity.OptimizeProject; |
| | |
| | | public List<EdgSlotRemainVO> querySlotRemainWidth(int cellLength, int glassGap) { |
| | | return this.baseMapper.querySlotRemainWidth(cellLength, glassGap); |
| | | } |
| | | |
| | | @Override |
| | | public List<PieChartVO> queryPieChart(){ |
| | | return this.baseMapper.queryPieChart(); |
| | | } |
| | | } |
| | |
| | | import com.mes.engineering.service.EngineeringService; |
| | | import com.mes.largenscreen.entity.DailyProductionVO; |
| | | import com.mes.largenscreen.entity.DateRequest; |
| | | import com.mes.largenscreen.entity.PieChartVO; |
| | | import com.mes.largenscreen.service.LargenScreenService; |
| | | import com.mes.opctask.entity.EdgStorageDeviceTaskHistory; |
| | | import com.mes.opctask.service.EdgStorageDeviceTaskHistoryService; |
| | |
| | | @Scheduled(fixedDelay = 1000) |
| | | public void querySameDayProductionTask() { |
| | | JSONObject jsonObject = new JSONObject(); |
| | | DailyProductionVO productionVO = largenScreenService.querySameDayProduction(new DateRequest()); |
| | | List<DailyProductionVO> productionVO = largenScreenService.querySameDayProduction(new DateRequest()); |
| | | jsonObject.append("productionVO", productionVO); |
| | | |
| | | ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("largenScreenProduction"); |
| | |
| | | ); |
| | | jsonObject.append("engineeringOne", engineeringOne); |
| | | jsonObject.append("engineeringTwo", engineeringTow); |
| | | List<PieChartVO> pieChartVOS = edgStorageCageDetailsService.queryPieChart(); |
| | | jsonObject.append("pieChartVOS", pieChartVOS); |
| | | ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("largenScreen"); |
| | | if (sendwServer != null) { |
| | | for (WebSocketServer webserver : sendwServer) { |
| | |
| | | sum(GREATEST(width,height)+#{glassGap}) )as |
| | | remain_width from edg_storage_cage_details where state = 100 group by device_id,slot |
| | | </select> |
| | | <select id="queryPieChart" resultType="com.mes.largenscreen.entity.PieChartVO"> |
| | | SELECT |
| | | round(sum( CASE WHEN e.station_cell = 5 THEN 1 ELSE 0 END ),2) as oneCompletedQuantity, |
| | | round(sum( CASE WHEN e.station_cell = 5 THEN escd.width*escd.height/1000000 ELSE 0 END ),2) as oneCompletedArea, |
| | | round(sum( CASE WHEN e.station_cell = 6 THEN 1 ELSE 0 END ),2) as twoCompletedQuantity, |
| | | round(sum( CASE WHEN e.station_cell = 6 THEN escd.width*escd.height/1000000 ELSE 0 END ),2) as twoCompletedArea, |
| | | round(sum( CASE WHEN e.station_cell = 5 and escd.device_id is null THEN 1 ELSE 0 END ),2) as oneUncompletedQuantity, |
| | | round(sum( CASE WHEN e.station_cell = 5 and escd.device_id is null THEN gi.width*gi.height/1000000 ELSE 0 END ),2) as oneUncompletedArea, |
| | | round(sum( CASE WHEN e.station_cell = 6 and escd.device_id is null THEN 1 ELSE 0 END ),2) as twoUncompletedQuantity, |
| | | round(sum( CASE WHEN e.station_cell = 6 and escd.device_id is null THEN gi.width*gi.height/1000000 ELSE 0 END ),2) as twoUncompletedArea |
| | | FROM |
| | | glass_info gi |
| | | left join edg_storage_cage_details escd ON gi.glass_id = escd.glass_id |
| | | left join engineering e on gi.engineer_id=e.engineer_id |
| | | WHERE |
| | | date(e.create_time) = date(now()) |
| | | </select> |
| | | </mapper> |
| | |
| | | import com.mes.bigstorage.entity.dto.BigStorageSummaryDTO; |
| | | import com.mes.bigstorage.entity.vo.BigStorageDetailsQueryVO; |
| | | import com.mes.glassinfo.entity.GlassInfo; |
| | | import com.mes.largenscreen.entity.PieChartVO; |
| | | |
| | | import java.util.List; |
| | | import java.util.Map; |
| | |
| | | |
| | | Boolean resetCage(); |
| | | |
| | | List<PieChartVO> queryPieChart(); |
| | | |
| | | // List<Integer> queryFreeDeviceByNotUsed(double thickness); |
| | | } |
| | |
| | | import com.mes.common.config.Const; |
| | | import com.mes.glassinfo.entity.GlassInfo; |
| | | import com.mes.glassinfo.service.GlassInfoService; |
| | | import com.mes.largenscreen.entity.PieChartVO; |
| | | import com.mes.temperingglass.entity.TemperingGlassInfo; |
| | | import com.mes.temperingglass.service.TemperingGlassInfoService; |
| | | import lombok.extern.slf4j.Slf4j; |
| | |
| | | return Boolean.TRUE; |
| | | } |
| | | |
| | | @Override |
| | | public List<PieChartVO> queryPieChart() { |
| | | return baseMapper.queryPieChart(); |
| | | } |
| | | |
| | | // @Override |
| | | // public List<Integer> queryFreeDeviceByNotUsed(double thickness) { |
| | | // return baseMapper.queryFreeDeviceByNotUsed(thickness); |
| | |
| | | import com.mes.bigstoragecagetask.service.BigStorageCageTaskService; |
| | | import com.mes.common.config.Const; |
| | | import com.mes.glassinfo.service.GlassInfoService; |
| | | import com.mes.largenscreen.entity.PieChartVO; |
| | | import com.mes.temperingglass.entity.TemperingGlassInfo; |
| | | import com.mes.temperingglass.service.TemperingGlassInfoService; |
| | | import com.mes.tools.WebSocketServer; |
| | |
| | | //理片笼使用情况 |
| | | List<Map<String, Object>> bigStorageCageUsage = bigStorageCageService.selectBigStorageCageUsage(); |
| | | jsonObject.append("bigStorageCageUsage", bigStorageCageUsage); |
| | | List<PieChartVO> pieChartVOS = bigStorageCageService.queryPieChart(); |
| | | jsonObject.append("pieChartVOS", pieChartVOS); |
| | | ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("largenScreen"); |
| | | if (sendwServer != null) { |
| | | for (WebSocketServer webserver : sendwServer) { |
| | |
| | | import com.mes.damage.entity.Damage; |
| | | import com.mes.damage.service.DamageService; |
| | | import com.mes.engineering.entity.Engineering; |
| | | import com.mes.largenscreen.entity.PieChartVO; |
| | | import com.mes.temperingglass.service.TemperingGlassInfoService; |
| | | import com.mes.temperingglass.entity.TemperingGlassInfo; |
| | | import com.mes.tools.WebSocketServer; |
| | |
| | | .groupBy(TemperingGlassInfo::getEngineerId, TemperingGlassInfo::getTemperingLayoutId) // 按 engineerId 和 temperingLayoutId 分组 |
| | | ); |
| | | jsonObject.append("temperingGlassInfoInList", temperingGlassInfoInList.size()); |
| | | //钢化饼图数据 |
| | | List<PieChartVO> pieChartVOS = temperingAgoService.queryPieChart(); |
| | | jsonObject.append("pieChartVOS", pieChartVOS); |
| | | ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("largenScreen"); |
| | | if (sendwServer != null) { |
| | | for (WebSocketServer webserver : sendwServer) { |
| | |
| | | import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
| | | import com.mes.hollow.entity.HollowGlassOutRelationInfo; |
| | | import com.mes.hollow.entity.dto.OrderDTO; |
| | | import com.mes.largenscreen.entity.PieChartVO; |
| | | import org.apache.ibatis.annotations.Param; |
| | | |
| | | import java.util.List; |
| | | |
| | | /** |
| | | * (HollowGlassOutRelationInfo)表数据库访问层 |
| | |
| | | public interface HollowGlassOutRelationInfoMapper extends BaseMapper<HollowGlassOutRelationInfo> { |
| | | |
| | | OrderDTO queryOrderByFlowCardId(@Param("flowCardId") String flowCardId); |
| | | |
| | | List<PieChartVO> queryPieChart(); |
| | | } |
| | | |
| | |
| | | import com.mes.hollow.entity.request.HollowHistoryTaskRequest; |
| | | import com.mes.hollow.entity.request.HollowTaskRequest; |
| | | import com.mes.hollowqueue.entity.HollowGlassQueueInfo; |
| | | import com.mes.largenscreen.entity.PieChartVO; |
| | | |
| | | import java.io.IOException; |
| | | import java.util.List; |
| | |
| | | String generateHollowLisecFile(String flowCardId, int cell, int isForce, int isOut) throws IOException; |
| | | |
| | | Page<HollowGlassOutRelationInfo> queryHollowHistoryTask(HollowHistoryTaskRequest request); |
| | | |
| | | List<PieChartVO> queryPieChart(); |
| | | } |
| | | |
| | |
| | | import com.mes.hollow.service.HollowGlassRelationInfoService; |
| | | import com.mes.hollowqueue.entity.HollowGlassQueueInfo; |
| | | import com.mes.hollowqueue.service.HollowGlassQueueInfoService; |
| | | import com.mes.largenscreen.entity.PieChartVO; |
| | | import com.mes.tools.DateUtil; |
| | | import com.mes.utils.Blank; |
| | | import com.mes.utils.RedisUtil; |
| | |
| | | queueInfo.setUpdateTime(new Date()); |
| | | return queueInfo; |
| | | } |
| | | |
| | | @Override |
| | | public List<PieChartVO> queryPieChart(){ |
| | | return baseMapper.queryPieChart(); |
| | | } |
| | | } |
| | | |
| | |
| | | import com.mes.hollow.service.HollowGlassRelationInfoService; |
| | | import com.mes.hollowqueue.entity.HollowGlassQueueInfo; |
| | | import com.mes.hollowqueue.service.HollowGlassQueueInfoService; |
| | | import com.mes.largenscreen.entity.PieChartVO; |
| | | import com.mes.tools.WebSocketServer; |
| | | import com.mes.utils.RedisUtil; |
| | | import lombok.extern.slf4j.Slf4j; |
| | |
| | | //理片笼使用情况 |
| | | List<Map<String, Object>> hollowBigStorageCageUsage = hollowBigStorageCageService.selectBigStorageCageUsage(); |
| | | jsonObject.append("hollowBigStorageCageUsage", hollowBigStorageCageUsage); |
| | | //钢化饼图数据 |
| | | List<PieChartVO> pieChartVOS = hollowGlassOutRelationInfoService.queryPieChart(); |
| | | jsonObject.append("pieChartVOS", pieChartVOS); |
| | | ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("largenScreen"); |
| | | if (sendwServer != null) { |
| | | for (WebSocketServer webserver : sendwServer) { |
| | |
| | | where t.process_id = #{flowCardId} |
| | | limit 1 |
| | | </select> |
| | | <select id="queryPieChart" resultType="com.mes.largenscreen.entity.PieChartVO"> |
| | | SELECT |
| | | round( sum( CASE WHEN hgori.cell = 930 AND hgqi.state = 0 THEN 1 ELSE 0 END ), 2 ) AS oneCompletedQuantity, |
| | | round( |
| | | sum( CASE WHEN hgori.cell = 930 AND hgqi.state = 0 THEN hgqi.width * hgqi.height / 1000000 ELSE 0 END ), |
| | | 2 |
| | | ) AS oneCompletedArea, |
| | | round( sum( CASE WHEN hgori.cell = 931 AND hgqi.state = 0 THEN 1 ELSE 0 END ), 2 ) AS twoCompletedQuantity, |
| | | round( |
| | | sum( CASE WHEN hgori.cell = 931 AND hgqi.state = 0 THEN hgqi.width * hgqi.height / 1000000 ELSE 0 END ), |
| | | 2 |
| | | ) AS twoCompletedArea, |
| | | round( sum( CASE WHEN hgori.cell = 930 AND hgqi.state =- 1 THEN 1 ELSE 0 END ), 2 ) AS oneUncompletedQuantity, |
| | | round( |
| | | sum( CASE WHEN hgori.cell = 930 AND hgqi.state =- 1 THEN hgqi.width * hgqi.height / 1000000 ELSE 0 END ), |
| | | 2 |
| | | ) AS oneUncompletedArea, |
| | | round( sum( CASE WHEN hgori.cell = 931 AND hgqi.state =- 1 THEN 1 ELSE 0 END ), 2 ) AS twoUncompletedQuantity, |
| | | round( |
| | | sum( CASE WHEN hgori.cell = 931 AND hgqi.state =- 1 THEN hgqi.width * hgqi.height / 1000000 ELSE 0 END ), |
| | | 2 |
| | | ) AS twoUncompletedArea |
| | | FROM |
| | | hollow_glass_out_relation_info hgori |
| | | INNER JOIN hollow_glass_queue_info hgqi ON hgori.formula_id = hgqi.relation_id |
| | | WHERE |
| | | date( hgori.create_time ) = date( |
| | | now()) |
| | | </select> |
| | | </mapper> |