UI-Project/config.js
@@ -1,9 +1,9 @@ export default { serverUrl: "10.153.19.150:88/api", // serverUrl: "192.168.1.199:88/api", // serverUrl: "10.153.19.150:88/api", serverUrl: "192.168.1.199:88/api", // serverUrl: "127.0.0.1:88/api", serverUrl2: "10.153.19.150:88" // serverUrl2: "192.168.1.199:88" // serverUrl2: "10.153.19.150:88" serverUrl2: "192.168.1.199:88" // serverUrl2: "127.0.0.1:88" //serverUrl:"res.abeim.cn" UI-Project/src/utils/constants.js
@@ -1,4 +1,4 @@ // export const WebSocketHost = "192.168.1.199"; export const WebSocketHost = "10.153.19.150"; export const WebSocketHost = "192.168.1.199"; // export const WebSocketHost = "10.153.19.150"; // export const WebSocketHost = "127.0.0.1"; export const host = "88"; UI-Project/src/views/Slicecage/slicecage.vue
@@ -6,10 +6,13 @@ import {useRouter} from "vue-router" const router = useRouter() import request from "@/utils/request" import { WebSocketHost ,host} from '@/utils/constants' import { ref, onMounted , onBeforeUnmount, reactive, computed,onUnmounted } from "vue"; import { initializeWebSocket, closeWebSocket } from '@/utils/WebSocketService'; import { ElMessage, ElMessageBox } from 'element-plus' import PrintLabel from "@/views/UnLoadGlass/PrintCustomLabelSemi1.vue"; const dialogFormVisibleaDownGlasss = ref(false) const scanGlass = ref([]) const {t} = useI18n() let language = ref(localStorage.getItem('lang') || 'zh') const router = useRouter() import { tr } from "element-plus/es/locale"; const dialogFormVisible = ref(false) const dialoglea = ref(false) @@ -142,6 +145,61 @@ if (page >= 1 && page <= totalPages.value) { currentPage.value = page; } } const printFlowCardId = ref('') const printLayer = ref('') const printGlassId = ref('') const dialogTableVisible1 = ref(false) const open1 = async (row) => { printFlowCardId.value = row.flowCardId; printLayer.value = row.layer printGlassId.value = row.glassId dialogTableVisible1.value = true; setTimeout(() => { printFlowCard1(); //dialogTableVisible1.value = false; }, 1000); } const printFlowCard1 = () => { // 需要打印的局部区域赋予"print-wrap"的id let el = document.getElementById("printFlowCard"); let doc = document; let body = doc.body || doc.getElementsByTagName("body")[0]; let printId = "print-" + Date.now(); // 创建无副作用的打印容器(因不确定页面的打印元素有无其它样式) let content = doc.createElement("div"); content.id = printId; // 样式控制与打印无关的元素隐藏 let style = doc.createElement("style"); style.innerHTML = "body>#" + printId + "{display:none}@media print{" + "@page {" + " size: auto; " + " margin: 2mm 2mm 2mm 2mm; " + " }body>:not(#" + printId + "){display:none !important}body>#" + printId + "{display:block;padding-top:1px}}"; // content.innerHTML = el.outerHTML; // // console.log("el.outerHTML", el.outerHTML); body.appendChild(style); // 与style元素设置的样式相配合 // 把打印内容的元素添加到body(作为body的子元素,可用body的子选择器 '>' 控制打印样式) body.appendChild(content); setTimeout(() => { window.print(); body.removeChild(content); body.removeChild(style); }, 20); } // 上一页和下一页方法 const prevPage = () => { @@ -704,6 +762,18 @@ const socketUrl = `ws://${WebSocketHost}:${host}/api/cacheVerticalGlass/api/talk/slicecage`; // 定义消息处理函数,更新 receivedData 变量 const handleMessage = (data) => { if (data.scanGlass != null) { scanGlass.value = data.scanGlass[0]; let width = scanGlass.value.width; let height = scanGlass.value.height; if (width < height) { scanGlass.value.width = height; scanGlass.value.height = width; } if (autoPrint.value == true && browser.value == true) { open1(scanGlass); } } //当前指定工程 if(data.bigStorageCageDetailsOutTask!=null){ temperingengineerId.value=data.temperingengineerId[0]; @@ -878,6 +948,7 @@ // console.log("关闭了") closeWebSocket(); }); </script> <template> @@ -888,6 +959,9 @@ <el-button style="margin-top: 5px;margin-left: 10px;" id="searchButton" type="info" @click="handlezhiban">{{ $t('searchOrder.dutyinformation') }}</el-button> <el-button style="margin-top: 5px;margin-left: 10px;" id="searchButton" type="info" @click="dialogFormVisibles=true;fetchFlows()">{{ $t('searchOrder.searchlayout') }}</el-button> <el-switch style="margin-top: 5px;margin-left: 10px;" v-model="ganghua" class="mb-2" :inactive-text="$t('searchOrder.temperedswitch')" @change="handleChange" /> <el-button style="margin-top: 10px;margin-left: 10px;margin-bottom: 10px;" id="searchButton" type="primary" @click="dialogFormVisibleaDownGlasss = true">人工下片 </el-button> <el-card style="flex: 1;margin-left: 10px;margin-top: 5px;" v-loading="loading"> <div style="width: 98%; height: calc(100% - 35px); overflow-y: auto;max-height: 100px;"> <el-table height="100px" ref="table" @@ -898,9 +972,9 @@ <el-table-column prop="bigStorageCageOutTask.trainNumber" align="center" :label="$t('searchOrder.trips')" min-width="120" /> <el-table-column prop="bigStorageCageOutTask.serialNumber" align="center" :label="$t('searchOrder.number')" min-width="120" /> <el-table-column prop="bigStorageCageOutTask.taskState" align="center" :label="$t('searchOrder.taskstatus')" min-width="157"> <template #default="scope"> <el-tag type="success" >{{ scope.row.bigStorageCageOutTask.taskState==0? $t('searchOrder.filmenter') : $t('searchOrder.infilm') }}</el-tag> </template> <!-- <template #default="scope"> <el-tag type="success" >{{ scope.row.bigStorageCageOutTask.taskState==0? $t('searchOrder.filmenter') : $t('searchOrder.infilm') }}111</el-tag> </template> --> </el-table-column> <!-- <el-table-column prop="id" align="center" :label="$t('searchOrder.tabid')" min-width="150"/> --> <el-table-column prop="deviceId" align="center" :label="$t('searchOrder.tid')" min-width="100"/> @@ -1608,6 +1682,33 @@ </el-table-column> </el-table> </el-dialog> <el-dialog v-model="dialogFormVisibleaDownGlasss" top="2vh" width="97%" :title="$t('人工下片信息')"> <div style="display:flex;justify-content: space-around;"> <el-card style="display: flex; justify-content: center; align-items: center; width: 800px; height: 800px;position: relative;"> <div :style="{ width: scanGlass.width + 'px', height: scanGlass.height + 'px', backgroundColor: '#e1f3d8', transform: 'scale(' + 800 / (scanGlass.width > scanGlass.height ? scanGlass.width : scanGlass.height) + ')' }"> </div> <div style="font-size: 50px; text-align: center;position: absolute;top:0px;left:200px;"> <div>扫码枪当前玻璃信息</div> <div> <el-button type="primary" @click="open1(scanGlass)">打印标签</el-button> </div> <div>{{ scanGlass.flowCardId }}</div> <div>{{ scanGlass.layer }}</div> <div>{{ scanGlass.glassId }}</div> <div>{{ scanGlass.width }}</div> <div>{{ scanGlass.height }}</div> </div> </el-card> </div> </el-dialog> <el-dialog id="sizePrintCalrd1" v-model="dialogTableVisible1" destroy-on-close> <print-label id="printFlowCard" :printFlowCardId="printFlowCardId" :printLayer="printLayer" :printGlassId="printGlassId" style=""/> </el-dialog> </template> <style scoped> #dt { display:block; float:left;line-height: 20px;margin-left: 100px;} hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/service/DamageService.java
@@ -18,8 +18,6 @@ */ public interface DamageService extends MPJBaseService<Damage> { List<Damage> selectDamage(String startTime, String endTime, int type, String workingProcedure); List<Damage> selectDamage(String startTime, String endTime, int type, int status, String workingProcedure); // List<Damage> selectDamage(String startTime, String endTime, int type, int status, String workingProcedure); hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/service/impl/DamageServiceImpl.java
@@ -53,10 +53,6 @@ @Resource WorkAssignmentMapper workAssignmentMapper; @Override public List<Damage> selectDamage(String startTime, String endTime, int type, String workingProcedure) { return null; } /** * 查询报工信息 @@ -174,14 +170,22 @@ */ @Override public void insertDamage(Damage damage) { List<Damage> damage1 = baseMapper.selectList( new LambdaQueryWrapper<Damage>() .ne(Damage::getType, Const.GLASS_STATE_DAMAGE) .ne(Damage::getType, Const.GLASS_STATE_TAKE) .eq(Damage::getLine, damage.getLine()) .eq(Damage::getWorkingProcedure, damage.getWorkingProcedure()) .eq(Damage::getGlassId, damage.getGlassId()) ); List<Damage> damage1 = null; if (Const.GLASS_STATE_DAMAGE.equals(damage.getType()) || Const.GLASS_STATE_TAKE.equals(damage.getType())) { damage1 = baseMapper.selectList( new LambdaQueryWrapper<Damage>() .in(Damage::getType, Const.GLASS_STATE_DAMAGE, Const.GLASS_STATE_TAKE) .eq(Damage::getGlassId, damage.getGlassId()) ); } else { damage1 = baseMapper.selectList( new LambdaQueryWrapper<Damage>() .notIn(Damage::getType, Const.GLASS_STATE_DAMAGE, Const.GLASS_STATE_TAKE) .eq(Damage::getLine, damage.getLine()) .eq(Damage::getWorkingProcedure, damage.getWorkingProcedure()) .eq(Damage::getGlassId, damage.getGlassId()) ); } if (damage1 == null || damage1.size() == 0) { LambdaQueryWrapper<GlassInfo> glassInfoSelectWrapper = new LambdaQueryWrapper<>(); glassInfoSelectWrapper.eq(GlassInfo::getGlassId, damage.getGlassId()); hangzhoumesParent/moduleService/CacheGlassModule/src/main/resources/application.yml
@@ -15,6 +15,9 @@ mes: threshold: 3 ratio: 10 cache: # 卧式理片最大尺寸 cacheWidth: 4000 cacheHeight: 3000 max: # 第二条线的最大尺寸信息 firstLength: 3500 secondLength: 2500 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/PlcSlicecage.java
@@ -1,19 +1,27 @@ package com.mes.job; import cn.hutool.json.JSONObject; import cn.smallbun.screw.core.util.CollectionUtils; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.mes.bigstorage.entity.BigStorageCageDetails; import com.mes.bigstorage.service.BigStorageCageDetailsService; import com.mes.bigstorage.service.BigStorageCageService; import com.mes.common.utils.RedisUtil; import com.mes.glassinfo.entity.GlassInfo; import com.mes.glassinfo.service.GlassInfoService; import com.mes.temperingglass.entity.TemperingGlassInfo; import com.mes.temperingglass.service.TemperingGlassInfoService; import com.mes.tools.WebSocketServer; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; import javax.annotation.Resource; import java.io.BufferedReader; import java.io.InputStreamReader; import java.net.Socket; import java.util.ArrayList; import java.util.List; import java.util.Map; @@ -33,6 +41,14 @@ private TemperingGlassInfoService temperingGlassInfoService; @Resource private RedisUtil redisUtil; @Autowired private GlassInfoService glassInfoService; @Value("${mes.scan.ip}") private String scanIp; @Value("${mes.scan.port}") private Integer scanPort; private JSONObject jsonObject = new JSONObject(); @@ -67,6 +83,14 @@ temperingSwitch = redisUtil.getCacheObject("temperingSwitch"); } jsonObject.append("temperingSwitch", temperingSwitch); //打印开关 boolean autoPrint = false; if (redisUtil.getCacheObject("autoPrint") == null) { redisUtil.setCacheObject("autoPrint", false); } else { autoPrint = redisUtil.getCacheObject("autoPrint"); } jsonObject.append("autoPrint", autoPrint); //当前指定工程 String temperingengineerId = ""; @@ -144,4 +168,34 @@ } } @Scheduled(fixedDelay = Long.MAX_VALUE) public void scanCodeTask() { log.info("扫描任务已启动"); while (true) { JSONObject jsonObject = new JSONObject(); try (Socket socket = new Socket(scanIp, scanPort); BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()))) { // 接收服务器响应 log.info("等待扫码中......"); String glassId = in.readLine(); log.info("扫描到的玻璃id:{}", glassId); List<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("slicecage"); if (CollectionUtils.isNotEmpty(sendwServer)) { //按照玻璃id获取玻璃信息返回给前端界面,具体需要哪些数据待确认 GlassInfo glassInfo = glassInfoService.getOne(new LambdaQueryWrapper<GlassInfo>() .eq(GlassInfo::getGlassId, glassId).last("limit 1")); if (null == glassInfo) { log.info("按照玻璃id:{},无法找到玻璃信息", glassId); } else { for (WebSocketServer webserver : sendwServer) { jsonObject.append("scanGlass", glassInfo); webserver.sendMessage(jsonObject.toString()); } } } } catch (Exception exception) { log.info("读取异常,原因为{}", exception.getMessage()); } } } } hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/PlcStorageCageTask.java
@@ -437,13 +437,13 @@ List<BigStorageCageOutTask> outSuccessGlass = bigStorageCageOutTaskService.list(new LambdaQueryWrapper<BigStorageCageOutTask>() .in(BigStorageCageOutTask::getGlassId, glassIds).in(BigStorageCageOutTask::getTaskState, Const.BIG_STORAGE_OUT_ALL)); if (CollectionUtils.isNotEmpty(outSuccessGlass)) { for (BigStorageCageOutTask bigStorageCageOutTask:outSuccessGlass ) { if(bigStorageCageOutTask.getEndSlot().equals(Const.ARTIFICIAL_OUT_TARGET_POSITION)){ for (BigStorageCageOutTask bigStorageCageOutTask : outSuccessGlass ) { if (bigStorageCageOutTask.getEndSlot().equals(Const.ARTIFICIAL_OUT_TARGET_POSITION)) { temperingGlassInfoService.update( new LambdaUpdateWrapper<TemperingGlassInfo>() .set(TemperingGlassInfo::getState,Const.TEMPERING_END) .eq(TemperingGlassInfo::getGlassId,bigStorageCageOutTask.getGlassId()) .set(TemperingGlassInfo::getState, Const.TEMPERING_END) .eq(TemperingGlassInfo::getGlassId, bigStorageCageOutTask.getGlassId()) ); } } @@ -527,9 +527,9 @@ Damage damage = new Damage(); damage.setGlassId(bigStorageCageFeedTask.getGlassId()); damage.setLine(bigStorageCageFeedTask.getLine()); damage.setWorkingProcedure("冷加工"); damage.setWorkingProcedure("磨边"); damage.setRemark("进笼前卧转立"); damage.setStatus(0); damage.setStatus(1); damage.setType(bigStorageCageFeedTask.getTaskState()); damageService.insertDamage(damage); slotList.add(bigStorageCageFeedTask.getTargetSlot()); @@ -555,9 +555,9 @@ Damage damage = new Damage(); damage.setGlassId(bigStorageCageOutTask.getGlassId()); damage.setLine(bigStorageCageOutTask.getEndSlot()); damage.setWorkingProcedure("冷加工"); damage.setWorkingProcedure("钢化"); damage.setRemark("出片后卧转立"); damage.setStatus(0); damage.setStatus(1); damage.setType(bigStorageCageOutTask.getTaskState()); damageService.insertDamage(damage); slotList.add(bigStorageCageOutTask.getStartSlot()); @@ -572,6 +572,104 @@ } /** * 确认字清空 */ // @Scheduled(fixedDelay = 300) public void confirmClear() { PlcParameterObject plcParameterObject = S7object.getinstance().PlcMesObject; String d01ToMES = plcParameterObject.getPlcParameter("D01ToMES").getValue(); String d04ToMES = plcParameterObject.getPlcParameter("D04ToMES").getValue(); String mesD01Address = plcParameterObject.getPlcParameter("MESToD01").getAddress(); String mesD04Address = plcParameterObject.getPlcParameter("MESToD04").getAddress(); String d03ToMES = plcParameterObject.getPlcParameter("D03ToMES").getValue(); String d05ToMES = plcParameterObject.getPlcParameter("D05ToMES").getValue(); String mesD03Address = plcParameterObject.getPlcParameter("MESToD03").getAddress(); String mesD05Address = plcParameterObject.getPlcParameter("MESToD05").getAddress(); if (!REQUEST_WORD.equals(d01ToMES)) { S7object.getinstance().plccontrol.writeWord(mesD01Address, 0); } if (!REQUEST_WORD.equals(d04ToMES)) { S7object.getinstance().plccontrol.writeWord(mesD04Address, 0); } if (!REQUEST_WORD.equals(d03ToMES)) { S7object.getinstance().plccontrol.writeWord(mesD03Address, 0); } if (!REQUEST_WORD.equals(d05ToMES)) { S7object.getinstance().plccontrol.writeWord(mesD05Address, 0); } } /** * 进片状态修改 */ // @Scheduled(fixedDelay = 300) public void feedStatusUpdate() { PlcParameterObject plcParameterObject = S7object.getinstance().PlcMesObject; List<String> glassIds1 = null; List<String> glassIds2 = null; for (int i = 1; i <= 2; i++) { String line1GlassId = plcParameterObject.getPlcParameter("D03ID" + i).getAddress(); if (StringUtils.isEmpty(line1GlassId)) { glassIds1.add(line1GlassId); } String line2GlassId = plcParameterObject.getPlcParameter("D05ID" + i).getAddress(); if (StringUtils.isEmpty(line2GlassId)) { glassIds1.add(line2GlassId); } } List<BigStorageCageFeedTask> bigStorageCageFeedTasks1 = bigStorageCageFeedTaskService.list( new LambdaQueryWrapper<BigStorageCageFeedTask>() .eq(BigStorageCageFeedTask::getTaskState, 1) .eq(BigStorageCageFeedTask::getLine, Const.A09_OUT_TARGET_POSITION) ); List<BigStorageCageFeedTask> bigStorageCageFeedTasks2 = bigStorageCageFeedTaskService.list( new LambdaQueryWrapper<BigStorageCageFeedTask>() .eq(BigStorageCageFeedTask::getTaskState, 1) .eq(BigStorageCageFeedTask::getLine, Const.A10_OUT_TARGET_POSITION) ); if (CollectionUtils.isNotEmpty(bigStorageCageFeedTasks1)) { List<String> matchingIds1 = bigStorageCageFeedTasks1.stream() .map(BigStorageCageFeedTask::getGlassId) .filter(glassIds1::contains) .distinct() .collect(Collectors.toList()); } if (CollectionUtils.isNotEmpty(bigStorageCageFeedTasks2)) { List<String> matchingIds2 = bigStorageCageFeedTasks2.stream() .map(BigStorageCageFeedTask::getGlassId) .filter(glassIds2::contains) .distinct() .collect(Collectors.toList()); } bigStorageCageFeedTaskService.update( new LambdaUpdateWrapper<BigStorageCageFeedTask>() .in(BigStorageCageFeedTask::getGlassId, glassIds1, glassIds2) .lt(BigStorageCageFeedTask::getTaskState, Const.BIG_STORAGE_IN_SLOT) .set(BigStorageCageFeedTask::getTaskState, Const.BIG_STORAGE_IN_UP) ); if (glassIds1 == null) { bigStorageCageFeedTaskService.update( new LambdaUpdateWrapper<BigStorageCageFeedTask>() .eq(BigStorageCageFeedTask::getLine,Const.A09_OUT_TARGET_POSITION) .eq(BigStorageCageFeedTask::getTaskState, Const.BIG_STORAGE_IN_UP) .gt(BigStorageCageFeedTask::getTargetSlot, 0) .lt(BigStorageCageFeedTask::getTaskState, Const.BIG_STORAGE_IN_SLOT) .set(BigStorageCageFeedTask::getTaskState, Const.BIG_STORAGE_IN_CAR) ); } if (glassIds1 == null) { bigStorageCageFeedTaskService.update( new LambdaUpdateWrapper<BigStorageCageFeedTask>() .eq(BigStorageCageFeedTask::getLine,Const.A10_OUT_TARGET_POSITION) .eq(BigStorageCageFeedTask::getTaskState, Const.BIG_STORAGE_IN_UP) .gt(BigStorageCageFeedTask::getTargetSlot, 0) .lt(BigStorageCageFeedTask::getTaskState, Const.BIG_STORAGE_IN_SLOT) .set(BigStorageCageFeedTask::getTaskState, Const.BIG_STORAGE_IN_CAR) ); } } /** * 按照玻璃id判断玻璃状态及卧转立是否可直接启动 */ public Boolean judgeGlassTypeStatus(String glassId, Integer line, String mesAddress) { @@ -581,14 +679,24 @@ .eq(EdgGlassTaskInfo::getLine, line) .apply("time >= (select time from edg_glass_task_info where line='" + line + "' and glass_id = '" + glassId + "' and deleted = 0)") .orderByAsc(EdgGlassTaskInfo::getTime)); if (edgGlassTaskInfoList == null) { log.info("线路:{}识别玻璃信息未出现在尺寸表中,获取相邻两块玻璃失败", line); } else { if (edgGlassTaskInfoList.size() == 0) { edgGlassTaskInfoList = edgGlassTaskInfoService.list(new QueryWrapper<EdgGlassTaskInfo>() .select("Top 1 *") .eq("glass_id", glassId) ); log.info("在尺寸表中获取玻璃信息{}", edgGlassTaskInfoList); if (edgGlassTaskInfoList.size() == 0) { GlassInfo glassInfo = glassInfoService.getOne( new LambdaQueryWrapper<GlassInfo>() .eq(GlassInfo::getGlassId, glassId) ); EdgGlassTaskInfo edgGlassTaskInfo = new EdgGlassTaskInfo(); BeanUtils.copyProperties(glassInfo, edgGlassTaskInfo); edgGlassTaskInfo.setWidth((int) glassInfo.getWidth()); edgGlassTaskInfo.setHeight((int) glassInfo.getHeight()); edgGlassTaskInfoList.add(edgGlassTaskInfo); log.info("在玻璃信息表中获取玻璃信息{}", edgGlassTaskInfoList); } } Assert.isFalse(CollectionUtils.isEmpty(edgGlassTaskInfoList), "识别玻璃信息未出现在尺寸表中,获取相邻两块玻璃失败"); //2、获取卧转立剩余宽度 @@ -651,11 +759,16 @@ //向plc写入确认字 int returnData = 0; int count = 1; while (returnData == 0) { while (returnData != 0) { S7object.getinstance().plccontrol.writeWord(mesAddress, 1); returnData = S7object.getinstance().plccontrol.readWord(mesAddress, 1).get(0); log.info("进卧转立第{}次发送确认字完成,地址为:{},写入的内容为{}", count++, mesAddress, returnData); PlcParameterObject plcParameterObject = S7object.getinstance().PlcMesObject; if (Const.A10_OUT_TARGET_POSITION.equals(line)) { returnData = Integer.parseInt(plcParameterObject.getPlcParameter("D04ToMES").getValue()); } else { returnData = Integer.parseInt(plcParameterObject.getPlcParameter("D01ToMES").getValue()); } // returnData = S7object.getinstance().plccontrol.readWord(mesAddress, 1).get(0); log.info("进卧转立第{}次发送确认字完成,地址为:{},写入的内容为{}", count++, mesAddress, 1); } } //记录无法放下玻璃,后续判断启动 @@ -775,10 +888,15 @@ } int returnData = 0; int count = 1; while (returnData == 0) { while (returnData != 0) { s7control.writeWord(outLine, 2); returnData = s7control.readWord(outLine, 1).get(0); log.info("已向plc第{}次发送进片任务确认,地址为:{},写入的内容为{}", count++, outLine, returnData); if (line.equals(Const.A09_OUT_TARGET_POSITION)) { returnData = Integer.parseInt(plcMesObject.getPlcParameter("MESToD03").getValue()); } else { returnData = Integer.parseInt(plcMesObject.getPlcParameter("MESToD05").getValue()); } // returnData = s7control.readWord(outLine, 1).get(0); log.info("已向plc第{}次发送进片任务确认,地址为:{},写入的内容为{}", count++, outLine, 2); } } @@ -844,7 +962,7 @@ * @param <T> * @return */ private <T extends BigStorageCageBaseInfo> Boolean computeOutMoreGlassInfo(List<T> list, Boolean isTempering, String mesToPLCAddress) { public <T extends BigStorageCageBaseInfo> Boolean computeOutMoreGlassInfo(List<T> list, Boolean isTempering, String mesToPLCAddress) { //任务数据 获取车子存放玻璃最大数量 玻璃间隔 List<BigStorageCageOutTask> bigStorageCageOutTaskList = new ArrayList<>(); //打车剩余尺寸 @@ -891,7 +1009,8 @@ log.info("将出片玻璃{}玻璃状态改为已出片", glassIds); bigStorageCageDetailsService.update(new LambdaUpdateWrapper<BigStorageCageDetails>() .set(BigStorageCageDetails::getState, Const.GLASS_STATE_OUT_ING) .in(BigStorageCageDetails::getGlassId, glassIds)); .in(BigStorageCageDetails::getGlassId, glassIds) .ne(BigStorageCageDetails::getState, Const.GLASS_STATE_OUT)); // int returnData = 0; // int count = 1; // while (returnData == 0) { hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/application.yml
@@ -21,4 +21,10 @@ inCarMaxSize: 0 #进片大车最大存放玻璃数量 outCarMaxSize: 2 #出片大车最大存放玻璃数量 glassGap: 350 #玻璃间距 xMaxSize: 2800 xMaxSize: 2800 scan: ip: 192.168.30.199 port: 5000 kangaroohy: milo: enabled: false hangzhoumesParent/moduleService/GlassStorageModule/src/main/resources/application.yml
@@ -14,5 +14,7 @@ mapper-locations: classpath*:mapper/*.xml configuration: log-impl: org.apache.ibatis.logging.stdout.StdOutImpl kangaroohy: milo: enabled: false hangzhoumesParent/moduleService/LoadGlassModule/src/main/resources/application.yml
@@ -10,4 +10,6 @@ mybatis-plus: mapper-locations: classpath*:mapper/*.xml configuration: log-impl: org.apache.ibatis.logging.stdout.StdOutImpl log-impl: org.apache.ibatis.logging.stdout.StdOutImplkangaroohy: milo: enabled: false hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/job/Downpush.java
@@ -158,7 +158,7 @@ jsonObject4.append("downGlassInfos", downGlassInfos); jsonObject4.append("engineerIdList", engineerIdList); //钢化开关 //打印开关 boolean autoPrint = false; if (redisUtil.getCacheObject("autoPrint") == null) { redisUtil.setCacheObject("autoPrint", false); hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/resources/application.yml
@@ -31,3 +31,6 @@ scan: ip: 192.168.30.199 port: 5000 kangaroohy: milo: enabled: false