From f9978d9309b3a75f078b32746bcb96d4afd55bcc Mon Sep 17 00:00:00 2001
From: zhoushihao <zsh19950802@163.com>
Date: 星期日, 19 十月 2025 23:50:51 +0800
Subject: [PATCH] 1、 切割/钢化版图展示,仅将破损未报工的小片显示为破损

---
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/temperingglass/service/impl/TemperingGlassInfoServiceImpl.java |   67 ++++++++++++++++++++++++++++-----
 1 files changed, 57 insertions(+), 10 deletions(-)

diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/temperingglass/service/impl/TemperingGlassInfoServiceImpl.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/temperingglass/service/impl/TemperingGlassInfoServiceImpl.java
index dcef9b7..369f4de 100644
--- a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/temperingglass/service/impl/TemperingGlassInfoServiceImpl.java
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/temperingglass/service/impl/TemperingGlassInfoServiceImpl.java
@@ -1,19 +1,26 @@
 package com.mes.temperingglass.service.impl;
 
 import com.baomidou.dynamic.datasource.annotation.DS;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.github.yulichang.base.MPJBaseServiceImpl;
 import com.github.yulichang.query.MPJQueryWrapper;
+import com.kangaroohy.milo.model.ReadWriteEntity;
+import com.kangaroohy.milo.service.MiloService;
 import com.mes.glassinfo.entity.GlassInfo;
+import com.mes.glassinfo.entity.LoadGlassInfo;
 import com.mes.glassinfo.mapper.GlassInfoMapper;
+import com.mes.largenscreen.entity.PieChartVO;
 import com.mes.temperingglass.entity.TemperingGlassInfo;
 import com.mes.temperingglass.mapper.TemperingGlassInfoMapper;
 import com.mes.temperingglass.service.TemperingGlassInfoService;
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
+import java.util.ArrayList;
 import java.util.List;
 
 /**
@@ -25,12 +32,41 @@
  * @since 2024-04-07
  */
 @Service
-@DS("salve_northGlassMes")
+@DS("north_glass_mes")
+@Slf4j
 public class TemperingGlassInfoServiceImpl extends MPJBaseServiceImpl<TemperingGlassInfoMapper, TemperingGlassInfo> implements TemperingGlassInfoService {
     @Resource
     TemperingGlassInfoMapper temperingMapper;
-    @Autowired
+
+    @Resource
     private GlassInfoMapper glassInfoMapper;
+
+    @Autowired(required = false)
+    MiloService miloService;
+
+    @Override
+    public List<TemperingGlassInfo> selectWaitingGlassByOpc() {
+        //鑾峰彇绛夊緟杩涚倝涓殑鐜荤拑淇℃伅
+        try {
+            ReadWriteEntity engineerEntity = miloService.readFromOpcUa("GH2S7.GH2S7.F09_ENGINEER_ID");
+            ReadWriteEntity temperingLayoutIdEntity = miloService.readFromOpcUa("GH2S7.GH2S7.F09_TEMPERING_LAYOUT_ID");
+
+            if (null == engineerEntity || null == temperingLayoutIdEntity) {
+                engineerEntity = miloService.readFromOpcUa("GH2S7.GH2S7.F08_ENGINEER_ID");
+                temperingLayoutIdEntity = miloService.readFromOpcUa("GH2S7.GH2S7.F08_TEMPERING_LAYOUT_ID");
+                if (null == engineerEntity || null == temperingLayoutIdEntity) {
+                    log.info("鑾峰彇鍙傛暟寮傚父锛岀粨鏉熸湰娆′换鍔�");
+                    return new ArrayList<>();
+                }
+            }
+            return this.list(new LambdaQueryWrapper<TemperingGlassInfo>()
+                    .eq(TemperingGlassInfo::getEngineerId, engineerEntity.getValue() + "")
+                    .eq(TemperingGlassInfo::getTemperingLayoutId, temperingLayoutIdEntity.getValue() + ""));
+        } catch (Exception e) {
+            log.info("鑾峰彇閽㈠寲鍙傛暟寮傚父锛歿}", e);
+            return new ArrayList<>();
+        }
+    }
 
     @Override
     public List<TemperingGlassInfo> selectWaitingGlass() {
@@ -70,7 +106,8 @@
     public List<TemperingGlassInfo> selectOutGlass() {
         //鑾峰彇鍑虹倝涓殑鐜荤拑淇℃伅
         QueryWrapper<TemperingGlassInfo> wrap = new QueryWrapper<>();
-        wrap.select("Top 1 *").eq("state", 3);
+        wrap.select("Top 1 *").eq("state", 4)
+                .orderByDesc("id");
         TemperingGlassInfo glass = temperingMapper.selectOne(wrap);
         //鏍规嵁宸ョ▼鍙峰拰鐗堝浘鑾峰彇鏁版嵁
         if (glass != null) {
@@ -84,7 +121,7 @@
         //鑾峰彇杩囨棆杞彴鏈�澶х殑閽㈠寲鐗堝浘id
         QueryWrapper<TemperingGlassInfo> wapper = new QueryWrapper<>();
         wapper.select("Top 1 *").eq("state", 4)
-                .orderByDesc("tempering_layout_id,engineer_id");
+                .orderByDesc("id");
         //鏍规嵁鏈�澶х殑鐗堝浘id鏄剧ず閽㈠寲鍚庣殑鐗堝浘淇℃伅
         TemperingGlassInfo glassinfo = temperingMapper.selectOne(wapper);
         if (glassinfo == null) {
@@ -150,12 +187,12 @@
     }
 
     @Override
-    public List<GlassInfo> selectTemperingGlass(GlassInfo glassInfo) {
-        List<GlassInfo> glassInfos = null;
-        glassInfos = glassInfoMapper.selectJoinList(GlassInfo.class, new MPJQueryWrapper<GlassInfo>()
-                .select("IFNULL(b.status, 0) AS status,engineer_id,tempering_layout_id,width,height,tempering_feed_sequence,x_coordinate,y_coordinate,angle,t.glass_id")
-                .leftJoin("(SELECT glass_id, MAX(status) AS status FROM damage GROUP BY glass_id) b\n" +
-                        "ON t.glass_id = b.glass_id")
+    public List<LoadGlassInfo> selectTemperingGlass(GlassInfo glassInfo) {
+        List<LoadGlassInfo> glassInfos = null;
+        glassInfos = glassInfoMapper.selectJoinList(LoadGlassInfo.class, new MPJQueryWrapper<GlassInfo>()
+                .select("IFNULL(b.state, 0) AS state,engineer_id,tempering_layout_id,width,height,tempering_feed_sequence,x_coordinate,y_coordinate,angle,t.glass_id,t.flow_card_id")
+                .leftJoin("(SELECT glass_id, type as state FROM damage where type in (8, 9) and status = 1) b\n" +
+                        "ON t.glass_id = b.glass_id ")
                 .eq("engineer_id", glassInfo.getEngineerId())
                 .eq("tempering_layout_id", glassInfo.getTemperingLayoutId()));
         return glassInfos;
@@ -165,4 +202,14 @@
 //                .select("engineer_id,tempering_layout_id,width,height,tempering_feed_sequence,x_coordinate,y_coordinate,angle,glass_id");
 //        return glassInfoMapper.selectList(wrapper);
     }
+
+    @Override
+    public List<PieChartVO> queryPieChart() {
+        return baseMapper.queryPieChart();
+    }
+
+    @Override
+    public List<TemperingGlassInfo> queryEngineerAndLayoutId() {
+        return baseMapper.queryEngineerAndLayoutId();
+    }
 }

--
Gitblit v1.8.0