zhoushihao
2024-10-20 bb32bac871dcdc3ac2dbe8453a0f766344816ce3
1、优化原片仓储入库、出库、调度任务
3个文件已修改
236 ■■■■■ 已修改文件
hangzhoumesParent/common/servicebase/src/main/java/com/mes/engineering/entity/Engineering.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/job/RawGlassTask.java 232 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglassdetails/service/impl/RawGlassStorageDetailsServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/common/servicebase/src/main/java/com/mes/engineering/entity/Engineering.java
@@ -99,7 +99,7 @@
    /**
     * 上片机线路
     */
    private String stationCell;
    private int stationCell;
}
hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/job/RawGlassTask.java
@@ -54,6 +54,12 @@
    private static final List<String> LOAD_STATION_01 = Arrays.asList("101", "102");
    private static final List<String> LOAD_STATION_02 = Arrays.asList("103", "104");
    private static final List<Integer> LOAD_STATION_MAX = Arrays.asList(102, 104);
    private static final Integer LEFTING_01 = 98;
    private static final Integer LEFTING_02 = 99;
    private static final Integer LOAD_GLASS_01_01 = 101;
    private static final Integer LOAD_GLASS_01_02 = 102;
    private static final Integer LOAD_GLASS_02_01 = 103;
    private static final Integer LOAD_GLASS_02_02 = 104;
    @Scheduled(fixedDelay = 1000)
    public void rawStorageTask() throws Exception {
@@ -225,8 +231,8 @@
     */
    public boolean outboundTask() throws Exception {
        List<RawGlassStorageDetails> rawGlassList = rawGlassStorageDetailsService.list(new LambdaQueryWrapper<RawGlassStorageDetails>()
                .eq(RawGlassStorageDetails::getState, Const.RAW_GLASS_STATE_WAIT_OUT));
//                .inSql(RawGlassStorageDetails::getSlot, "select slot from raw_glass_storage_station where enable_state = 1 and device_id = 4"));
                .eq(RawGlassStorageDetails::getState, Const.RAW_GLASS_STATE_WAIT_OUT)
                .inSql(RawGlassStorageDetails::getSlot, "select slot from raw_glass_storage_station where enable_state = 1"));
        if (CollectionUtil.isEmpty(rawGlassList)) {
            log.info("系统没有需要出库的原片信息");
            return Boolean.FALSE;
@@ -234,21 +240,23 @@
        //获取工位上是否有架子,
        List<RawGlassStorageDetails> emptyLeftingList = rawGlassStorageDetailsService.list(new LambdaQueryWrapper<RawGlassStorageDetails>()
                .in(RawGlassStorageDetails::getState, Const.RAW_GLASS_STATE_IN_ALL)
                .in(RawGlassStorageDetails::getSlot, 98, 99));
        if (CollectionUtil.isNotEmpty(emptyLeftingList) && emptyLeftingList.size() >= 2) {
                .in(RawGlassStorageDetails::getSlot, "select slot from raw_glass_storage_station where enable_state = 1 and device_id = 4"));
        if (CollectionUtil.isNotEmpty(emptyLeftingList) && emptyLeftingList.size() > 1) {
            log.info("吊装位当前都有架子,结束出片任务");
            return Boolean.FALSE;
        }
        //获取需要落架的
        List<Integer> leftingList = emptyLeftingList.stream().map(RawGlassStorageDetails::getSlot).collect(Collectors.toList());
        int lefting = CollectionUtil.isEmpty(leftingList) ? LEFTING_01 : leftingList.get(0).equals(LEFTING_01) ? LEFTING_02 : LEFTING_01;
        Integer startSlot = rawGlassList.get(0).getSlot();
        //生成出库任务
        rawGlassStorageDetailsService.generateTask(rawGlassList.get(0).getSlot(), 98, rawGlassList.get(0).getSlot(),
                rawGlassList.get(0).getRemainQuantity(), Const.RAW_GLASS_TASK_TYPE_OUT);
        rawGlassStorageDetailsService.generateTask(startSlot, lefting, startSlot, rawGlassList.get(0).getRemainQuantity(), Const.RAW_GLASS_TASK_TYPE_OUT);
        List<ReadWriteEntity> list = new ArrayList<>();
        list.add(generateReadWriteEntity("storage-device.dev.Task sending word", 1));
        list.add(generateReadWriteEntity("storage-device.dev.Task distribution", 1));
        list.add(generateReadWriteEntity("storage-device.dev.Starting material rack number", rawGlassList.get(0).getSlot()));
        list.add(generateReadWriteEntity("storage-device.dev.End shelf number", 98));
        list.add(generateReadWriteEntity("storage-device.dev.Starting material rack number", startSlot));
        list.add(generateReadWriteEntity("storage-device.dev.End shelf number", lefting));
        miloService.writeToOpcWord(list);
        //修改出片任务状态
@@ -274,16 +282,6 @@
            log.info("吊装位被禁用/架子所在工位被禁用/无原片信息");
            return Boolean.FALSE;
        }
        //获取吊装位架子信息
//        List<Integer> shelfList = rawGlassList.stream().map(RawGlassStorageDetails::getShelf).collect(Collectors.toList());
//        List<RawGlassStorageStation> stationList = rawGlassStorageStationService.list(new LambdaQueryWrapper<RawGlassStorageStation>().notInSql(RawGlassStorageStation::getSlot, "select slot from raw_glass_storage_details where " +
//                "state in('100','102','103')")
//                .eq(RawGlassStorageStation::getEnableState, Const.SLOT_ON)
//                .in(RawGlassStorageStation::getDeviceId, Const.RAW_GLASS_DEVICE));
//        if (CollectionUtil.isEmpty(stationList)) {
//            log.info("没有空的工位");
//            return Boolean.FALSE;
//        }
        //生成进笼任务
        RawGlassStorageDetails details = rawGlassList.get(0);
        rawGlassStorageDetailsService.generateTask(details.getSlot(), details.getShelf(), details.getShelf(),
@@ -295,7 +293,7 @@
        list.add(generateReadWriteEntity("storage-device.dev.End shelf number", details.getShelf()));
        miloService.writeToOpcWord(list);
        //生成工位任务,将吊装位的玻璃状态改位进笼中
//        修改吊装位的原片状态为103 出片中
        //修改吊装位的原片状态为103 出片中
        //修改出片任务状态
        rawGlassStorageDetailsService.update(new LambdaUpdateWrapper<RawGlassStorageDetails>()
                .eq(RawGlassStorageDetails::getSlot, rawGlassList.get(0).getSlot())
@@ -304,13 +302,22 @@
        return Boolean.TRUE;
    }
    private boolean rawGlassDispatchByEngineering(String stationCell, String enginneerId) throws Exception {
    /**
     * @param stationCell 设备信息  5  、 6
     * @param enginneerId 共亨号
     * @return
     * @throws Exception
     */
    private boolean rawGlassDispatchByEngineering(int stationCell, String enginneerId) throws Exception {
        //当前尺寸需要上片的数量
        List<UpPattenUsageVO> pattenUsageList = upPattenUsageMapper.queryRawGlassByEngineeringId(enginneerId);
        if (CollectionUtils.isEmpty(pattenUsageList)) {
            log.info("正在执行的工程原片无可上片的原片信息");
            return Boolean.FALSE;
        }
        //获取当前上片位1号架子信息
        int endSlot = stationCell == LOAD_GLASS_01_01 ? LOAD_GLASS_01_01 : LOAD_GLASS_02_01;
        int endSlot02 = stationCell == LOAD_GLASS_01_02 ? LOAD_GLASS_01_01 : LOAD_GLASS_02_02;
        Map<String, List<UpPattenUsageVO>> upListMap = pattenUsageList.stream()
                .collect(Collectors.groupingBy(UpPattenUsageVO::getGroupNumber));
        //1、查询2个上片的原片详情
@@ -326,109 +333,130 @@
                            .eq(RawGlassStorageDetails::getPatternWidth, usageVO.getWidth())
                            .eq(RawGlassStorageDetails::getPatternHeight, usageVO.getHeight())
                            .eq(RawGlassStorageDetails::getPatternThickness, usageVO.getThickness())
                            .inSql(RawGlassStorageDetails::getSlot, "select slot from raw_glass_storage_station where enable_state = 1")
                            .eq(RawGlassStorageDetails::getState, Const.RAW_GLASS_STATE_IN)
//                    .gt(RawGlassStorageDetails::getRemainQuantity, upPattenUsage01VOS.size())
                            .orderByAsc(RawGlassStorageDetails::getRemainQuantity)
                            .last("limit 1")
            );
            rawGlassStorageDetailsService.generateTask(details.getSlot(), rawGlassDetailsList.get(0).getSlot(), details.getSlot(), details.getRemainQuantity(), Const.RAW_GLASS_TASK_TYPE_DISPATCH);
            rawGlassStorageDetailsService.generateTask(details.getSlot(), endSlot, details.getSlot(), details.getRemainQuantity(), Const.RAW_GLASS_TASK_TYPE_DISPATCH);
            List<ReadWriteEntity> list = new ArrayList<>();
            list.add(generateReadWriteEntity("storage-device.dev.Task sending word", 1));
            list.add(generateReadWriteEntity("storage-device.dev.Task distribution", 1));
            list.add(generateReadWriteEntity("storage-device.dev.Starting material rack number", details.getSlot()));
            list.add(generateReadWriteEntity("storage-device.dev.End shelf number", rawGlassDetailsList.get(0).getSlot()));
            list.add(generateReadWriteEntity("storage-device.dev.End shelf number", endSlot));
            miloService.writeToOpcWord(list);
            //结束调度任务 修改工位状态(起始位)状态为103 RAW_GLASS_STATE_RUNNING 任务完成后将状态改为101  目标位新增一条数据,架子号为(起始位)
            rawGlassStorageDetailsService.update(new LambdaUpdateWrapper<RawGlassStorageDetails>()
                    .eq(RawGlassStorageDetails::getShelf, details.getShelf()).eq(RawGlassStorageDetails::getState, Const.RAW_GLASS_STATE_IN)
                    .eq(RawGlassStorageDetails::getSlot, details.getSlot()).eq(RawGlassStorageDetails::getState, Const.RAW_GLASS_STATE_IN)
                    .set(RawGlassStorageDetails::getDeviceId, Const.RAW_GLASS_STATE_RUNNING));
            return Boolean.TRUE;
        }
        if (rawGlassDetailsList.size() == 2) {
            RawGlassStorageDetails glassStorageDetails = rawGlassDetailsList.get(0);
            if (usageVO.getWidth() == glassStorageDetails.getPatternWidth() && usageVO.getHeight() == glassStorageDetails.getPatternHeight() &&
                    usageVO.getThickness() == glassStorageDetails.getPatternThickness() && usageVO.getFilmsId().equals(glassStorageDetails.getFilmsId())) {
                if (glassStorageDetails.getRemainQuantity() == 0) {
                    //将架子放回原工位上
                    rawGlassStorageDetailsService.generateTask(glassStorageDetails.getSlot(), glassStorageDetails.getShelf(), glassStorageDetails.getShelf(), glassStorageDetails.getRemainQuantity(), Const.RAW_GLASS_TASK_TYPE_DISPATCH);
                    List<ReadWriteEntity> list = new ArrayList<>();
                    list.add(generateReadWriteEntity("storage-device.dev.Task sending word", 1));
                    list.add(generateReadWriteEntity("storage-device.dev.Task distribution", 1));
                    list.add(generateReadWriteEntity("storage-device.dev.Starting material rack number", glassStorageDetails.getSlot()));
                    list.add(generateReadWriteEntity("storage-device.dev.End shelf number", glassStorageDetails.getShelf()));
                    miloService.writeToOpcWord(list);
                    rawGlassStorageDetailsService.update(new LambdaUpdateWrapper<RawGlassStorageDetails>()
                            .eq(RawGlassStorageDetails::getSlot, glassStorageDetails.getSlot()).eq(RawGlassStorageDetails::getState, Const.RAW_GLASS_STATE_IN)
                            .set(RawGlassStorageDetails::getDeviceId, Const.RAW_GLASS_STATE_RUNNING));
                    return Boolean.TRUE;
                }
            }
            log.info("上片位都有架子,结束本条线{}的调度任务", stationCell);
            return Boolean.FALSE;
        }
        RawGlassStorageDetails glassStorageDetails = rawGlassDetailsList.get(0);
        if (LOAD_STATION_MAX.contains(glassStorageDetails.getSlot())) {
            log.info("上片位2号有架子,结束本条线{}的调度任务", stationCell);
        if (rawGlassDetailsList.size() == 2) {
            if (!((usageVO.getWidth() == glassStorageDetails.getPatternWidth() && usageVO.getHeight() == glassStorageDetails.getPatternHeight() &&
                    usageVO.getThickness() == glassStorageDetails.getPatternThickness() && usageVO.getFilmsId().equals(glassStorageDetails.getFilmsId())))
                    || ((usageVO.getWidth() == glassStorageDetails.getPatternWidth() && usageVO.getHeight() == glassStorageDetails.getPatternHeight() &&
                    usageVO.getThickness() == glassStorageDetails.getPatternThickness() && usageVO.getFilmsId().equals(glassStorageDetails.getFilmsId()))
                    && glassStorageDetails.getRemainQuantity() == 0)) {
                //将架子放回原工位上
                rawGlassStorageDetailsService.generateTask(endSlot, glassStorageDetails.getShelf(), glassStorageDetails.getShelf(), 0, Const.RAW_GLASS_TASK_TYPE_DISPATCH);
                List<ReadWriteEntity> list = new ArrayList<>();
                list.add(generateReadWriteEntity("storage-device.dev.Task sending word", 1));
                list.add(generateReadWriteEntity("storage-device.dev.Task distribution", 1));
                list.add(generateReadWriteEntity("storage-device.dev.Starting material rack number", endSlot));
                list.add(generateReadWriteEntity("storage-device.dev.End shelf number", glassStorageDetails.getShelf()));
                miloService.writeToOpcWord(list);
                rawGlassStorageDetailsService.update(new LambdaUpdateWrapper<RawGlassStorageDetails>()
                        .eq(RawGlassStorageDetails::getSlot, glassStorageDetails.getSlot()).eq(RawGlassStorageDetails::getState, Const.RAW_GLASS_STATE_IN)
                        .set(RawGlassStorageDetails::getState, Const.RAW_GLASS_STATE_RUNNING));
                return Boolean.TRUE;
            }
            return Boolean.FALSE;
        }
        //比较当前1号架子上的玻璃剩余数量是否为0或者已用完
        if (usageVO.getWidth() == glassStorageDetails.getPatternWidth() && usageVO.getHeight() == glassStorageDetails.getPatternHeight() &&
                usageVO.getThickness() == glassStorageDetails.getPatternThickness() && usageVO.getFilmsId().equals(glassStorageDetails.getFilmsId())) {
            RawGlassStorageDetails details = null;
            if (upPattenUsage01VOS.size() > glassStorageDetails.getRemainQuantity()) {
                //2号位上片:继续当前尺寸的原片
                details = rawGlassStorageDetailsService.getOne(new LambdaQueryWrapper<RawGlassStorageDetails>()
                        .eq(RawGlassStorageDetails::getFilmsId, usageVO.getFilmsId())
                        .eq(RawGlassStorageDetails::getPatternWidth, usageVO.getWidth())
                        .eq(RawGlassStorageDetails::getPatternHeight, usageVO.getHeight())
                        .eq(RawGlassStorageDetails::getPatternThickness, usageVO.getThickness())
                        .gt(RawGlassStorageDetails::getRemainQuantity, upPattenUsage01VOS.size())
                        .orderByAsc(RawGlassStorageDetails::getRemainQuantity)
                        .last("limit 1"));
            } else {
                //2号位上片:获取第二种尺寸的原片
                List<UpPattenUsageVO> upPattenUsage02VOS = upListMap.get("2");
                if (CollectionUtils.isEmpty(upPattenUsage01VOS)) {
                    return Boolean.FALSE;
                }
                usageVO = upPattenUsage02VOS.get(0);
                details = rawGlassStorageDetailsService.getOne(new LambdaQueryWrapper<RawGlassStorageDetails>()
                        .eq(RawGlassStorageDetails::getFilmsId, usageVO.getFilmsId())
                        .eq(RawGlassStorageDetails::getPatternWidth, usageVO.getWidth())
                        .eq(RawGlassStorageDetails::getPatternHeight, usageVO.getHeight())
                        .eq(RawGlassStorageDetails::getPatternThickness, usageVO.getThickness())
                        .gt(RawGlassStorageDetails::getRemainQuantity, upPattenUsage01VOS.size())
                        .orderByAsc(RawGlassStorageDetails::getRemainQuantity)
                        .last("limit 1"));
        //todo:1条线且当条线为2号上片为
        if (LOAD_STATION_MAX.contains(glassStorageDetails.getSlot())) {
            log.info("上片位2号有架子,结束本条线{}的调度任务", stationCell);
            if (!((usageVO.getWidth() == glassStorageDetails.getPatternWidth() && usageVO.getHeight() == glassStorageDetails.getPatternHeight() &&
                    usageVO.getThickness() == glassStorageDetails.getPatternThickness() && usageVO.getFilmsId().equals(glassStorageDetails.getFilmsId())))
                    || ((usageVO.getWidth() == glassStorageDetails.getPatternWidth() && usageVO.getHeight() == glassStorageDetails.getPatternHeight() &&
                    usageVO.getThickness() == glassStorageDetails.getPatternThickness() && usageVO.getFilmsId().equals(glassStorageDetails.getFilmsId()))
                    && glassStorageDetails.getRemainQuantity() == 0)) {
                //将架子放回原工位上
                rawGlassStorageDetailsService.generateTask(endSlot02, glassStorageDetails.getShelf(), glassStorageDetails.getShelf(), 0, Const.RAW_GLASS_TASK_TYPE_DISPATCH);
                List<ReadWriteEntity> list = new ArrayList<>();
                list.add(generateReadWriteEntity("storage-device.dev.Task sending word", 1));
                list.add(generateReadWriteEntity("storage-device.dev.Task distribution", 1));
                list.add(generateReadWriteEntity("storage-device.dev.Starting material rack number", endSlot02));
                list.add(generateReadWriteEntity("storage-device.dev.End shelf number", glassStorageDetails.getShelf()));
                miloService.writeToOpcWord(list);
                rawGlassStorageDetailsService.update(new LambdaUpdateWrapper<RawGlassStorageDetails>()
                        .eq(RawGlassStorageDetails::getSlot, glassStorageDetails.getSlot()).eq(RawGlassStorageDetails::getState, Const.RAW_GLASS_STATE_IN)
                        .set(RawGlassStorageDetails::getState, Const.RAW_GLASS_STATE_RUNNING));
                return Boolean.TRUE;
            }
            //将工位的架子传送到上片位
            rawGlassStorageDetailsService.generateTask(details.getShelf(), glassStorageDetails.getSlot(), details.getShelf(), details.getRemainQuantity(), Const.RAW_GLASS_TASK_TYPE_DISPATCH);
            rawGlassStorageDetailsService.update(new LambdaUpdateWrapper<RawGlassStorageDetails>()
                    .eq(RawGlassStorageDetails::getSlot, glassStorageDetails.getSlot()).eq(RawGlassStorageDetails::getState, Const.RAW_GLASS_STATE_IN)
                    .set(RawGlassStorageDetails::getDeviceId, Const.RAW_GLASS_STATE_RUNNING));
            List<ReadWriteEntity> list = new ArrayList<>();
            list.add(generateReadWriteEntity("storage-device.dev.Task sending word", 1));
            list.add(generateReadWriteEntity("storage-device.dev.Task distribution", 1));
            list.add(generateReadWriteEntity("storage-device.dev.Starting material rack number", glassStorageDetails.getShelf()));
            list.add(generateReadWriteEntity("storage-device.dev.End shelf number", glassStorageDetails.getSlot()));
            miloService.writeToOpcWord(list);
            return Boolean.TRUE;
            return Boolean.FALSE;
        } else {
            //将架子放回原工位上
            rawGlassStorageDetailsService.generateTask(0, glassStorageDetails.getShelf(), glassStorageDetails.getShelf(), glassStorageDetails.getRemainQuantity(), Const.RAW_GLASS_TASK_TYPE_DISPATCH);
            rawGlassStorageDetailsService.update(new LambdaUpdateWrapper<RawGlassStorageDetails>()
                    .eq(RawGlassStorageDetails::getSlot, glassStorageDetails.getSlot()).eq(RawGlassStorageDetails::getState, Const.RAW_GLASS_STATE_IN)
                    .set(RawGlassStorageDetails::getDeviceId, Const.RAW_GLASS_STATE_RUNNING));
            //比较当前1号架子上的玻璃剩余数量是否为0或者已用完
            if (usageVO.getWidth() == glassStorageDetails.getPatternWidth() && usageVO.getHeight() == glassStorageDetails.getPatternHeight() &&
                    usageVO.getThickness() == glassStorageDetails.getPatternThickness() && usageVO.getFilmsId().equals(glassStorageDetails.getFilmsId())) {
                RawGlassStorageDetails details = null;
                if (upPattenUsage01VOS.size() > glassStorageDetails.getRemainQuantity()) {
                    //2号位上片:继续当前尺寸的原片
                    details = rawGlassStorageDetailsService.getOne(new LambdaQueryWrapper<RawGlassStorageDetails>()
                            .eq(RawGlassStorageDetails::getFilmsId, usageVO.getFilmsId())
                            .eq(RawGlassStorageDetails::getPatternWidth, usageVO.getWidth())
                            .eq(RawGlassStorageDetails::getPatternHeight, usageVO.getHeight())
                            .eq(RawGlassStorageDetails::getPatternThickness, usageVO.getThickness())
                            .gt(RawGlassStorageDetails::getRemainQuantity, upPattenUsage01VOS.size())
                            .orderByAsc(RawGlassStorageDetails::getRemainQuantity)
                            .last("limit 1"));
                } else {
                    //2号位上片:获取第二种尺寸的原片
                    List<UpPattenUsageVO> upPattenUsage02VOS = upListMap.get("2");
                    if (CollectionUtils.isEmpty(upPattenUsage01VOS)) {
                        return Boolean.FALSE;
                    }
                    usageVO = upPattenUsage02VOS.get(0);
                    details = rawGlassStorageDetailsService.getOne(new LambdaQueryWrapper<RawGlassStorageDetails>()
                            .eq(RawGlassStorageDetails::getFilmsId, usageVO.getFilmsId())
                            .eq(RawGlassStorageDetails::getPatternWidth, usageVO.getWidth())
                            .eq(RawGlassStorageDetails::getPatternHeight, usageVO.getHeight())
                            .eq(RawGlassStorageDetails::getPatternThickness, usageVO.getThickness())
                            .gt(RawGlassStorageDetails::getRemainQuantity, upPattenUsage01VOS.size())
                            .orderByAsc(RawGlassStorageDetails::getRemainQuantity)
                            .last("limit 1"));
                }
                //将工位的架子传送到上片位
                rawGlassStorageDetailsService.generateTask(details.getSlot(), endSlot02, details.getShelf(), details.getRemainQuantity(), Const.RAW_GLASS_TASK_TYPE_DISPATCH);
                rawGlassStorageDetailsService.update(new LambdaUpdateWrapper<RawGlassStorageDetails>()
                        .eq(RawGlassStorageDetails::getSlot, details.getSlot()).eq(RawGlassStorageDetails::getState, Const.RAW_GLASS_STATE_IN)
                        .set(RawGlassStorageDetails::getDeviceId, Const.RAW_GLASS_STATE_RUNNING));
            List<ReadWriteEntity> list = new ArrayList<>();
            list.add(generateReadWriteEntity("storage-device.dev.Task sending word", 1));
            list.add(generateReadWriteEntity("storage-device.dev.Task distribution", 1));
            list.add(generateReadWriteEntity("storage-device.dev.Starting material rack number", glassStorageDetails.getShelf()));
            list.add(generateReadWriteEntity("storage-device.dev.End shelf number", glassStorageDetails.getSlot()));
            miloService.writeToOpcWord(list);
            return Boolean.TRUE;
                List<ReadWriteEntity> list = new ArrayList<>();
                list.add(generateReadWriteEntity("storage-device.dev.Task sending word", 1));
                list.add(generateReadWriteEntity("storage-device.dev.Task distribution", 1));
                list.add(generateReadWriteEntity("storage-device.dev.Starting material rack number", glassStorageDetails.getShelf()));
                list.add(generateReadWriteEntity("storage-device.dev.End shelf number", endSlot02));
                miloService.writeToOpcWord(list);
                return Boolean.TRUE;
            } else {
                //将架子放回原工位上
                rawGlassStorageDetailsService.generateTask(endSlot, glassStorageDetails.getShelf(), glassStorageDetails.getShelf(), glassStorageDetails.getRemainQuantity(), Const.RAW_GLASS_TASK_TYPE_DISPATCH);
                rawGlassStorageDetailsService.update(new LambdaUpdateWrapper<RawGlassStorageDetails>()
                        .eq(RawGlassStorageDetails::getSlot, endSlot).eq(RawGlassStorageDetails::getState, Const.RAW_GLASS_STATE_IN)
                        .set(RawGlassStorageDetails::getDeviceId, Const.RAW_GLASS_STATE_RUNNING));
                List<ReadWriteEntity> list = new ArrayList<>();
                list.add(generateReadWriteEntity("storage-device.dev.Task sending word", 1));
                list.add(generateReadWriteEntity("storage-device.dev.Task distribution", 1));
                list.add(generateReadWriteEntity("storage-device.dev.Starting material rack number", endSlot));
                list.add(generateReadWriteEntity("storage-device.dev.End shelf number", glassStorageDetails.getShelf()));
                miloService.writeToOpcWord(list);
                return Boolean.TRUE;
            }
        }
    }
hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/rawglassdetails/service/impl/RawGlassStorageDetailsServiceImpl.java
@@ -81,7 +81,7 @@
        if (null == glassStorageDetails) {
            log.info("当前吊装位没有架子");
        }
        //todo:原片信息存入详情表
        //原片信息存入详情表
        BeanUtils.copyProperties(request, glassStorageDetails);
        log.info("覆盖后得到的工位详情信息为:{}", glassStorageDetails);
        updateById(glassStorageDetails);