Merge branch 'master' of http://10.153.19.25:10101/r/HangZhouMes
| | |
| | | height:'高', |
| | | thickness:'厚', |
| | | glasstakeout:'玻璃拿走清单', |
| | | layoutID:'版图ID', |
| | | glassID:'玻璃ID', |
| | | }, |
| | | reportWork:{ |
| | | lowerbit:'下片位', |
| | |
| | | </el-icon> |
| | | </el-button> |
| | | <div class="header-left"> |
| | | <el-button @click="toggleCollapse" |
| | | style="height:30px;">☰</el-button> |
| | | <!-- <el-button :icon="isCollapse ? 'el-icon-s-unfold' : 'el-icon-s-fold'" @click="toggleCollapse" |
| | | style="height:30px;"></el-button> --> |
| | | <el-button @click="toggleCollapse" style="height: 30px;"> |
| | | <el-icon><Expand /></el-icon> |
| | | </el-button> |
| | | </div> |
| | | </span> |
| | | </div> |
| | |
| | | // Vue.prototype.$echarts = echarts |
| | | // app.component("v-chart", Echarts) |
| | | // app.config.globalProperties.$echarts = echarts |
| | | import * as ElementPlusIconsVue from '@element-plus/icons-vue' |
| | | |
| | | const app = createApp(App) |
| | | for (const [key, component] of Object.entries(ElementPlusIconsVue)) { |
| | | app.component(key, component) |
| | | } |
| | | const pinia = createPinia() |
| | | pinia.use(piniaPluginPersistedstate ) |
| | | app.use(VXETable) |
| | |
| | | tableData.value = response.data |
| | | console.log(response.data); |
| | | } else { |
| | | ElMessage.warning(res.msg) |
| | | ElMessage.warning(response.message) |
| | | } |
| | | } catch (error) { |
| | | // console.error('Error fetching rects :', error); |
| | |
| | | </div> |
| | | <div v-if="dialogFormVisiblec"> |
| | | <!-- 打印 --> |
| | | <el-card style="flex: 1;margin-left: 10px;margin-top: 10px;margin-right: 10px;height: 600px;" v-loading="loading"> |
| | | <el-card style="flex: 1;margin-left: 10px;margin-top: 10px;margin-right: 10px;height: 800px;" v-loading="loading"> |
| | | <div style="display: flex; flex-direction: row; align-items: center; margin-top: 5px;margin-left: 10px;"> |
| | | <el-input :placeholder="$t('processCard.projectnumber')" v-model="engineerId" autocomplete="off" style="width: 300px;"/> |
| | | <el-button type="primary" style="margin-left: 10px;" @click="selectReportData()">{{ $t('processCard.inquire') }}</el-button> |
| | |
| | | <el-card style="flex: 1;margin-left: 10px;margin-top: 15px;" v-loading="loading"> |
| | | <div style="width: 98%; height: calc(100% - 35px); overflow-y: auto;"> |
| | | <el-table |
| | | height="350" |
| | | height="600" |
| | | ref="table" |
| | | :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}" |
| | | :data="tableData" |
| | | > |
| | | <el-table-column prop="engineerId" :label="$t('processCard.project')" width="200" align="center"/> |
| | | <el-table-column prop="workingProcedure" :label="$t('processCard.awayprocess')" align="center"/> |
| | | <el-table-column prop="deviceName" :label="$t('processCard.awayequipment')" align="center"/> |
| | | <el-table-column prop="teamsGroupsName" :label="$t('processCard.awayteam')" align="center"/> |
| | | <el-table-column prop="temperingLayoutId" :label="$t('processCard.layoutID')" align="center"/> |
| | | <el-table-column prop="temperingFeedSequence" :label="$t('processCard.temperingfeed')" align="center"/> |
| | | <el-table-column prop="glassId" :label="$t('processCard.glassID')" align="center"/> |
| | | <el-table-column prop="width" :label="$t('processCard.width')" align="center"/> |
| | | <el-table-column prop="height" :label="$t('processCard.height')" align="center"/> |
| | | <el-table-column prop="thickness" :label="$t('processCard.thickness')" align="center"/> |
| | | </el-table> |
| | | </div> |
| | | </el-card> |
| | |
| | | "dataType": "word", |
| | | "parameteInfor": [{ |
| | | "codeId": "D01ID", |
| | | "addressIndex": "0", |
| | | "addressIndex": "32", |
| | | "addressLenght": "32", |
| | | "ratio": "1", |
| | | "unit": "" |
| | |
| | | package com.mes.bigstorage.controller; |
| | | |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; |
| | | import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; |
| | | import com.mes.bigstorage.entity.BigStorageCageDetails; |
| | | import com.mes.bigstorage.service.BigStorageCageDetailsService; |
| | | import com.mes.bigstorage.service.BigStorageCageService; |
| | | import com.mes.common.config.Const; |
| | | import com.mes.common.utils.RedisUtil; |
| | | import com.mes.utils.Result; |
| | | import io.swagger.annotations.Api; |
| | |
| | | bigStorageCageDetailsService.temperingSwitch(flag); |
| | | return Result.build(200, "修改成功", redisUtil.getCacheObject("temperingSwitch")); |
| | | } |
| | | |
| | | @ApiOperation("流程卡查询") |
| | | @PostMapping("/selectFlowCardByCache") |
| | | public Result selectFlowCardByCache() { |
| | | List<Map<String, Object>> flowCardIdCount=bigStorageCageDetailsService.listMaps( |
| | | new QueryWrapper<BigStorageCageDetails>() |
| | | .select("flow_card_id,layer,count(*) as count") |
| | | .eq("state", Const.GLASS_STATE_IN) |
| | | .eq("tempering_layout_id",0) |
| | | .groupBy("flow_card_id,layer") |
| | | ); |
| | | return Result.build(200, "查询成功", flowCardIdCount); |
| | | } |
| | | |
| | | |
| | | } |
| | | |
| | |
| | | package com.mes.job; |
| | | |
| | | import cn.hutool.json.JSONObject; |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | import com.mes.bigstorage.entity.BigStorageCageDetails; |
| | | import com.mes.bigstorage.service.BigStorageCageDetailsService; |
| | | import com.mes.bigstorage.service.BigStorageCageService; |
| | | import com.mes.common.S7object; |
| | | import com.mes.common.config.Const; |
| | | import com.mes.common.utils.RedisUtil; |
| | | import com.mes.device.PlcParameterObject; |
| | | import com.mes.temperingglass.entity.TemperingGlassInfo; |
| | |
| | | } |
| | | jsonObject.append("temperingSwitch", temperingSwitch); |
| | | |
| | | |
| | | } |
| | | |
| | | public void queryDataSource2() throws InterruptedException { |
| | | //出片队列 |
| | | List<TemperingGlassInfo> temperingGlassInfoList= temperingGlassInfoService.list(); |
| | | List<TemperingGlassInfo> temperingGlassInfoList= temperingGlassInfoService.list( |
| | | new LambdaQueryWrapper<TemperingGlassInfo>() |
| | | .inSql(TemperingGlassInfo::getEngineerId,"select distinct engineer_id from tempering_glass_info where state<4") |
| | | ); |
| | | jsonObject.append("temperingGlassInfoList", temperingGlassInfoList); |
| | | |
| | | } |
| | |
| | | String d03ToMES = plcParameterObject.getPlcParameter("D03ToMES").getValue(); |
| | | String d05ToMES = plcParameterObject.getPlcParameter("D05ToMES").getValue(); |
| | | log.info("执行空车送片任务,获取到的大车状态为{},卧转立状态分别为d03:{},d05:{}", e01Status, d03ToMES, d05ToMES); |
| | | List<BigStorageCageFeedTask> bigStorageCageFeedTasks = bigStorageCageFeedTaskService.list( |
| | | new LambdaQueryWrapper<BigStorageCageFeedTask>() |
| | | .ne(BigStorageCageFeedTask::getTargetSlot, 0) |
| | | .lt(BigStorageCageFeedTask::getTaskState, Const.BIG_STORAGE_IN_SLOT) |
| | | ); |
| | | if (bigStorageCageFeedTasks.size() > 0) { |
| | | Date endDate = new Date(); |
| | | log.info("大车有正在执行的任务{},结束送片任务,任务结束时间:{},共耗时:{}ms,结束扫码任务", bigStorageCageFeedTasks, endDate, endDate.getTime() - startDate.getTime()); |
| | | return; |
| | | } |
| | | if (REQUEST_WORD.equals(e01Status)) { |
| | | Date endDate = new Date(); |
| | | log.info("进片大车非空闲,结束送片任务,任务结束时间:{},共耗时:{}ms,结束扫码任务", endDate, endDate.getTime() - startDate.getTime()); |
| | |
| | | for (int i = 1; i <= taskList.size(); i++) { |
| | | s7control.writeWord(plcMesObject.getPlcParameter("StartAddToImport" + i).getAddress(), taskList.get(i - 1).getLine()); |
| | | s7control.writeWord(plcMesObject.getPlcParameter("TargetAddToImport" + i).getAddress(), taskList.get(i - 1).getTargetSlot()); |
| | | log.info("向plc发送第{}片玻璃已完成", i); |
| | | log.info("向plc发送第{}片玻璃已完成,起始位置是{},目标位置是", i, taskList.get(i - 1).getLine(), taskList.get(i - 1).getTargetSlot()); |
| | | } |
| | | int returnData = 0; |
| | | int count = 1; |
| | |
| | | List<Integer> workList = new ArrayList(); |
| | | if (flag08) { |
| | | if (!"2".equals(glassStatus11)) { |
| | | workList.addAll(Const.G11_WORK_STATION); |
| | | List<Integer> wroklistOne = downWorkstationService.list(new LambdaQueryWrapper<DownWorkstation>() |
| | | .eq(DownWorkstation::getEnableState, Const.SLOT_ON).in(DownWorkstation::getWorkstationId, Const.G11_WORK_STATION)) |
| | | .stream() |
| | | .map(DownWorkstation::getWorkstationId) |
| | | .collect(Collectors.toList()); |
| | | workList.addAll(wroklistOne); |
| | | } |
| | | } else { |
| | | if (!"2".equals(glassStatus06)) { |
| | | workList.addAll(Const.G06_WORK_STATION); |
| | | List<Integer> wroklistTwo = downWorkstationService.list(new LambdaQueryWrapper<DownWorkstation>() |
| | | .eq(DownWorkstation::getEnableState, Const.SLOT_ON).in(DownWorkstation::getWorkstationId, Const.G06_WORK_STATION)) |
| | | .stream() |
| | | .map(DownWorkstation::getWorkstationId) |
| | | .collect(Collectors.toList()); |
| | | workList.addAll(wroklistTwo); |
| | | } |
| | | } |
| | | List<Integer> workStationAll = Arrays.asList(1, 2, 3, 4, 5, 6); |