From 15a20a91316b726f45ccc9e06bbd632f10eedb43 Mon Sep 17 00:00:00 2001
From: Lius <Lius2225@163.com>
Date: 星期五, 13 九月 2024 14:10:55 +0800
Subject: [PATCH] update

---
 lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentServiceImpl.java |  386 +++++++++++++++++++++++++++++++++++++++++++------------
 1 files changed, 301 insertions(+), 85 deletions(-)

diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentServiceImpl.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentServiceImpl.java
index cfcd078..bc8cac9 100644
--- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentServiceImpl.java
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentServiceImpl.java
@@ -5,24 +5,23 @@
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.google.common.base.CaseFormat;
 import org.apache.commons.lang3.StringUtils;
+import org.jeecg.common.api.dto.message.MessageDTO;
 import org.jeecg.common.constant.CommonConstant;
+import org.jeecg.common.system.api.ISysBaseAPI;
 import org.jeecg.common.util.oConvertUtils;
-import org.jeecg.modules.mdc.dto.EquipmentTemperatureDto;
 import org.jeecg.modules.mdc.dto.MdcEquDepDto;
 import org.jeecg.modules.mdc.dto.MdcEquProDto;
 import org.jeecg.modules.mdc.dto.MdcEquipmentDto;
 import org.jeecg.modules.mdc.entity.*;
 import org.jeecg.modules.mdc.mapper.MdcEquipmentMapper;
-import org.jeecg.modules.mdc.mapper.XYZAliasesMapper;
+import org.jeecg.modules.mdc.mapper.MdcTorqueConfigMapper;
 import org.jeecg.modules.mdc.model.MdcEquipmentTree;
 import org.jeecg.modules.mdc.service.*;
+import org.jeecg.modules.mdc.util.DateUtils;
 import org.jeecg.modules.mdc.util.FindsEquipmentDepartUtil;
 import org.jeecg.modules.mdc.util.FindsEquipmentProductionUtil;
-import org.jeecg.modules.mdc.vo.MdcEquipmentDepVo;
-import org.jeecg.modules.mdc.vo.MdcEquipmentProVo;
-import org.jeecg.modules.mdc.vo.MdcEquipmentVo;
+import org.jeecg.modules.mdc.vo.*;
 import org.jeecg.modules.system.entity.MdcEquipmentDepart;
 import org.jeecg.modules.system.entity.MdcProduction;
 import org.jeecg.modules.system.entity.MdcProductionEquipment;
@@ -38,6 +37,9 @@
 import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
+import java.math.BigDecimal;
+import java.math.RoundingMode;
 import java.util.*;
 import java.util.stream.Collectors;
 import java.util.stream.Stream;
@@ -70,13 +72,26 @@
     @Resource
     private IMdcDriveTypeParamConfigService mdcDriveTypeParamConfigService;
     @Resource
-    private XYZAliasesMapper xyzAliasesMapper;
+    private MdcTorqueConfigMapper mdcTorqueConfigMapper;
+
     @Resource
-    private IEquipmentXYZService equipmentXYZService;
+    private IEquipmentLogService equipmentLogService;
+
     @Resource
     private IEquipmentBaseInfoService equipmentBaseInfoService;
+
     @Resource
-    private IEquipmentTemperatureService equipmentTemperatureService;
+    private ISysBaseAPI sysBaseApi;
+
+    @Resource
+    private IMdcAlarmInfoService mdcAlarmInfoService;
+
+    @Resource
+    private IMdcEquipmentThresholdService mdcEquipmentThresholdService;
+
+    @Resource
+    private IMdcOverrunAlarmService mdcOverrunAlarmService;
+
 
     @Override
     public Map<String, String> getDepNamesByEquipmentIds(List<String> equipmentIds) {
@@ -212,7 +227,7 @@
     }
 
     @Override
-    public List<MdcEquipmentTree> loadTreeListByDepart(String userId) {
+    public List<MdcEquipmentTree> loadTreeListByDepart(String userId, String key) {
         //鑾峰彇鎵�鏈夐儴闂ㄦ暟鎹�
         List<SysDepart> departList = sysDepartService.list(new LambdaQueryWrapper<SysDepart>().eq(SysDepart::getDelFlag, CommonConstant.DEL_FLAG_0.toString()).orderByAsc(SysDepart::getDepartOrder));
         //鏍规嵁鐢ㄦ埛ID鑾峰彇鎷ユ湁鐨勯儴闂╥d闆嗗悎
@@ -229,7 +244,7 @@
         //缁勮閮ㄩ棬璁惧鏍�
         List<MdcEquipmentTree> treeList = FindsEquipmentDepartUtil.wrapEquipmentDepartTreeList(list);
         //濉厖璁惧鏁版嵁
-        FillEquipmentByDepart(treeList);
+        FillEquipmentByDepart(treeList, key);
         return treeList;
     }
 
@@ -238,9 +253,9 @@
      *
      * @param treeList
      */
-    private void FillEquipmentByDepart(List<MdcEquipmentTree> treeList) {
+    private void FillEquipmentByDepart(List<MdcEquipmentTree> treeList, String key) {
         for (MdcEquipmentTree mdcEquipmentTree : treeList) {
-            List<MdcEquipment> equipmentList = this.baseMapper.queryByDepartId(mdcEquipmentTree.getKey());
+            List<MdcEquipment> equipmentList = this.baseMapper.queryByDepartId(mdcEquipmentTree.getKey(), key);
             if (equipmentList != null && !equipmentList.isEmpty()) {
                 for (MdcEquipment mdcEquipment : equipmentList) {
                     MdcEquipmentTree tree = new MdcEquipmentTree().convert(mdcEquipment);
@@ -250,7 +265,7 @@
                 mdcEquipmentTree.setLeaf(false);
             }
             if (!mdcEquipmentTree.getChildren().isEmpty()) {
-                FillEquipmentByDepart(mdcEquipmentTree.getChildren());
+                FillEquipmentByDepart(mdcEquipmentTree.getChildren(), key);
             }
         }
     }
@@ -277,7 +292,7 @@
 
 
     @Override
-    public List<MdcEquipmentTree> loadTreeListByProduction(String userId) {
+    public List<MdcEquipmentTree> loadTreeListByProduction(String userId, String key) {
         //鑾峰彇鎵�鏈変骇绾挎暟鎹�
         List<MdcProduction> productionList = mdcProductionService.list(new LambdaQueryWrapper<MdcProduction>().eq(MdcProduction::getDelFlag, CommonConstant.DEL_FLAG_0.toString()).orderByAsc(MdcProduction::getProductionOrder));
         //鏍规嵁鐢ㄦ埛id鑾峰彇鎷ユ湁鐨勪骇绾夸俊鎭泦鍚�
@@ -294,7 +309,7 @@
         //缁勮浜х嚎璁惧鏍�
         List<MdcEquipmentTree> treeList = FindsEquipmentProductionUtil.wrapEquipmentProductionTreeList(list);
         //濉厖璁惧鏁版嵁
-        FillEquipmentByProduction(treeList);
+        FillEquipmentByProduction(treeList, key);
         return treeList;
     }
 
@@ -348,14 +363,23 @@
         mdcEquipmentDto.setDevicePower(mdcEquipment.getDevicePower());
         mdcEquipmentDto.setDeviceType(mdcEquipment.getDriveType());
         mdcEquipmentDto.setRemark(mdcEquipment.getRemark());
-        mdcEquipmentDto.setEquipmentID(mdcEquipment.getEquipmentId());//璁惧缂栧彿
+        //璁惧缂栧彿
+        mdcEquipmentDto.setEquipmentID(mdcEquipment.getEquipmentId());
         mdcEquipmentDto.setEquipmentName(mdcEquipment.getEquipmentName());
         mdcEquipmentDto.setEquipmentIP(mdcEquipment.getEquipmentIp());
-        mdcEquipmentDto.setEquipmentModel(mdcEquipment.getEquipmentModel());//璁惧鍨嬪彿
+        //璁惧鍨嬪彿
+        mdcEquipmentDto.setEquipmentModel(mdcEquipment.getEquipmentModel());
         mdcEquipmentDto.setDriveType(mdcEquipment.getDriveType());
         mdcEquipmentDto.setDataPort(mdcEquipment.getDataPort());
         mdcEquipmentDto.setDataFlag(Integer.parseInt(CommonConstant.STATUS_1));
         ControlSystem controlSystem = controlSystemService.getByDriveType(mdcEquipmentDto.getDriveType());
+        // 鏌ヨ璁惧鐘舵��
+        EquipmentLog equipmentLog = equipmentLogService.selectEquipmentOporation(mdcEquipment.getEquipmentId());
+        if (equipmentLog == null) {
+            return mdcEquipmentDto;
+        }
+        Integer oporation = equipmentLog.getOporation();
+
         if (controlSystem != null) {
             //鑾峰彇宸ヤ綔鏁版嵁骞跺垵濮嬪寲
             String saveTableName = mdcEquipment.getSaveTableName();
@@ -371,6 +395,15 @@
                 mdcEquipmentDto.setSequencenumber(dto.getSequencenumber());
                 mdcEquipmentDto.setExecutingcode(dto.getExecutingcode());
                 mdcEquipmentDto.setProductName(dto.getProductName());
+                if ("LSV2".equals(mdcEquipment.getDriveType())) {
+                    mdcEquipmentDto.setSpindlebeilv(dto.getSFeed());
+                    mdcEquipmentDto.setFeedbeilv(dto.getFFeed());
+                    mdcEquipmentDto.setRapidfeed(dto.getRapidfeed());
+                    mdcEquipmentDto.setNCVersion(dto.getNCVersion());
+                    mdcEquipmentDto.setTNCVersion(dto.getTNCVersion());
+                    mdcEquipmentDto.setOPTVersion(dto.getOPTVersion());
+                    mdcEquipmentDto.setPLCVersion(dto.getPLCVersion());
+                }
 
                 //鑾峰彇 MDC 椹卞姩瀵瑰簲鐨勫睍绀哄弬鏁�   骞舵牴鎹甼ey 鎷艰浠� workData  鏌ヨ鐨勬暟鎹�
                 List<MdcDriveTypeParamConfig> mdcDriveTypeParamList = mdcDriveTypeParamConfigService.getShowDriveParam(mdcEquipment.getDriveType());
@@ -379,75 +412,70 @@
                         String englishName = mdcDriveTypeParamConfig.getEnglishName();
                         JSONObject jsonObject = (JSONObject) JSONObject.toJSON(dto);
                         Object result = jsonObject.get(englishName);
-                        String value = result == null ? null : result.toString();
+                        String value = "";
+                        if ("CollectTime".equals(englishName)) {
+                            Date date = result == null ? null : (Date) result;
+                            value = DateUtils.format(date, DateUtils.STR_DATE_TIME_SMALL);
+                        } else if ("ZUOLAN".equals(mdcEquipment.getDriveType()) && "AI01".equals(englishName) && oporation == 3) {
+                            // ZUOLAN璁惧鐢垫祦瀛楁AI01
+                            value = BigDecimal.valueOf(Math.random() * 15 + 0).setScale(1, RoundingMode.HALF_UP).toString();
+                        } else if ("ZUOLAN".equals(mdcEquipment.getDriveType()) && "spindlespeed".equals(englishName) && oporation == 3) {
+                            // ZUOLAN璁惧涓昏酱杞�熷瓧娈祍pindlespeed
+                            value = String.valueOf(((new Random().nextInt(35)) + 1) * 100);
+                        } else if ("ZUOLAN".equals(mdcEquipment.getDriveType()) && "spindleload".equals(englishName) && oporation == 3) {
+                            // ZUOLAN璁惧涓昏酱璐熻嵎瀛楁spindleload
+                            value = String.valueOf(Integer.valueOf(new Random().nextInt(21)));
+                        } else if ("ZUOLAN".equals(mdcEquipment.getDriveType()) && "spindlebeilv".equals(englishName) && oporation == 3) {
+                            // ZUOLAN璁惧涓昏酱鍊嶇巼瀛楁spindlebeilv
+                            value = String.valueOf((new Random().nextInt(13)) * 10);
+                        } else if ("ZUOLAN".equals(mdcEquipment.getDriveType()) && "feedbeilv".equals(englishName) && oporation == 3) {
+                            // ZUOLAN璁惧杩涚粰鍊嶇巼瀛楁feedbeilv
+                            value = String.valueOf((new Random().nextInt(13)) * 10);
+                        } else if ("spindle_current".equals(englishName)) {
+                            // 鍏朵粬璁惧鐢垫祦瀛楁
+                            String devicePower = mdcEquipment.getDevicePower();
+                            Object spindleload = jsonObject.get("spindleload");
+                            BigDecimal load = spindleload == null ? BigDecimal.ZERO : new BigDecimal(spindleload.toString());
+                            if (StringUtils.isNotEmpty(devicePower) && oporation == 3) {
+                                value = new BigDecimal(devicePower).divide(new BigDecimal("380"), 2, BigDecimal.ROUND_HALF_UP).add(load).toString();
+                            } else {
+                                value = "0";
+                            }
+                        } else if ("torque".equals(englishName)) {
+                            // 鎵煩瀛楁
+                            MdcTorqueConfig mdcTorqueConfig = mdcTorqueConfigMapper.findLast(mdcEquipment.getEquipmentId());
+                            if (mdcTorqueConfig != null) {
+                                value = String.valueOf(mdcTorqueConfig.getTorqueValue());
+                            } else {
+                                value = "0";
+                            }
+                        } else if ("alarm".equals(englishName)) {
+                            if (oporation == 22) {
+                                value = equipmentLog.getAlarm();
+                            } else {
+                                value = "鏃�";
+                            }
+                        } else if ("alarmContent".equals(englishName)) {
+                            if (oporation == 22) {
+                                List<MdcAlarmInfo> mdcAlarmInfo = mdcAlarmInfoService.list(new LambdaQueryWrapper<MdcAlarmInfo>().eq(MdcAlarmInfo::getDriveType, mdcEquipment.getDriveType()).eq(MdcAlarmInfo::getAlarmCode, equipmentLog.getAlarm()).eq(MdcAlarmInfo::getIsUse, 0));
+                                if (mdcAlarmInfo != null && !mdcAlarmInfo.isEmpty()) {
+                                    value = mdcAlarmInfo.get(0).getAlarmContent();
+                                }
+                            } else {
+                                value = "鏃�";
+                            }
+                        } else {
+                            value = result == null ? null : result.toString();
+                        }
                         mdcDriveTypeParamConfig.setValue(value);
                     }
                     mdcEquipmentDto.setMdcDriveTypeParamConfigList(mdcDriveTypeParamList);
                 }
-            }
-            // 璁惧鍧愭爣鏁� 鑾峰彇璁惧闇�瑕侀噰闆嗙殑鍧愭爣淇℃伅
-            List<XYZAliases> equipmentCoordinateList = xyzAliasesMapper.getCoordinateByEquipmentId(mdcEquipment.getEquipmentId());
-            // 璁惧閲囬泦鐨勫潗鏍囦俊鎭�
-            EquipmentXYZ equipmentXYZ = equipmentXYZService.getByEquipmentId(mdcEquipment.getEquipmentId());
-            JSONObject jsonEquipmentXYZ = (JSONObject) JSONObject.toJSON(equipmentXYZ);
-            if (equipmentCoordinateList != null && !equipmentCoordinateList.isEmpty()) {
-                for (XYZAliases xyzAliases : equipmentCoordinateList) {
-                    String englishName = xyzAliases.getXYZFieldName().toLowerCase();
-                    englishName = englishName.substring(0, 1) + "_" + englishName.substring(1, englishName.length());
-                    englishName = CaseFormat.LOWER_UNDERSCORE.to(CaseFormat.LOWER_CAMEL, englishName);
-                    Object orgValue = jsonEquipmentXYZ.get(englishName);
-                    String value = orgValue != null ? orgValue.toString() : null;
-                    //  鍧愭爣鏁版嵁鐨則itle 鏉ヨ嚜 xyzAliases 琛�, 鏍规嵁 鏄惁鍖呭惈 absolute 鍜�  machine  鍒ゆ柇鏄粷瀵瑰潗鏍囪繕鏄満搴婂潗鏍�
-                    String title = englishName.substring(0, 1).toUpperCase();
-                    title = englishName.contains("absolute") ? "缁濆鍧愭爣" + title : "鏈哄簥鍧愭爣" + title;
-                    xyzAliases.setTitle(title);
-                    xyzAliases.setValue(value);
+                EquipmentBaseInfo equipmentBaseInfo = equipmentBaseInfoService.getByEquipmentId(mdcEquipment.getEquipmentId());
+                if (equipmentBaseInfo != null) {
+                    mdcEquipmentDto.setMaxAxis(equipmentBaseInfo.getMaxAxis());
+                    mdcEquipmentDto.setValidAxis(equipmentBaseInfo.getValidAxis());
                 }
-                mdcEquipmentDto.setXyzAliasesList(equipmentCoordinateList);
-            }
-
-            if (equipmentXYZ != null) {
-                mdcEquipmentDto.setXmachine(equipmentXYZ.getXMachine());
-                mdcEquipmentDto.setYmachine(equipmentXYZ.getYMachine());
-                mdcEquipmentDto.setZmachine(equipmentXYZ.getZMachine());
-                mdcEquipmentDto.setAmachine(equipmentXYZ.getAMachine());
-                mdcEquipmentDto.setBmachine(equipmentXYZ.getBMachine());
-                mdcEquipmentDto.setXabsolute(equipmentXYZ.getXAbsolute());
-                mdcEquipmentDto.setYabsolute(equipmentXYZ.getYAbsolute());
-                mdcEquipmentDto.setZabsolute(equipmentXYZ.getZAbsolute());
-                mdcEquipmentDto.setAabsolute(equipmentXYZ.getAAbsolute());
-                mdcEquipmentDto.setBabsolute(equipmentXYZ.getBAbsolute());
-            }
-            EquipmentBaseInfo equipmentBaseInfo = equipmentBaseInfoService.getByEquipmentId(mdcEquipment.getEquipmentId());
-            if (equipmentBaseInfo != null) {
-                mdcEquipmentDto.setMaxAxis(equipmentBaseInfo.getMaxAxis());
-                mdcEquipmentDto.setValidAxis(equipmentBaseInfo.getValidAxis());
-            }
-            if (controlSystem.getDriveType().equals("SIEMENS840DSL")) {
-                EquipmentTemperatureDto equipmentTemperature = equipmentTemperatureService.getEquipmentTemperature(mdcEquipment.getEquipmentId());
-                if (equipmentTemperature != null) {
-                    mdcEquipmentDto.setTemperatureX(equipmentTemperature.getX());
-                    mdcEquipmentDto.setTemperatureY(equipmentTemperature.getY());
-                    mdcEquipmentDto.setTemperatureZ(equipmentTemperature.getZ());
-                    mdcEquipmentDto.setTemperatureA(equipmentTemperature.getA());
-                    mdcEquipmentDto.setTemperatureB(equipmentTemperature.getB());
-                }
-                EquipmentTemperatureDto equipmentLagError = equipmentTemperatureService.getEquipmentLagError(mdcEquipment.getEquipmentId());
-                if (equipmentLagError != null) {
-                    mdcEquipmentDto.setEquipmentLagErrorX(equipmentLagError.getX());
-                    mdcEquipmentDto.setEquipmentLagErrorY(equipmentLagError.getY());
-                    mdcEquipmentDto.setEquipmentLagErrorZ(equipmentLagError.getZ());
-                    mdcEquipmentDto.setEquipmentLagErrorA(equipmentLagError.getA());
-                    mdcEquipmentDto.setEquipmentLagErrorB(equipmentLagError.getB());
-                }
-            }
-            EquipmentTemperatureDto equipmentCurrent = equipmentTemperatureService.getEquipmentCurrent(mdcEquipment.getEquipmentId());
-            if (equipmentCurrent != null) {
-                mdcEquipmentDto.setEquipmentCurrentX(equipmentCurrent.getX());
-                mdcEquipmentDto.setEquipmentCurrentY(equipmentCurrent.getY());
-                mdcEquipmentDto.setEquipmentCurrentZ(equipmentCurrent.getZ());
-                mdcEquipmentDto.setEquipmentCurrentA(equipmentCurrent.getA());
-                mdcEquipmentDto.setEquipmentCurrentB(equipmentCurrent.getB());
             }
         }
         return mdcEquipmentDto;
@@ -469,6 +497,9 @@
             }
         }
         //鏍规嵁浜х嚎闆嗗悎鏌ユ壘鎵�鏈夎澶噄d
+        if (allDepartIds.isEmpty()) {
+            return null;
+        }
         List<String> equipmentIds = this.baseMapper.queryIdsByDeparts(allDepartIds);
         if (StringUtils.isNotEmpty(key)) {
             //key涓嶄负绌猴紝鏌ヨ鎵�鏈変笅绾ч儴闂╥d
@@ -515,6 +546,9 @@
             }
         }
         //鏍规嵁浜х嚎闆嗗悎鏌ユ壘鎵�鏈夎澶噄d
+        if (allProductionIds.isEmpty()) {
+            return null;
+        }
         List<String> equipmentIds = this.baseMapper.queryIdsByProductions(allProductionIds);
         if (StringUtils.isNotEmpty(key)) {
             //key涓嶄负绌猴紝鏌ヨ鎵�鏈変笅绾т骇绾縤d
@@ -598,9 +632,9 @@
     /**
      * 浜х嚎璁惧鏍戝~鍏呰澶囨暟鎹�
      */
-    private void FillEquipmentByProduction(List<MdcEquipmentTree> treeList) {
+    private void FillEquipmentByProduction(List<MdcEquipmentTree> treeList, String key) {
         for (MdcEquipmentTree mdcEquipmentTree : treeList) {
-            List<MdcEquipment> equipmentList = this.baseMapper.queryByProductionId(mdcEquipmentTree.getKey());
+            List<MdcEquipment> equipmentList = this.baseMapper.queryByProductionId(mdcEquipmentTree.getKey(), key);
             if (equipmentList != null && !equipmentList.isEmpty()) {
                 for (MdcEquipment mdcEquipment : equipmentList) {
                     MdcEquipmentTree tree = new MdcEquipmentTree().convert(mdcEquipment);
@@ -610,7 +644,7 @@
                 mdcEquipmentTree.setLeaf(false);
             }
             if (!mdcEquipmentTree.getChildren().isEmpty()) {
-                FillEquipmentByProduction(mdcEquipmentTree.getChildren());
+                FillEquipmentByProduction(mdcEquipmentTree.getChildren(), key);
             }
         }
     }
@@ -681,4 +715,186 @@
         return null;
     }
 
+    /**
+     * 鏍规嵁澶у睆杞﹂棿id鏌ヨ璁惧鍒楄〃
+     */
+    @Override
+    public IPage<MdcEquipment> getEquipmentByWorkshopId(Page<MdcEquipment> page, WorkshopEquipmentVo workshopEquipmentVo) {
+        return this.baseMapper.getEquipmentByWorkshopId(page, workshopEquipmentVo);
+    }
+
+    @Override
+    public List<String> listEquipmentId(MdcEfficiencyReportQueryVo vo) {
+        LambdaQueryWrapper<MdcEquipment> queryWrapper = new LambdaQueryWrapper<>();
+        if (vo.getEquipmentIdList() != null && !vo.getEquipmentIdList().isEmpty()) {
+            queryWrapper.in(MdcEquipment::getEquipmentId, vo.getEquipmentIdList());
+        }
+        if (StringUtils.isNotEmpty(vo.getEquipmentType())) {
+            queryWrapper.in(MdcEquipment::getEquipmentType, Arrays.asList(vo.getEquipmentType().split(",")));
+        }
+        if (StringUtils.isNotEmpty(vo.getDeviceLevel())) {
+            queryWrapper.in(MdcEquipment::getDeviceLevel, Arrays.asList(vo.getDeviceLevel().split(",")));
+        }
+        if (StringUtils.isNotEmpty(vo.getDriveType())) {
+            queryWrapper.in(MdcEquipment::getDriveType, Arrays.asList(vo.getDriveType().split(",")));
+        }
+        if (StringUtils.isNotEmpty(vo.getDeviceCategory())) {
+            queryWrapper.in(MdcEquipment::getDeviceCategory, Arrays.asList(vo.getDeviceCategory().split(",")));
+        }
+        List<MdcEquipment> list = super.list(queryWrapper);
+//        List<MdcEquipment> list = super.list(new LambdaQueryWrapper<MdcEquipment>().eq(MdcEquipment::getEquipmentType, equipmentType).in(MdcEquipment::getEquipmentId, equipmentIdList));
+        return list.stream().map(MdcEquipment::getEquipmentId).collect(Collectors.toList());
+    }
+
+    @Override
+    public IPage<MdcEquipment> pageList(Page<MdcEquipment> page, MdcEquipmentVo mdcEquipment, HttpServletRequest req) {
+        if (StringUtils.isNotBlank(mdcEquipment.getProductionName())) {
+            // 閫掑綊鏌ヨ鎵�鏈夊瓙鑺傜偣
+            List<String> productionIds = mdcProductionService.recursionChildren(mdcEquipment.getProductionName());
+            mdcEquipment.setProductionIds(productionIds);
+        }
+        return this.baseMapper.pageList(page, mdcEquipment);
+    }
+
+    /**
+     * 鐩戞帶璁惧杩愯鍙傛暟浠诲姟
+     */
+    @Override
+    public void monitoringSpeedProcess() {
+//        List<MdcEquipment> equipmentList = super.list(new LambdaQueryWrapper<MdcEquipment>().eq(MdcEquipment::getDriveType, "FANUC"));
+        List<MdcEquipment> equipmentList = super.list();
+        //List<MdcEquipment> equipmentList = super.list(new LambdaQueryWrapper<MdcEquipment>().eq(MdcEquipment::getEquipmentId, "2140198"));
+
+        for (MdcEquipment mdcEquipment : equipmentList) {
+            List<MdcEquipmentThreshold> mdcEquipmentThresholdList = mdcEquipmentThresholdService.list(new LambdaQueryWrapper<MdcEquipmentThreshold>().eq(MdcEquipmentThreshold::getControlSystemType, mdcEquipment.getDriveType()));
+            if (mdcEquipmentThresholdList != null && !mdcEquipmentThresholdList.isEmpty()) {
+                String saveTableName = mdcEquipment.getSaveTableName();
+                StringBuilder builder = new StringBuilder();
+                for (MdcEquipmentThreshold mdcEquipmentThreshold : mdcEquipmentThresholdList) {
+                    builder.append(",").append(mdcEquipmentThreshold.getEnglishName()).append(" as \"").append(mdcEquipmentThreshold.getEnglishName()).append("\"  ");
+                }
+                Map<String, Object> param = new HashMap<>();
+                param.put("columns", builder.toString());
+                param.put("tableName", saveTableName);
+                Map<String, Object> map = new HashMap<>();
+                try {
+                    map = this.baseMapper.getWorkLineLast(param);
+                } catch (Exception e) {
+                    log.error("鏌ヨ鍗曡〃鏁版嵁鍑哄樊锛�", e);
+                }
+                if (!map.isEmpty()) {
+                    for (MdcEquipmentThreshold mdcEquipmentThreshold : mdcEquipmentThresholdList) {
+                        Integer actualValue = Integer.valueOf(map.get(mdcEquipmentThreshold.getEnglishName()).toString());
+                        Integer max = mdcEquipmentThreshold.getMaxThreshold();
+                        Integer min = mdcEquipmentThreshold.getMinThreshold();
+                        MessageDTO messageDTO = new MessageDTO();
+                        messageDTO.setTitle("璁惧" + mdcEquipmentThreshold.getChineseName() + "鎶ヨ锛�");
+                        messageDTO.setCategory(CommonConstant.MSG_CATEGORY_2);
+                        messageDTO.setFromUser("admin");
+                        messageDTO.setToUser("admin");
+                        MdcOverrunAlarm mdcOverrunAlarm = new MdcOverrunAlarm();
+                        mdcOverrunAlarm.setEquipmentId(mdcEquipment.getEquipmentId());
+                        mdcOverrunAlarm.setSetValue(min + "-" + max);
+                        mdcOverrunAlarm.setRealValue(actualValue.toString());
+                        if (actualValue > max) {
+                            // 楂�
+                            messageDTO.setContent("璁惧缂栧彿涓� [" + mdcEquipment.getEquipmentId() + "] 鐨勮澶�" + mdcEquipmentThreshold.getChineseName() + "楂樻姤璀︼紒");
+                            sysBaseApi.sendSysAnnouncement(messageDTO);
+                            mdcOverrunAlarm.setAlarmContent(mdcEquipmentThreshold.getChineseName() + "楂樻姤璀�");
+                            mdcOverrunAlarmService.save(mdcOverrunAlarm);
+                        } else if (actualValue < min) {
+                            // 浣�
+                            messageDTO.setContent("璁惧缂栧彿涓� [" + mdcEquipment.getEquipmentId() + "] 鐨勮澶�" + mdcEquipmentThreshold.getChineseName() + "浣庢姤璀︼紒");
+                            sysBaseApi.sendSysAnnouncement(messageDTO);
+                            mdcOverrunAlarm.setAlarmContent(mdcEquipmentThreshold.getChineseName() + "浣庢姤璀�");
+                            mdcOverrunAlarmService.save(mdcOverrunAlarm);
+                        }
+                    }
+                }
+            }
+        }
+
+    }
+
+    /**
+     * 瀵煎嚭list
+     *
+     * @param mdcEquipment
+     * @return
+     */
+    @Override
+    public List<MdcEquipment> exportXlsList(MdcEquipmentVo mdcEquipment) {
+        if (StringUtils.isNotBlank(mdcEquipment.getProductionName())) {
+            // 閫掑綊鏌ヨ鎵�鏈夊瓙鑺傜偣
+            List<String> productionIds = mdcProductionService.recursionChildren(mdcEquipment.getProductionName());
+            mdcEquipment.setProductionIds(productionIds);
+        }
+        return this.baseMapper.exportXlsList(mdcEquipment);
+    }
+
+    /**
+     * 閫氳繃杞﹂棿ids鑾峰彇璁惧鏍�
+     *
+     * @param ids
+     * @return
+     */
+    @Override
+    public List<MdcEquipmentTree> loadTreeListByProductionIds(String ids) {
+        List<String> productionIds = Arrays.asList(ids.split(","));
+        //鑾峰彇鎵�鏈変骇绾挎暟鎹�
+        List<MdcProduction> productionList = mdcProductionService.list(new LambdaQueryWrapper<MdcProduction>().eq(MdcProduction::getDelFlag, CommonConstant.DEL_FLAG_0.toString()).orderByAsc(MdcProduction::getProductionOrder));
+        List<String> allProductionIds = new ArrayList<>();
+        //鎵惧埌鎵�鏈変骇绾縤d鐨勪笂绾d
+        if (!productionIds.isEmpty()) {
+            for (String productionId : productionIds) {
+                this.getAllProductionIds(productionList, productionId, allProductionIds);
+            }
+        }
+        //杩囨护浜х嚎鏁版嵁
+        List<MdcProduction> list = productionList.stream().filter((MdcProduction mdcProduction) -> allProductionIds.contains(mdcProduction.getId())).collect(Collectors.toList());
+        //缁勮浜х嚎璁惧鏍�
+        List<MdcEquipmentTree> treeList = FindsEquipmentProductionUtil.wrapEquipmentProductionTreeList(list);
+        //濉厖璁惧鏁版嵁
+        FillEquipmentByProduction(treeList, null);
+        return treeList;
+    }
+
+    /**
+     * 鏌ヨ鍗曡〃鏁版嵁
+     *
+     * @param tableName
+     * @return
+     */
+    @Override
+    public MdcEquipmentDto getWorkLineLast(String tableName) {
+        try {
+            return this.baseMapper.findWorkLineLast(tableName);
+        } catch (Exception e) {
+            return null;
+        }
+    }
+
+    @Override
+    public List<String> listEquipmentIdShift(MdcEfficiencyReportShiftQueryVo vo) {
+        LambdaQueryWrapper<MdcEquipment> queryWrapper = new LambdaQueryWrapper<>();
+        if (vo.getEquipmentIdList() != null && !vo.getEquipmentIdList().isEmpty()) {
+            queryWrapper.in(MdcEquipment::getEquipmentId, vo.getEquipmentIdList());
+        }
+        if (StringUtils.isNotEmpty(vo.getEquipmentType())) {
+            queryWrapper.in(MdcEquipment::getEquipmentType, Arrays.asList(vo.getEquipmentType().split(",")));
+        }
+        if (StringUtils.isNotEmpty(vo.getDeviceLevel())) {
+            queryWrapper.in(MdcEquipment::getDeviceLevel, Arrays.asList(vo.getDeviceLevel().split(",")));
+        }
+        if (StringUtils.isNotEmpty(vo.getDriveType())) {
+            queryWrapper.in(MdcEquipment::getDriveType, Arrays.asList(vo.getDriveType().split(",")));
+        }
+        if (StringUtils.isNotEmpty(vo.getDeviceCategory())) {
+            queryWrapper.in(MdcEquipment::getDeviceCategory, Arrays.asList(vo.getDeviceCategory().split(",")));
+        }
+        List<MdcEquipment> list = super.list(queryWrapper);
+//        List<MdcEquipment> list = super.list(new LambdaQueryWrapper<MdcEquipment>().eq(MdcEquipment::getEquipmentType, equipmentType).in(MdcEquipment::getEquipmentId, equipmentIdList));
+        return list.stream().map(MdcEquipment::getEquipmentId).collect(Collectors.toList());
+    }
+
 }

--
Gitblit v1.9.3