UI-Project/src/views/ReportWork/reportWork.vue
@@ -7,8 +7,8 @@ <el-select v-model="report.type" :placeholder="$t('reportmanage.ctype')" style="margin-left: 10px;" > <el-option :label="$t('reportmanage.all')" value="0"></el-option> <el-option :label="$t('reportmanage.completed')" value="1"></el-option> <el-option :label="$t('reportmanage.broke')" value="2"></el-option> <el-option :label="$t('reportmanage.takeout')" value="3"></el-option> <el-option :label="$t('reportmanage.broke')" value="8"></el-option> <el-option :label="$t('reportmanage.takeout')" value="9"></el-option> </el-select> <el-select v-model="report.status" :placeholder="$t('reportmanage.cstate')" style="margin-left: 10px;" > <el-option :label="$t('reportmanage.all')" value="0"></el-option> hangzhoumesParent/JsonFile/PlcCacheVerticalGlass.json
@@ -74,7 +74,7 @@ }, { "codeId": "D05ID2", "addressIndex": "328", "addressIndex": "320", "addressLenght": "32", "ratio": "1", "unit": "" @@ -372,6 +372,21 @@ "addressLenght": "2", "ratio": "1", "unit": "" }, { "codeId": "D03Request", "addressIndex": "898", "addressLenght": "2", "ratio": "1", "unit": "" }, { "codeId": "D05Request", "addressIndex": "900", "addressLenght": "2", "ratio": "1", "unit": "" } ] } hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/service/impl/EdgStorageCageServiceImpl.java
@@ -19,6 +19,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -35,9 +36,9 @@ @Service public class EdgStorageCageServiceImpl extends MPJBaseServiceImpl<EdgStorageCageMapper, EdgStorageCage> implements EdgStorageCageService { @Autowired @Resource EdgStorageCageDetailsMapper edgStorageCageDetailsMapper; @Autowired @Resource UpPattenUsageMapper upPattenUsageMapper; @Autowired @@ -51,6 +52,7 @@ .eq(EdgStorageCageDetails::getSlot, EdgStorageCage::getSlot) .eq(EdgStorageCageDetails::getState, Const.GLASS_STATE_IN)) .isNull(EdgStorageCageDetails::getSlot) .eq(EdgStorageCage::getEnableState, Const.SLOT_ON) .last("order by abs(t.slot - " + currentSlot + ") asc limit 2") ); if (flag && CollectionUtil.isNotEmpty(emptyList)) { hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/impl/BigStorageCageDetailsServiceImpl.java
@@ -310,6 +310,29 @@ //获取玻璃的厚度:重新选笼子需要按照笼子可放玻璃厚度进行选择 因为子查询排序对主sql无影响,所以先执行子查询获取顺序,然后一次去查询 List<Integer> deviceUsedList = bigStorageCageService.queryFreeDeviceByUsed(glassInfo.getThickness()); List<Integer> deviceUseds = bigStorageCageService.queryFreeDeviceByUsed(glassInfo.getThickness()); List<BigStorageCageDetails> engineerCount1 = baseMapper.selectList( new LambdaQueryWrapper<BigStorageCageDetails>() .notIn(BigStorageCageDetails::getState, Const.GLASS_STATE_OUT,Const.GLASS_STATE_DAMAGE,Const.GLASS_STATE_TAKE) .select(BigStorageCageDetails::getEngineerId) .groupBy(BigStorageCageDetails::getEngineerId) .between(BigStorageCageDetails::getDeviceId, 1, 5) ); List<BigStorageCageDetails> engineerCount2 = baseMapper.selectList( new LambdaQueryWrapper<BigStorageCageDetails>() .notIn(BigStorageCageDetails::getState, Const.GLASS_STATE_OUT,Const.GLASS_STATE_DAMAGE,Const.GLASS_STATE_TAKE) .select(BigStorageCageDetails::getEngineerId) .groupBy(BigStorageCageDetails::getEngineerId) .between(BigStorageCageDetails::getDeviceId, 6, 8) ); if (engineerCount1.size() > engineerCount2.size()) { deviceUsedList.removeIf(device -> device < 6); } else { deviceUsedList.removeIf(device -> device > 5); } if (CollectionUtils.isEmpty(deviceUsedList)) { deviceUsedList = deviceUseds; } for (Integer item : deviceUsedList) { bigStorageCage = bigStorageCageService.getOne(new LambdaQueryWrapper<BigStorageCage>() .eq(BigStorageCage::getRemainWidth, slotWidth) @@ -381,17 +404,17 @@ .in(BigStorageCageDetails::getState, Const.GLASS_STATE_IN) .orderBy(Boolean.TRUE, sequenceOrder, GlassInfo::getTemperingFeedSequence)); if (CollectionUtils.isNotEmpty(temperingGlassInfos)) { if ("0".equals(temperingFeedSequence)){ if ("0".equals(temperingFeedSequence)) { if (CollectionUtils.isNotEmpty(temperingGlassInfos)) { plcStorageCageTask.computeOutMoreGlassInfo(temperingGlassInfos, Boolean.FALSE, ""); } }else{ } else { temperingGlassInfoService.saveBatch(temperingGlassInfos); } return true; } } return false; return false; } hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/impl/BigStorageCageServiceImpl.java
@@ -53,6 +53,9 @@ @Value("${mes.glassGap}") private Integer glassGap; @Value("${mes.slotWidth}") private Integer slotWidth; //进片逻辑 @Override public BigStorageCageDetails feedGlass(GlassInfo glassInfo, BigStorageCageDetails bigStorageCageDetails) { @@ -226,7 +229,7 @@ List<BigStorageCageDetails> bigStorageCageDetailsList = bigStorageCageDetailsMapper.selectList(bigStorageCageDetailsWrapper); for (BigStorageCageDetails bigStorageCageDetails : bigStorageCageDetailsList ) { double widths = Math.max(bigStorageCageDetails.getWidth(),bigStorageCageDetails.getHeight()) ; double widths = Math.max(bigStorageCageDetails.getWidth(), bigStorageCageDetails.getHeight()); width = width - widths - glassGap; } //修改格子剩余宽度 @@ -243,9 +246,9 @@ MPJLambdaWrapper<BigStorageCage> wrapper = new MPJLambdaWrapper<>(); wrapper.selectAll(BigStorageCage.class).selectCollection(BigStorageCageDetails.class, BigStorageCage::getBigStorageCageDetails) .leftJoin(BigStorageCageDetails.class, on -> on.eq(BigStorageCageDetails::getSlot, BigStorageCage::getSlot) .in(BigStorageCageDetails::getState, Const.GLASS_STATE_IN, Const.GLASS_STATE_ARTIFICIAL,Const.GLASS_STATE_OUT_ING)) .orderByAsc(BigStorageCage::getDeviceId) .orderByAsc(BigStorageCage::getSlot); .in(BigStorageCageDetails::getState, Const.GLASS_STATE_IN, Const.GLASS_STATE_ARTIFICIAL, Const.GLASS_STATE_OUT_ING)) .orderByAsc(BigStorageCage::getDeviceId) .orderByAsc(BigStorageCage::getSlot); return bigStorageCageMapper.selectJoinList(BigStorageCage.class, wrapper); } @@ -256,7 +259,7 @@ MPJLambdaWrapper<BigStorageCage> wrapper = new MPJLambdaWrapper<>(); wrapper.selectAll(BigStorageCage.class).selectCollection(BigStorageCageDetails.class, BigStorageCage::getBigStorageCageDetails) .leftJoin(BigStorageCageDetails.class, on -> on.eq(BigStorageCageDetails::getSlot, BigStorageCage::getSlot) .in(BigStorageCageDetails::getState, Const.GLASS_STATE_IN, Const.GLASS_STATE_ARTIFICIAL,Const.GLASS_STATE_OUT_ING)); .in(BigStorageCageDetails::getState, Const.GLASS_STATE_IN, Const.GLASS_STATE_ARTIFICIAL, Const.GLASS_STATE_OUT_ING)); List<BigStorageCage> bigStorageCages = bigStorageCageMapper.selectJoinList(BigStorageCage.class, wrapper); Map<Integer, List<BigStorageCage>> listMap = bigStorageCages.stream().collect(Collectors.groupingBy(item -> item.getDeviceId())); return listMap; @@ -266,8 +269,7 @@ @Override public List<Map<String, Object>> selectBigStorageCageUsage() { QueryWrapper<BigStorageCage> wrapper = new QueryWrapper<>(); wrapper.select("device_id,ROUND(1 - SUM(CASE WHEN remain_width = 5000 THEN 1 ELSE 0 END) / COUNT(device_id), 2)*100 AS percentage,SUM(CASE WHEN remain_width = 5000 THEN 1 ELSE 0 END) AS count") wrapper.select("device_id,ROUND(1 - SUM(CASE WHEN remain_width = " + slotWidth + " THEN 1 ELSE 0 END) / COUNT(device_id), 2)*100 AS percentage,SUM(CASE WHEN remain_width = " + slotWidth + " THEN 1 ELSE 0 END) AS count") .groupBy("device_id"); List<Map<String, Object>> bigStorageCageUsages = baseMapper.selectMaps(wrapper); hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/common/S7object.java
@@ -62,12 +62,14 @@ log.info("大理片笼读取plc数据,开始时间:{},结束时间:{},共耗时:{}ms,结束扫码任务", startDate, endDate, endDate.getTime() - startDate.getTime()); if (getplcvlues != null) { PlcMesObject.setPlcParameterList(getplcvlues); log.info("大理片当前进卧转立确认字为d01:{},d04:{},进笼送片任务确认字为:d03:{},d05:{},出片任务确认字为{}", log.info("大理片当前进卧转立确认字为d01:{},d04:{},进笼送片任务确认字为:d03:{},d05:{},出片任务确认字为{},D03请求字为:{},D05请求字为:{}", PlcMesObject.getPlcParameter("MESToD01").getValue(), PlcMesObject.getPlcParameter("MESToD04").getValue(), PlcMesObject.getPlcParameter("MESToD03").getValue(), PlcMesObject.getPlcParameter("MESToD05").getValue(), PlcMesObject.getPlcParameter("MESToPLC").getValue()); PlcMesObject.getPlcParameter("MESToPLC").getValue(), PlcMesObject.getPlcParameter("D03ToMES").getValue(), PlcMesObject.getPlcParameter("D05ToMES").getValue()); } } } hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/PlcStorageCageTask.java
@@ -127,21 +127,38 @@ } //按照线路及玻璃id获取相邻两块玻璃 卧转立上的玻璃: 状态为0不操作(D01送片,0不操作,1允许送片),请求字为1, (02玻璃id为空或者卧转立未启动) if (!REQUEST_WORD.equals(mesD01Value) && REQUEST_WORD.equals(d01ToMES) && (StringUtils.isBlank(d02State) || !REQUEST_WORD.equals(d03State))) { if (!d01GlassId.equals(d01Id)) { judgeGlassTypeStatus(d01Id, Const.A09_OUT_TARGET_POSITION, mesD01Address); edgGlassTaskInfoService.update(new LambdaUpdateWrapper<EdgGlassTaskInfo>() .set(EdgGlassTaskInfo::getStatus, Const.EDG_GLASS_SUCCESS).eq(EdgGlassTaskInfo::getGlassId, d01Id)); List<BigStorageCageFeedTask> bigStorageCageFeedTasks=bigStorageCageFeedTaskService.list( new LambdaQueryWrapper<BigStorageCageFeedTask>() .gt(BigStorageCageFeedTask::getTargetSlot,0) .eq(BigStorageCageFeedTask::getLine,Const.A09_OUT_TARGET_POSITION) .eq(BigStorageCageFeedTask::getTaskState,Const.BIG_STORAGE_IN_UP) ); if(CollectionUtils.isEmpty(bigStorageCageFeedTasks)){ if (!d01GlassId.equals(d01Id)) { judgeGlassTypeStatus(d01Id, Const.A09_OUT_TARGET_POSITION, mesD01Address); edgGlassTaskInfoService.update(new LambdaUpdateWrapper<EdgGlassTaskInfo>() .set(EdgGlassTaskInfo::getStatus, Const.EDG_GLASS_SUCCESS).eq(EdgGlassTaskInfo::getGlassId, d01Id)); // d01GlassId = d01Id; } } } // 状态为0不操作(D01送片,0不操作,1允许送片),请求字为1, 卧转立未启动 if (!REQUEST_WORD.equals(mesD04Value) && REQUEST_WORD.equals(d04ToMES) && !REQUEST_WORD.equals(d05State)) { if (!d04GlassId.equals(d04Id)) { judgeGlassTypeStatus(d04Id, Const.A10_OUT_TARGET_POSITION, mesD04Address); edgGlassTaskInfoService.update(new LambdaUpdateWrapper<EdgGlassTaskInfo>() .set(EdgGlassTaskInfo::getStatus, Const.EDG_GLASS_SUCCESS).eq(EdgGlassTaskInfo::getGlassId, d04Id)); List<BigStorageCageFeedTask> bigStorageCageFeedTasks=bigStorageCageFeedTaskService.list( new LambdaQueryWrapper<BigStorageCageFeedTask>() .gt(BigStorageCageFeedTask::getTargetSlot,0) .eq(BigStorageCageFeedTask::getLine,Const.A10_OUT_TARGET_POSITION) .eq(BigStorageCageFeedTask::getTaskState,Const.BIG_STORAGE_IN_UP) ); if(CollectionUtils.isEmpty(bigStorageCageFeedTasks)){ if (!d04GlassId.equals(d04Id)) { judgeGlassTypeStatus(d04Id, Const.A10_OUT_TARGET_POSITION, mesD04Address); edgGlassTaskInfoService.update(new LambdaUpdateWrapper<EdgGlassTaskInfo>() .set(EdgGlassTaskInfo::getStatus, Const.EDG_GLASS_SUCCESS).eq(EdgGlassTaskInfo::getGlassId, d04Id)); // d04GlassId = d04Id; } } } Date endDate = new Date(); log.info("大理片笼扫码任务结束时间:{},共耗时:{}ms,结束扫码任务", endDate, endDate.getTime() - startDate.getTime()); @@ -180,13 +197,26 @@ } if (!REQUEST_WORD.equals(d03ToMES) && !REQUEST_WORD.equals(d05ToMES)) { Date endDate = new Date(); log.info("卧转立没有送片请求,结束送片任务,任务结束时间:{},共耗时:{}ms,结束扫码任务", endDate, endDate.getTime() - startDate.getTime()); log.info("卧转立第一次没有送片请求,结束送片任务,任务结束时间:{},共耗时:{}ms,结束扫码任务", endDate, endDate.getTime() - startDate.getTime()); return; } if (!REQUEST_WORD.equals(d03ToMES) && !REQUEST_WORD.equals(d05ToMES)) { Date endDate = new Date(); log.info("卧转立第二次没有送片请求,结束送片任务,任务结束时间:{},共耗时:{}ms,结束扫码任务", endDate, endDate.getTime() - startDate.getTime()); return; } // List<Integer> lines=new ArrayList<>(); // if(REQUEST_WORD.equals(d03ToMES)){ // lines.add(Const.A09_OUT_TARGET_POSITION); // } // if(REQUEST_WORD.equals(d05ToMES)){ // lines.add(Const.A10_OUT_TARGET_POSITION); // } LambdaQueryWrapper<BigStorageCageFeedTask> wrapper = new LambdaQueryWrapper<BigStorageCageFeedTask>() .eq(BigStorageCageFeedTask::getTaskType, Const.BIG_STORAGE_IN_RUN) .and(e -> e.isNull(BigStorageCageFeedTask::getTargetSlot).or().eq(BigStorageCageFeedTask::getTargetSlot, Const.OUT_TARGET_POSITION_ZERO)) .eq(BigStorageCageFeedTask::getTaskState, Const.BIG_STORAGE_IN_UP); // .in(BigStorageCageFeedTask::getLine,lines); //获取可以启动卧转立的任务线路 List<BigStorageCageFeedTask> feedTaskList = bigStorageCageFeedTaskService.list(wrapper); if (CollectionUtils.isNotEmpty(feedTaskList)) { @@ -224,6 +254,8 @@ //获取卧转立剩余宽度 if (computeIsRun(lineFirst, lineGlassId)) { computeTargetByLine(lineFirst); }else{ log.info("当前线路:{},有扫码玻璃:{}",lineFirst,lineGlassId); } } Date endDate = new Date(); @@ -581,20 +613,26 @@ 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 d03ToMES = plcParameterObject.getPlcParameter("D03ToMES").getValue(); // String d05ToMES = plcParameterObject.getPlcParameter("D05ToMES").getValue(); String d03ToMES = plcParameterObject.getPlcParameter("D03Request").getValue(); String d05ToMES = plcParameterObject.getPlcParameter("D05Request").getValue(); String mesD03Address = plcParameterObject.getPlcParameter("MESToD03").getAddress(); String mesD05Address = plcParameterObject.getPlcParameter("MESToD05").getAddress(); if (!REQUEST_WORD.equals(d01ToMES)) { log.info("地址:{}写入0",mesD01Address); S7object.getinstance().plccontrol.writeWord(mesD01Address, 0); } if (!REQUEST_WORD.equals(d04ToMES)) { log.info("地址:{}写入0",mesD04Address); S7object.getinstance().plccontrol.writeWord(mesD04Address, 0); } if (!REQUEST_WORD.equals(d03ToMES)) { log.info("地址:{}写入0",mesD03Address); S7object.getinstance().plccontrol.writeWord(mesD03Address, 0); } if (!REQUEST_WORD.equals(d05ToMES)) { log.info("地址:{}写入0",mesD05Address); S7object.getinstance().plccontrol.writeWord(mesD05Address, 0); } } @@ -605,6 +643,8 @@ @Scheduled(fixedDelay = 300) public void feedStatusUpdate() { PlcParameterObject plcParameterObject = S7object.getinstance().PlcMesObject; String mesD03Address = plcParameterObject.getPlcParameter("MESToD03").getAddress(); String mesD05Address = plcParameterObject.getPlcParameter("MESToD05").getAddress(); List<String> glassIds1 = new ArrayList<>(); List<String> glassIds2 = new ArrayList<>(); for (int i = 1; i <= 6; i++) { @@ -633,12 +673,15 @@ .filter(glassIds1::contains) .distinct() .collect(Collectors.toList()); bigStorageCageFeedTaskService.update( new LambdaUpdateWrapper<BigStorageCageFeedTask>() .in(BigStorageCageFeedTask::getGlassId, matchingIds1) .lt(BigStorageCageFeedTask::getTaskState, Const.BIG_STORAGE_IN_SLOT) .set(BigStorageCageFeedTask::getTaskState, Const.BIG_STORAGE_IN_UP) ); log.info("D3id{},匹配id:{}",glassIds1,matchingIds1); if(CollectionUtils.isNotEmpty(matchingIds1)){ bigStorageCageFeedTaskService.update( new LambdaUpdateWrapper<BigStorageCageFeedTask>() .in(BigStorageCageFeedTask::getGlassId, matchingIds1) .lt(BigStorageCageFeedTask::getTaskState, Const.BIG_STORAGE_IN_SLOT) .set(BigStorageCageFeedTask::getTaskState, Const.BIG_STORAGE_IN_UP) ); } } if (CollectionUtils.isNotEmpty(bigStorageCageFeedTasks2) && CollectionUtils.isNotEmpty(glassIds2)) { List<String> matchingIds2 = bigStorageCageFeedTasks2.stream() @@ -646,14 +689,19 @@ .filter(glassIds2::contains) .distinct() .collect(Collectors.toList()); bigStorageCageFeedTaskService.update( new LambdaUpdateWrapper<BigStorageCageFeedTask>() .in(BigStorageCageFeedTask::getGlassId, matchingIds2) .lt(BigStorageCageFeedTask::getTaskState, Const.BIG_STORAGE_IN_SLOT) .set(BigStorageCageFeedTask::getTaskState, Const.BIG_STORAGE_IN_UP) ); log.info("D5id{},匹配id:{}",glassIds2,matchingIds2); if(CollectionUtils.isNotEmpty(matchingIds2)){ bigStorageCageFeedTaskService.update( new LambdaUpdateWrapper<BigStorageCageFeedTask>() .in(BigStorageCageFeedTask::getGlassId, matchingIds2) .lt(BigStorageCageFeedTask::getTaskState, Const.BIG_STORAGE_IN_SLOT) .set(BigStorageCageFeedTask::getTaskState, Const.BIG_STORAGE_IN_UP) ); } } if (CollectionUtils.isEmpty(glassIds1)) { S7object.getinstance().plccontrol.writeWord(mesD03Address, 0); log.info("{}线修改玻璃状态为3",Const.A09_OUT_TARGET_POSITION); bigStorageCageFeedTaskService.update( new LambdaUpdateWrapper<BigStorageCageFeedTask>() .eq(BigStorageCageFeedTask::getLine, Const.A09_OUT_TARGET_POSITION) @@ -664,6 +712,8 @@ ); } if (CollectionUtils.isEmpty(glassIds2)) { S7object.getinstance().plccontrol.writeWord(mesD05Address, 0); log.info("{}线修改玻璃状态为3",Const.A10_OUT_TARGET_POSITION); bigStorageCageFeedTaskService.update( new LambdaUpdateWrapper<BigStorageCageFeedTask>() .eq(BigStorageCageFeedTask::getLine, Const.A10_OUT_TARGET_POSITION) @@ -903,23 +953,54 @@ String mesD03Address = plcMesObject.getPlcParameter("MESToD03").getAddress(); String mesD05Address = plcMesObject.getPlcParameter("MESToD05").getAddress(); String outLine = line.equals(Const.A09_OUT_TARGET_POSITION) ? mesD03Address : mesD05Address; List<String> returnData = new ArrayList<>(); 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()); returnData.add(taskList.get(i - 1).getGlassId()); log.info("向plc发送第{}片玻璃已完成,起始位置是{},目标位置是", i, taskList.get(i - 1).getLine(), taskList.get(i - 1).getTargetSlot()); } int returnData = 1; // int returnData = 1; int count = 1; while (returnData != 0) { while (CollectionUtils.isNotEmpty(returnData)) { List<String> glassIds1 = new ArrayList<>(); List<String> glassIds2 = new ArrayList<>(); s7control.writeWord(outLine, 2); for (int i = 1; i <= 6; i++) { String line1GlassId = plcMesObject.getPlcParameter("D03ID" + i).getValue(); if (StringUtils.isNotEmpty(line1GlassId)) { glassIds1.add(line1GlassId); } String line2GlassId = plcMesObject.getPlcParameter("D05ID" + i).getValue(); if (StringUtils.isNotEmpty(line2GlassId)) { glassIds2.add(line2GlassId); } } if (line.equals(Const.A09_OUT_TARGET_POSITION)) { returnData = Integer.parseInt(plcMesObject.getPlcParameter("D03ToMES").getValue()); // returnData = Integer.parseInt(plcMesObject.getPlcParameter("D03ToMES").getValue()); returnData = glassIds1; } else { returnData = Integer.parseInt(plcMesObject.getPlcParameter("D05ToMES").getValue()); // returnData = Integer.parseInt(plcMesObject.getPlcParameter("D05ToMES").getValue()); returnData = glassIds2; } // returnData = s7control.readWord(outLine, 1).get(0); log.info("已向plc第{}次发送进片任务确认,地址为:{},写入的内容为{}", count++, outLine, 2); log.info("已向plc第{}次发送进片任务确认,地址为:{},写入的内容为{},读到的请求为{}", count++, outLine, 2,returnData); } // while (returnData != 0) { // s7control.writeWord(outLine, 2); // if (line.equals(Const.A09_OUT_TARGET_POSITION)) { //// returnData = Integer.parseInt(plcMesObject.getPlcParameter("D03ToMES").getValue()); // returnData = s7control.readWord(plcMesObject.getPlcParameter("D03Request").getAddress(), 1).get(0); // } else { //// returnData = Integer.parseInt(plcMesObject.getPlcParameter("D05ToMES").getValue()); // returnData = s7control.readWord(plcMesObject.getPlcParameter("D05Request").getAddress(), 1).get(0); // } //// returnData = s7control.readWord(outLine, 1).get(0); // log.info("已向plc第{}次发送进片任务确认,地址为:{},写入的内容为{},读到的请求为{}", count++, outLine, 2,returnData); // } } /** hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/JsonFile/PlcCacheVerticalGlass.json
@@ -74,7 +74,7 @@ }, { "codeId": "D05ID2", "addressIndex": "328", "addressIndex": "320", "addressLenght": "32", "ratio": "1", "unit": "" @@ -372,6 +372,20 @@ "addressLenght": "2", "ratio": "1", "unit": "" }, { "codeId": "D03Request", "addressIndex": "898", "addressLenght": "2", "ratio": "1", "unit": "" }, { "codeId": "D05Request", "addressIndex": "900", "addressLenght": "2", "ratio": "1", "unit": "" } ] } hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/test/java/com/mes/CacheVerticalGlassModuleApplicationTest.java
@@ -4,8 +4,10 @@ import cn.hutool.json.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import com.fasterxml.jackson.databind.ObjectMapper; import com.mes.bigstorage.entity.BigStorageCage; import com.mes.bigstorage.entity.BigStorageCageDetails; import com.mes.bigstorage.service.BigStorageCageDetailsService; import com.mes.bigstorage.service.BigStorageCageService; import com.mes.bigstoragetask.mapper.BigStorageCageFeedTaskMapper; @@ -198,6 +200,35 @@ damageService.deleteByGlassId("P24081203|2|5"); } @Test public void testttt(){ List<Integer> deviceUsedList = bigStorageCageService.queryFreeDeviceByUsed(6); List<Integer> deviceUseds = deviceUsedList; List<BigStorageCageDetails> engineerCount1 = bigStorageCageDetailsService.list( new LambdaQueryWrapper<BigStorageCageDetails>() .notIn(BigStorageCageDetails::getState, Const.GLASS_STATE_OUT,Const.GLASS_STATE_DAMAGE,Const.GLASS_STATE_TAKE) .select(BigStorageCageDetails::getEngineerId) .groupBy(BigStorageCageDetails::getEngineerId) .between(BigStorageCageDetails::getDeviceId, 1, 5) ); List<BigStorageCageDetails> engineerCount2 = bigStorageCageDetailsService.list( new LambdaQueryWrapper<BigStorageCageDetails>() .notIn(BigStorageCageDetails::getState, Const.GLASS_STATE_OUT,Const.GLASS_STATE_DAMAGE,Const.GLASS_STATE_TAKE) .select(BigStorageCageDetails::getEngineerId) .groupBy(BigStorageCageDetails::getEngineerId) .between(BigStorageCageDetails::getDeviceId, 6, 8) ); if (engineerCount1.size() > engineerCount2.size()) { deviceUsedList.removeIf(device -> device < 6); } else { deviceUsedList.removeIf(device -> device > 5); } if (CollectionUtils.isEmpty(deviceUsedList)) { deviceUsedList = deviceUseds; } log.info("zhi:{}",deviceUsedList); } @Test public void ca(){ hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/job/TemperingTask.java
@@ -152,7 +152,7 @@ damage.setLine(Const.TEMPERING_OUT_TARGET_POSITION); damage.setWorkingProcedure("钢化"); damage.setRemark("钢化"); damage.setStatus(0); damage.setStatus(1); damage.setType(e.getState()); return damage; }).collect(Collectors.toList());