From 503c45f8fd117ca58d56dcaceb44d8f95b3e2527 Mon Sep 17 00:00:00 2001
From: zhoushihao <zsh19950802@163.com>
Date: 星期五, 16 八月 2024 12:19:16 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/service/impl/DownGlassInfoServiceImpl.java |   70 +++++++++++++++++++++++++++++++++--
 1 files changed, 66 insertions(+), 4 deletions(-)

diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/service/impl/DownGlassInfoServiceImpl.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/service/impl/DownGlassInfoServiceImpl.java
index c1af805..9d3dac8 100644
--- a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/service/impl/DownGlassInfoServiceImpl.java
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downglassinfo/service/impl/DownGlassInfoServiceImpl.java
@@ -1,7 +1,9 @@
 package com.mes.downglassinfo.service.impl;
 
 import cn.smallbun.screw.core.util.CollectionUtils;
+import com.alibaba.fastjson.JSONObject;
 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.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -18,14 +20,19 @@
 import com.mes.downworkstation.service.DownWorkstationService;
 import com.mes.glassinfo.entity.GlassInfo;
 import com.mes.job.DownLoadCacheGlassTask;
+import com.mes.pp.service.FlowCardService;
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 import java.util.stream.Collectors;
 
+@Slf4j
 @Service
 public class DownGlassInfoServiceImpl extends ServiceImpl<DownGlassInfoMapper, DownGlassInfo> implements DownGlassInfoService {
 
@@ -41,6 +48,9 @@
 
     @Autowired
     RedisUtil redisUtil;
+
+    @Autowired
+    FlowCardService flowCardService;
 
     /**
      * 鏍规嵁娴佺▼鍗″彿鏌ヨ鏈�澶у簭鍙�
@@ -97,6 +107,7 @@
         BeanUtils.copyProperties(details, downGlassInfo);
         //鑾峰彇褰撳墠娴佺▼鍗℃渶澶х墖搴�
         downGlassInfo.setSequence(this.getMaxSequenceByFlowCardId(details.getFlowCardId(), details.getLayer()) + 1);
+        downGlassInfo.setWorkStationId(Const.G13_WORK_STATION);
         this.save(downGlassInfo);
         //鐢熸垚浠诲姟淇℃伅 骞跺悜plc鍙戦�佸嚭鐗囦换鍔�
         GlassInfo glassInfo = new GlassInfo();
@@ -130,11 +141,62 @@
             //鍙互钀芥灦鐨勭幓鐠冧俊鎭笖宸茬粦瀹氭祦绋嬪崱鐨勬墍鏈夌殑宸ヤ綅 - 鐜荤拑鏈弧娴佺▼鍗″強灞傛暟鐨勫伐浣�  =  宸叉弧宸ヤ綅
             workstationFull = list.stream().filter(item -> !flowCardIdList.contains(item.getFlowCardId() + ":" + item.getLayer())).collect(Collectors.toList());
             //鏄惁闇�瑕佸皢宸叉弧鐨勫伐浣嶇疆涓轰笉鍙惤鏋�
-            List<Integer> workstationIds = workstationFull.stream().map(DownWorkstation::getWorkstationId).collect(Collectors.toList());
-            downWorkstationService.update(new LambdaUpdateWrapper<DownWorkstation>().set(DownWorkstation::getEnableState, Const.SLOT_OFF)
-                    .in(DownWorkstation::getWorkstationId, workstationIds));
-
+            if (CollectionUtils.isNotEmpty(workstationFull)) {
+                List<Integer> workstationIds = workstationFull.stream().map(DownWorkstation::getWorkstationId).collect(Collectors.toList());
+                downWorkstationService.update(new LambdaUpdateWrapper<DownWorkstation>().set(DownWorkstation::getEnableState, Const.SLOT_OFF)
+                        .in(DownWorkstation::getWorkstationId, workstationIds));
+            }
         }
         return workstationFull;
     }
+
+    @Override
+    public List<Map<String, List<Map<String, Object>>>> downGlassPrint(DownGlassInfo downGlassInfo) {
+        log.info("鎵撳嵃鍙傛暟:{}", downGlassInfo);
+        QueryWrapper<DownGlassInfo> queryWrapper = Wrappers.query();
+        queryWrapper.eq("flow_card_id", downGlassInfo.getFlowCardId())
+                .eq("layer", downGlassInfo.getLayer())
+                .select("flow_card_id", "layer", "width", "height", "filmsid", "thickness", "glass_type", "COUNT(*) AS quantity")
+                .groupBy("flow_card_id", "layer", "width", "height", "filmsid", "thickness", "glass_type");
+        List<Map<String, Object>> resultList = baseMapper.selectMaps(queryWrapper);
+        log.info("MES钀芥灦鏁版嵁:{}", resultList);
+
+        List<Map<String, Object>> projectInfo = flowCardService.selectProject(downGlassInfo.getFlowCardId(), downGlassInfo.getLayer());
+        log.info("娴佺▼鍗″ご閮ㄦ暟鎹�:{}", projectInfo);
+        List<Map<String, Object>> flowCardInfo = flowCardService.selectFlowCard(downGlassInfo.getFlowCardId(), downGlassInfo.getLayer());
+        log.info("娴佺▼鍗$幓鐠冩暟鎹�:{}", flowCardInfo);
+        for (Map<String, Object> row : flowCardInfo) {
+            int order_number = (int) row.get("order_number");
+            int technology_number = (int) row.get("technology_number");
+
+            for (Map<String, Object> row1 : resultList) {
+                int glass_type = (int) row1.get("glass_type");
+                int layer = (int) row1.get("layer");
+                Long quantity = (Long) row1.get("quantity");
+
+                if (order_number == glass_type && technology_number == layer) {
+                    row.put("quantity1", quantity);
+                }
+            }
+        }
+        log.info("娴佺▼鍗$幓鐠冩暟鎹�2:{}", flowCardInfo);
+        List<Map<String, List<Map<String, Object>>>> listMap = new ArrayList<>();
+        Map<String, List<Map<String, Object>>> result = new HashMap<>();
+        result.put("detail", projectInfo);
+        result.put("detailList", flowCardInfo);
+        for (Map<String, Object> row : projectInfo) {
+            String order_number = (String) row.get("process");
+            String[] processes = order_number.split("->");
+            List<Map<String, Object>> processList = new ArrayList<>();
+            for (int i = 0; i < processes.length; i++) {
+                Map<String, Object> processMap = new JSONObject();
+                processMap.put("process", processes[i]);
+                processMap.put("id", i);
+                processList.add(processMap);
+            }
+            result.put("processList", processList);
+        }
+        listMap.add(result);
+        return listMap;
+    }
 }

--
Gitblit v1.8.0