ZengTao
2024-10-21 09c9c55d62cdcc6db5e99ee238ae0e78d082ee1a
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/PlcStorageCageTask.java
@@ -574,7 +574,7 @@
    /**
     * 确认字清空
     */
//    @Scheduled(fixedDelay = 300)
    @Scheduled(fixedDelay = 300)
    public void confirmClear() {
        PlcParameterObject plcParameterObject = S7object.getinstance().PlcMesObject;
        String d01ToMES = plcParameterObject.getPlcParameter("D01ToMES").getValue();
@@ -602,21 +602,21 @@
    /**
     * 进片状态修改
     */
//    @Scheduled(fixedDelay = 300)
    @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<String> glassIds1 = new ArrayList<>();
        List<String> glassIds2 = new ArrayList<>();
//        for (int i = 1; i <= 6; i++) {
//            String line1GlassId = plcParameterObject.getPlcParameter("D03ID" + i).getValue();
//            if (StringUtils.isNotEmpty(line1GlassId)) {
//                glassIds1.add(line1GlassId);
//            }
//            String line2GlassId = plcParameterObject.getPlcParameter("D05ID" + i).getValue();
//            if (StringUtils.isNotEmpty(line2GlassId)) {
//                glassIds1.add(line2GlassId);
//            }
//        }
        List<BigStorageCageFeedTask> bigStorageCageFeedTasks1 = bigStorageCageFeedTaskService.list(
                new LambdaQueryWrapper<BigStorageCageFeedTask>()
                        .eq(BigStorageCageFeedTask::getTaskState, 1)
@@ -627,27 +627,33 @@
                        .eq(BigStorageCageFeedTask::getTaskState, 1)
                        .eq(BigStorageCageFeedTask::getLine, Const.A10_OUT_TARGET_POSITION)
        );
        if (CollectionUtils.isNotEmpty(bigStorageCageFeedTasks1)) {
        if (CollectionUtils.isNotEmpty(bigStorageCageFeedTasks1)&& glassIds1 != null) {
            List<String> matchingIds1 = bigStorageCageFeedTasks1.stream()
                    .map(BigStorageCageFeedTask::getGlassId)
                    .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)
            );
        }
        if (CollectionUtils.isNotEmpty(bigStorageCageFeedTasks2)) {
        if (CollectionUtils.isNotEmpty(bigStorageCageFeedTasks2)&& glassIds2 != null) {
            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)
                            .in(BigStorageCageFeedTask::getGlassId, matchingIds2)
                        .lt(BigStorageCageFeedTask::getTaskState, Const.BIG_STORAGE_IN_SLOT)
                        .set(BigStorageCageFeedTask::getTaskState, Const.BIG_STORAGE_IN_UP)
        );
        if (glassIds1 == null) {
        }
        if (CollectionUtils.isEmpty(glassIds1)) {
            bigStorageCageFeedTaskService.update(
                    new LambdaUpdateWrapper<BigStorageCageFeedTask>()
                            .eq(BigStorageCageFeedTask::getLine,Const.A09_OUT_TARGET_POSITION)
@@ -657,7 +663,7 @@
                            .set(BigStorageCageFeedTask::getTaskState, Const.BIG_STORAGE_IN_CAR)
            );
        }
        if (glassIds1 == null) {
        if (CollectionUtils.isEmpty(glassIds2)) {
            bigStorageCageFeedTaskService.update(
                    new LambdaUpdateWrapper<BigStorageCageFeedTask>()
                            .eq(BigStorageCageFeedTask::getLine,Const.A10_OUT_TARGET_POSITION)
@@ -757,11 +763,12 @@
        //向plc发送进片确认
        if (flag) {
            //向plc写入确认字
            int returnData = 0;
            PlcParameterObject plcParameterObject = S7object.getinstance().PlcMesObject;
            int returnData = 1;
            int count = 1;
            while (returnData != 0) {
                S7object.getinstance().plccontrol.writeWord(mesAddress, 1);
                PlcParameterObject plcParameterObject = S7object.getinstance().PlcMesObject;
                if (Const.A10_OUT_TARGET_POSITION.equals(line)) {
                    returnData = Integer.parseInt(plcParameterObject.getPlcParameter("D04ToMES").getValue());
                } else {
@@ -886,14 +893,14 @@
            s7control.writeWord(plcMesObject.getPlcParameter("TargetAddToImport" + i).getAddress(), taskList.get(i - 1).getTargetSlot());
            log.info("向plc发送第{}片玻璃已完成,起始位置是{},目标位置是", i, taskList.get(i - 1).getLine(), taskList.get(i - 1).getTargetSlot());
        }
        int returnData = 0;
        int returnData = 1;
        int count = 1;
        while (returnData != 0) {
            s7control.writeWord(outLine, 2);
            if (line.equals(Const.A09_OUT_TARGET_POSITION)) {
                returnData = Integer.parseInt(plcMesObject.getPlcParameter("MESToD03").getValue());
                returnData = Integer.parseInt(plcMesObject.getPlcParameter("D03ToMES").getValue());
            } else {
                returnData = Integer.parseInt(plcMesObject.getPlcParameter("MESToD05").getValue());
                returnData = Integer.parseInt(plcMesObject.getPlcParameter("D05ToMES").getValue());
            }
//            returnData = s7control.readWord(outLine, 1).get(0);
            log.info("已向plc第{}次发送进片任务确认,地址为:{},写入的内容为{}", count++, outLine, 2);