From a647092c6deccf7caf64a0cdf897861694a8a9c7 Mon Sep 17 00:00:00 2001
From: ZengTao <2773468879@qq.com>
Date: 星期一, 07 七月 2025 15:01:21 +0800
Subject: [PATCH] 大理片任务获取添加非空判断

---
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/impl/BigStorageCageDetailsServiceImpl.java |   38 +++++++++++++++++++++++++++-----------
 1 files changed, 27 insertions(+), 11 deletions(-)

diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/impl/BigStorageCageDetailsServiceImpl.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/impl/BigStorageCageDetailsServiceImpl.java
index b0aa717..c88b656 100644
--- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/impl/BigStorageCageDetailsServiceImpl.java
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/impl/BigStorageCageDetailsServiceImpl.java
@@ -77,8 +77,6 @@
     @Resource
     private SysConfigService sysConfigService;
 
-//    @Resource
-//    private PlcStorageCageTask plcStorageCageTask;
 
     @Resource
     private DamageService damageService;
@@ -407,16 +405,26 @@
                 .eq(TemperingGlassInfo::getState, Const.TEMPERING_NEW);
         List<TemperingGlassInfo> temperingGlassInfoList = temperingGlassInfoMapper.selectList(temperingGlassInfoLambdaQueryWrapper);
 
+        int dispatchCount = bigStorageCageHistoryTaskService.count(new LambdaQueryWrapper<BigStorageCageHistoryTask>()
+                .eq(BigStorageCageHistoryTask::getTaskState, Const.GLASS_STATE_NEW)
+                .eq(BigStorageCageHistoryTask::getTaskType, Const.BIG_STORAGE_BEFORE_DISPATCH));
+
         if (temperingGlassInfoList.size() == 0) {
-            List<TemperingGlassInfo> temperingGlassInfos = glassInfoService.selectJoinList(TemperingGlassInfo.class, JoinWrappers.lambda(GlassInfo.class)
+            MPJLambdaWrapper<GlassInfo> wrapper = JoinWrappers.lambda(GlassInfo.class)
                     .select("-1 as state,t.filmsid as films_id,t.glass_id,t.flow_card_id,t.glass_type,t.width,t.height" +
                             ",t.thickness,t.ishorizontal,t.tempering_layout_id,t.tempering_feed_sequence,t.x_coordinate,t.y_coordinate," +
                             "t.angle,t1.slot,t.engineer_id")
                     .innerJoin(BigStorageCageDetails.class, BigStorageCageDetails::getGlassId, GlassInfo::getGlassId)
                     .eq(GlassInfo::getTemperingLayoutId, temperingLayoutId)
                     .eq(GlassInfo::getEngineerId, engineerId)
-                    .in(BigStorageCageDetails::getState, Const.GLASS_STATE_IN)
-                    .orderBy(Boolean.TRUE, sequenceOrder, GlassInfo::getTemperingFeedSequence));
+
+                    .orderBy(Boolean.TRUE, sequenceOrder, GlassInfo::getTemperingFeedSequence);
+            if (dispatchCount > 0) {
+                wrapper.in(BigStorageCageDetails::getState, Const.GLASS_STATE_IN_ALL);
+            } else {
+                wrapper.in(BigStorageCageDetails::getState, Const.GLASS_STATE_IN);
+            }
+            List<TemperingGlassInfo> temperingGlassInfos = glassInfoService.selectJoinList(TemperingGlassInfo.class, wrapper);
             if (CollectionUtils.isNotEmpty(temperingGlassInfos)) {
                 if ("0".equals(temperingFeedSequence)) {
                     if (CollectionUtils.isNotEmpty(temperingGlassInfos)) {
@@ -485,8 +493,7 @@
         temperingGlassInfoMapper.delete(new LambdaQueryWrapper<TemperingGlassInfo>()
                 .eq(TemperingGlassInfo::getEngineerId, glassInfo.getEngineerId())
                 .eq(TemperingGlassInfo::getState, Const.TEMPERING_NEW)
-                .ge(TemperingGlassInfo::getTemperingLayoutId, glassInfo.getTemperingLayoutId())
-                .gt(TemperingGlassInfo::getTemperingFeedSequence, glassInfo.getTemperingFeedSequence())
+                .notIn(TemperingGlassInfo::getGlassId, glassIdList)
         );
         return Boolean.TRUE;
     }
@@ -504,18 +511,27 @@
                 .eq(TemperingGlassInfo::getState, Const.TEMPERING_NEW);
         List<TemperingGlassInfo> temperingGlassInfoList = temperingGlassInfoMapper.selectList(temperingGlassInfoLambdaQueryWrapper);
 
+        int dispatchCount = bigStorageCageHistoryTaskService.count(new LambdaQueryWrapper<BigStorageCageHistoryTask>()
+                .eq(BigStorageCageHistoryTask::getTaskState, Const.GLASS_STATE_NEW)
+                .eq(BigStorageCageHistoryTask::getTaskType, Const.BIG_STORAGE_BEFORE_DISPATCH));
+
         if (temperingGlassInfoList.size() == 0) {
-            List<TemperingGlassInfo> temperingGlassInfos = glassInfoService.selectJoinList(TemperingGlassInfo.class, JoinWrappers.lambda(GlassInfo.class)
+            MPJLambdaWrapper<GlassInfo> wrapper = JoinWrappers.lambda(GlassInfo.class)
                     .select("-1 as state,t.filmsid as films_id,t.glass_id,t.flow_card_id,t.glass_type,t.width,t.height" +
                             ",t.thickness,t.ishorizontal,t.tempering_layout_id,t.tempering_feed_sequence,t.x_coordinate,t.y_coordinate," +
                             "t.angle,t1.slot,t.engineer_id")
                     .innerJoin(BigStorageCageDetails.class, BigStorageCageDetails::getGlassId, GlassInfo::getGlassId)
                     .eq(GlassInfo::getEngineerId, engineerId)
                     .ne(GlassInfo::getTemperingLayoutId, 0)
-                    .in(BigStorageCageDetails::getState, Const.GLASS_STATE_IN)
                     .orderByAsc(BigStorageCageDetails::getTemperingLayoutId)
-                    .orderByAsc(BigStorageCageDetails::getTemperingFeedSequence)
-            );
+                    .orderByAsc(BigStorageCageDetails::getTemperingFeedSequence);
+            if (dispatchCount > 0) {
+                wrapper.in(BigStorageCageDetails::getState, Const.GLASS_STATE_IN_ALL);
+            } else {
+                wrapper.in(BigStorageCageDetails::getState, Const.GLASS_STATE_IN);
+            }
+            List<TemperingGlassInfo> temperingGlassInfos = glassInfoService.selectJoinList(TemperingGlassInfo.class, wrapper);
+
             if (CollectionUtils.isNotEmpty(temperingGlassInfos)) {
                 //閬垮厤澶ч噺鏁版嵁鎻掑叆瀵艰嚧sqlserver鏁版嵁搴撳紓甯革紝鍒嗘壒娆℃瘡璋冨瓨鍌ㄤ緷娆�
                 List<List<TemperingGlassInfo>> temperingGlassInfoLists = Lists.partition(temperingGlassInfos, 50);

--
Gitblit v1.8.0