From 668137140bca5894b8a98e08414109d8f8cca070 Mon Sep 17 00:00:00 2001
From: zhoushihao <zsh19950802@163.com>
Date: 星期二, 15 十月 2024 15:26:02 +0800
Subject: [PATCH] 1、原片仓储逻辑完成90% 2、liquibase配置更改

---
 hangzhoumesParent/moduleService/TemperingGlassModule/src/main/resources/application.yml         |   15 +++-
 hangzhoumesParent/moduleService/TemperingGlassModule/src/main/resources/application-dev.yml     |    4 +
 hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/job/RawGlassTask.java  |   52 ++++++++++++++---
 hangzhoumesParent/moduleService/pom.xml                                                         |   10 +-
 hangzhoumesParent/moduleService/TemperingGlassModule/src/main/resources/changelog/changelog.sql |   43 ++++++++------
 5 files changed, 86 insertions(+), 38 deletions(-)

diff --git a/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/job/RawGlassTask.java b/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/job/RawGlassTask.java
index 6040484..66e13c4 100644
--- a/hangzhoumesParent/moduleService/GlassStorageModule/src/main/java/com/mes/job/RawGlassTask.java
+++ b/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("姝e湪鎵ц鐨勫伐绋嬪師鐗囨棤鍙笂鐗囩殑鍘熺墖淇℃伅");
+            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);
             }
         }
 
diff --git a/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/resources/application-dev.yml b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/resources/application-dev.yml
index 246a786..530267b 100644
--- a/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/resources/application-dev.yml
+++ b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/resources/application-dev.yml
@@ -34,4 +34,6 @@
     database: 0
     host: 127.0.0.1
     port: 6379
-    password: 123456
\ No newline at end of file
+    password: 123456
+  liquibase:
+    change-log: classpath:changelog/changelogBase.xml
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/resources/application.yml b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/resources/application.yml
index af491d8..ed2ac7c 100644
--- a/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/resources/application.yml
+++ b/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
\ No newline at end of file
+  height: 5000
+  milo:
+    primary: default
+    config:
+      default:
+        endpoint: opc.tcp://zidonghua:49320
+        security-policy: basic256sha256
+        username: zsh
+        password: 1qaz2wsx3edc4rfv
\ No newline at end of file
diff --git a/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/resources/changelog/changelog.sql b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/resources/changelog/changelog.sql
index 245a94c..5473f61 100644
--- a/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/resources/changelog/changelog.sql
+++ b/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);
+
+
 
diff --git a/hangzhoumesParent/moduleService/pom.xml b/hangzhoumesParent/moduleService/pom.xml
index f799583..b043adf 100644
--- a/hangzhoumesParent/moduleService/pom.xml
+++ b/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>-->

--
Gitblit v1.8.0