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>-->