zhoushihao
2024-10-15 668137140bca5894b8a98e08414109d8f8cca070
1、原片仓储逻辑完成90%
2、liquibase配置更改
5个文件已修改
124 ■■■■■ 已修改文件
hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/job/RawGlassTask.java 52 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/moduleService/TemperingGlassModule/src/main/resources/application-dev.yml 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/moduleService/TemperingGlassModule/src/main/resources/application.yml 15 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/moduleService/TemperingGlassModule/src/main/resources/changelog/changelog.sql 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/moduleService/pom.xml 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/job/RawGlassTask.java
@@ -136,6 +136,10 @@
        }
        //当前尺寸需要上片的数量
        List<UpPattenUsageVO> pattenUsageList = upPattenUsageMapper.queryRawGlassByEngineeringId(engineering.getEngineerId());
        if (CollectionUtils.isEmpty(pattenUsageList)) {
            log.info("正在执行的工程原片无可上片的原片信息");
            return;
        }
        Map<String, List<UpPattenUsageVO>> upListMap = pattenUsageList.stream()
                .collect(Collectors.groupingBy(UpPattenUsageVO::getGroupNumber));
        //todo:按照工程号按照工程下未完成的尺寸的顺序,当1号上片位架子上的当前尺寸玻璃少于3片且2号上片位无原片玻璃,则将去调度玻璃去2号上片位,
@@ -145,6 +149,18 @@
                .eq(RawGlassStorageDetails::getState, Const.GLASS_STATE_IN).in(RawGlassStorageDetails::getSlotId, loadGlassStation));
        if (CollectionUtils.isEmpty(rawGlassDetailsList)) {
            //表示1上片位没有原片,直接找原片放入对应的上片位
            List<UpPattenUsageVO> upPattenUsage01VOS = upListMap.get("1");
            UpPattenUsageVO usageVO = upPattenUsage01VOS.get(0);
            RawGlassStorageDetails 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")
            );
            generateTask(details.getSlotId(), 1, details.getRemainQuantity(), Const.RAW_GLASS_TASK_TYPE_DISPATCH);
            //结束调度任务
        }
        Map<Integer, List<RawGlassStorageDetails>> listMap = rawGlassDetailsList.stream().collect(Collectors.groupingBy(RawGlassStorageDetails::getSlotId));
@@ -156,23 +172,41 @@
        if (null == rawGlass03Details) {
            if (null == rawGlass04Details) {
                //表示1上片位没有原片,直接找原片放入对应的上片位
                List<UpPattenUsageVO> upPattenUsage01VOS = upListMap.get("1");
                UpPattenUsageVO usageVO = upPattenUsage01VOS.get(0);
                RawGlassStorageDetails 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")
                );
                generateTask(details.getSlotId(), 1, details.getRemainQuantity(), Const.RAW_GLASS_TASK_TYPE_DISPATCH);
                //结束调度任务
            } else {
                //将2号上片位的原片放入1号上片位
                generateTask(2, 1, rawGlass04Details.getRemainQuantity(), Const.RAW_GLASS_TASK_TYPE_DISPATCH);
                //结束调度任务
            }
        } else {
            //原片剩余数量
            Integer quantity = rawGlass03Details.getRemainQuantity();
            List<UpPattenUsageVO> upPattenUsage01VOS = upListMap.get("1");
            if (null == rawGlass04Details) {
                //todo:判断2号上片位需要的原片信息
                if (quantity < upPattenUsage01VOS.size()) {
                    //todo:继续上一号上片位当前的尺寸
                } else {
                    //todo:切换尺寸,上后续组的尺寸
                    List<UpPattenUsageVO> upPattenUsage02VOS = upListMap.get("2");
                List<UpPattenUsageVO> upPattenUsage01VOS = upListMap.get("2");
                if (CollectionUtils.isEmpty(upPattenUsage01VOS)) {
                    return;
                }
                UpPattenUsageVO usageVO = upPattenUsage01VOS.get(0);
                RawGlassStorageDetails 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")
                );
                generateTask(details.getSlotId(), 2, details.getRemainQuantity(), Const.RAW_GLASS_TASK_TYPE_DISPATCH);
            }
        }
hangzhoumesParent/moduleService/TemperingGlassModule/src/main/resources/application-dev.yml
@@ -34,4 +34,6 @@
    database: 0
    host: 127.0.0.1
    port: 6379
    password: 123456
    password: 123456
  liquibase:
    change-log: classpath:changelog/changelogBase.xml
hangzhoumesParent/moduleService/TemperingGlassModule/src/main/resources/application.yml
@@ -2,16 +2,23 @@
  port: 8084
spring:
  profiles:
    active: cz
    active: dev
  application:
    name: temperingGlass
  liquibase:
    enabled: false
    change-log: classpath:changelog/changelog.sql
    enabled: true
mybatis-plus:
  mapper-locations: classpath*:mapper/*.xml
  configuration:
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
mes:
  width: 2800
  height: 5000
  height: 5000
  milo:
    primary: default
    config:
      default:
        endpoint: opc.tcp://zidonghua:49320
        security-policy: basic256sha256
        username: zsh
        password: 1qaz2wsx3edc4rfv
hangzhoumesParent/moduleService/TemperingGlassModule/src/main/resources/changelog/changelog.sql
@@ -153,56 +153,61 @@
-- rollback DELETE FROM sys_dict_data WHERE dict_type in ('白玻', '单银', '双银');
-- changeset wangfei:20240918001
-- changeset zsh:20240918001
-- preconditions onFail:CONTINUE onError:CONTINUE
-- precondition-sql-check expectedResult:0 SELECT COUNT(*) FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'raw_glass_storage_details' and table_schema = 'hangzhoumes';
CREATE TABLE raw_glass_storage_details
(
    id                bigint       NOT NULL AUTO_INCREMENT,
    device_id         int          NULL DEFAULT NULL COMMENT '设备id',
    slot_id           varchar(255) NULL DEFAULT NULL COMMENT '格子id',
    slot              int          NULL DEFAULT NULL COMMENT '格子id',
    pattern_width     double(8, 2) NULL DEFAULT NULL COMMENT '原片宽',
    pattern_height    double(8, 2) NULL DEFAULT NULL COMMENT '原片高',
    pattern_thickness double(8, 2) NULL DEFAULT NULL COMMENT '原片厚度',
    films_id          varchar(255) NULL DEFAULT NULL COMMENT '膜系',
    films_id          varchar(64)  NULL DEFAULT NULL COMMENT '膜系',
    create_time       datetime     NOT NULL COMMENT '创建时间',
    remain_quantity   varchar(255) NULL DEFAULT NULL COMMENT '剩余数量',
    remain_quantity   int          NULL DEFAULT NULL COMMENT '剩余数量',
    state             int          NULL DEFAULT NULL COMMENT '状态',
    PRIMARY KEY (id) USING BTREE
);
-- rollback DROP TABLE raw_glass_storage_details;
-- changeset wangfei:20240918002
-- changeset zsh:20240918002
-- preconditions onFail:CONTINUE onError:CONTINUE
-- precondition-sql-check expectedResult:0 SELECT COUNT(*) FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'raw_glass_storage_station' and table_schema = 'hangzhoumes';
CREATE TABLE raw_glass_storage_station
(
    id           bigint NOT NULL AUTO_INCREMENT,
    device_id    int NULL DEFAULT NULL COMMENT '设备id',
    slot         int NULL DEFAULT NULL COMMENT '栅格号',
    id           bigint       NOT NULL AUTO_INCREMENT,
    device_id    int          NULL DEFAULT NULL COMMENT '设备id',
    slot         int          NULL DEFAULT NULL COMMENT '栅格号',
    enable_state varchar(255) NULL DEFAULT NULL COMMENT '启用标记',
    start_slot   int NULL DEFAULT NULL COMMENT '开始工位',
    end_slot     int NULL DEFAULT NULL COMMENT '目标工位',
    PRIMARY KEY (id) USING BTREE
    PRIMARY KEY (id)
);
-- rollback DROP TABLE raw_glass_storage_station;
-- changeset wangfei:20240918003
-- changeset zsh:20240918003
-- preconditions onFail:CONTINUE onError:CONTINUE
-- precondition-sql-check expectedResult:0 SELECT COUNT(*) FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'raw_glass_storage_task' and table_schema = 'hangzhoumes';
CREATE TABLE raw_glass_storage_task
(
    id               bigint NOT NULL AUTO_INCREMENT,
    enable_id        int NULL DEFAULT NULL COMMENT '任务ID',
    originate_slot   int NULL DEFAULT NULL COMMENT '起始格子',
    end_slot         int NULL DEFAULT NULL COMMENT '目标格子',
    pattern_quantity varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '原片数量',
    enable_type      int NULL DEFAULT NULL COMMENT '任务类型',
    enable_state     int NULL DEFAULT NULL COMMENT '任务状态',
    id               bigint   NOT NULL AUTO_INCREMENT,
    start_slot       int      NULL DEFAULT NULL COMMENT '起始格子',
    end_slot         int      NULL DEFAULT NULL COMMENT '目标格子',
    pattern_quantity int      NULL DEFAULT NULL COMMENT '原片数量',
    enable_type      int      NULL DEFAULT NULL COMMENT '任务类型',
    enable_state     int      NULL DEFAULT NULL COMMENT '任务状态',
    create_time      datetime NULL DEFAULT NULL COMMENT '创建时间',
    PRIMARY KEY (id) USING BTREE
);
-- rollback DROP TABLE raw_glass_storage_task;
-- changeset zsh:20241015001
-- preconditions onFail:CONTINUE onError:CONTINUE
-- precondition-sql-check expectedResult:0 SELECT count(0) FROM information_schema.columns WHERE table_schema = 'hangzhoumes' AND table_name = 'engineering' AND column_name = 'station_cell';
ALTER TABLE engineering
    ADD COLUMN station_cell varchar(20);
hangzhoumesParent/moduleService/pom.xml
@@ -55,11 +55,11 @@
            <groupId>com.mes</groupId>
            <version>1.0-SNAPSHOT</version>
        </dependency>
<!--        <dependency>-->
<!--            <artifactId>opcuaClient</artifactId>-->
<!--            <groupId>com.mes</groupId>-->
<!--            <version>1.0-SNAPSHOT</version>-->
<!--        </dependency>-->
        <dependency>
            <artifactId>opcuaClient</artifactId>
            <groupId>com.mes</groupId>
            <version>1.0-SNAPSHOT</version>
        </dependency>
        <!--开发者工具-->
        <!--        <dependency>-->