From c33eedaf999b84dd8377aba96d8aeeeba264b4f6 Mon Sep 17 00:00:00 2001 From: hyingbo <1363390067@qq.com> Date: 星期二, 09 九月 2025 15:07:35 +0800 Subject: [PATCH] mdc首页功能迁移 --- lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/IMdcHomeServiceImpl.java | 135 ++++++++++++++++++++++---------------------- 1 files changed, 68 insertions(+), 67 deletions(-) diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/IMdcHomeServiceImpl.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/IMdcHomeServiceImpl.java index cb3f76b..4c2b54e 100644 --- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/IMdcHomeServiceImpl.java +++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/IMdcHomeServiceImpl.java @@ -1,7 +1,9 @@ package org.jeecg.modules.mdc.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.baomidou.mybatisplus.core.toolkit.StringUtils; +import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; +import org.apache.commons.compress.utils.Lists; +import org.apache.commons.lang3.StringUtils; import org.jeecg.common.system.vo.DictModel; import org.jeecg.modules.mdc.constant.MdcConstant; import org.jeecg.modules.mdc.dto.MdcEquipmentDto; @@ -20,6 +22,7 @@ import java.math.RoundingMode; import java.time.LocalDate; import java.util.*; +import java.util.stream.Collectors; /** * @author Lius @@ -56,7 +59,7 @@ * 璁惧杩愯鐘舵�佺粺璁� */ @Override - public List<MdcCommonVo> getEquipmentStatusStatistics(String userId, String key) { + public List<MdcCommonVo> getEquipmentStatusStatistics(String productionId) { List<MdcCommonVo> result = new ArrayList<>(); MdcCommonVo mdcCommonVo1 = new MdcCommonVo(); mdcCommonVo1.setName("鍏虫満"); @@ -75,15 +78,16 @@ mdcCommonVo4.setValue("0"); result.add(mdcCommonVo4); MdcEquipmentStatusVo mdcEquipmentStatusVo = new MdcEquipmentStatusVo(); - if (StringUtils.isBlank(key)) { - return result; + + //鑾峰彇鎵�鏈夎澶� + List<Equipment> equipmentList = Lists.newArrayList(); + if (StringUtils.isNotBlank(productionId)) { + List<String> equipmentIdList = mdcEquipmentService.getEquipmentIdsProduction(productionId); + equipmentList = CollectionUtils.isNotEmpty(equipmentIdList) ? equipmentService.listByIds(equipmentIdList) : new ArrayList<>(); + }else { + equipmentList = equipmentService.list(); } - List<String> equipmentIdList = mdcEquipmentService.getEquipmentIdsProduction(userId, key); - if (equipmentIdList == null || equipmentIdList.isEmpty()) { - return result; - } -// List<EquipmentLog> logList = equipmentLogService.getEquipmentStatusList(equipmentIdList); - List<Equipment> equipmentList = equipmentService.list(new LambdaQueryWrapper<Equipment>().in(Equipment::getEquipmentid, equipmentIdList)); + if (equipmentList != null && !equipmentList.isEmpty()) { for (Equipment equipment : equipmentList) { if (equipment.getOporation() != null) { @@ -131,10 +135,15 @@ * 璁惧鍒╃敤鐜囩粺璁� */ @Override - public List<MdcCommonVo> getEquipmentUtilizationStatistics(String userId, String key) { + public List<MdcCommonVo> getEquipmentUtilizationStatistics(String productionId) { List<MdcCommonVo> result = new ArrayList<>(); //鑾峰彇鍏徃鎴栧巶鍖轰簩绾т俊鎭� - List<MdcProduction> mdcProductionList = mdcHomeMapper.getProductionByPid(userId, key); + List<MdcProduction> mdcProductionList = mdcHomeMapper.getProductionByPid(null, productionId); + + //濡傛灉涓嶄紶鈥減roductionId鈥濆弬鏁帮紝鍒欐煡鎵�鏈夎溅闂达紝鍚﹀垯鏌ヨ璇ヨ溅闂翠笅鐨勫伐娈电瓑 + if (StringUtils.isEmpty(productionId)) { + mdcProductionList = mdcProductionList.stream().filter(mdcProduction -> "2".equals(mdcProduction.getOrgType())).collect(Collectors.toList()); + } if (mdcProductionList != null && !mdcProductionList.isEmpty()) { for (MdcProduction mdcProduction : mdcProductionList) { MdcCommonVo mdcCommonVo = new MdcCommonVo(); @@ -142,7 +151,7 @@ mdcCommonVo.setProductionCode(mdcProduction.getProductionCode()); mdcCommonVo.setProductionId(mdcProduction.getId()); //鑾峰彇姝ゅ眰绾т笅璁惧 - List<String> equipmentIdList = mdcEquipmentService.getEquipmentIdsProduction(userId, mdcProduction.getId()); + List<String> equipmentIdList = mdcEquipmentService.getEquipmentIdsProduction(mdcProduction.getId()); if (equipmentIdList == null || equipmentIdList.isEmpty()) { mdcCommonVo.setValue("0"); } else { @@ -167,10 +176,14 @@ * 璁惧OEE缁熻 */ @Override - public List<MdcCommonVo> getEquipmentOeeStatistics(String userId, String key) { + public List<MdcCommonVo> getEquipmentOeeStatistics(String productionId) { List<MdcCommonVo> result = new ArrayList<>(); //鑾峰彇鍏徃鎴栧巶鍖轰簩绾т俊鎭� - List<MdcProduction> mdcProductionList = mdcHomeMapper.getProductionByPid(userId, key); + List<MdcProduction> mdcProductionList = mdcHomeMapper.getProductionByPid(null, productionId); + //濡傛灉涓嶄紶鈥減roductionId鈥濆弬鏁帮紝鍒欐煡鎵�鏈夎溅闂达紝鍚﹀垯鏌ヨ璇ヨ溅闂翠笅鐨勫伐娈电瓑 + if (StringUtils.isEmpty(productionId)) { + mdcProductionList = mdcProductionList.stream().filter(mdcProduction -> "2".equals(mdcProduction.getOrgType())).collect(Collectors.toList()); + } if (mdcProductionList != null && !mdcProductionList.isEmpty()) { for (MdcProduction mdcProduction : mdcProductionList) { MdcCommonVo mdcCommonVo = new MdcCommonVo(); @@ -178,7 +191,7 @@ mdcCommonVo.setProductionCode(mdcProduction.getProductionCode()); mdcCommonVo.setProductionId(mdcProduction.getId()); //鑾峰彇姝ゅ眰绾т笅璁惧 - List<String> equipmentIdList = mdcEquipmentService.getEquipmentIdsProduction(userId, mdcProduction.getId()); + List<String> equipmentIdList = mdcEquipmentService.getEquipmentIdsProduction(mdcProduction.getId()); if (equipmentIdList == null || equipmentIdList.isEmpty()) { mdcCommonVo.setValue("0"); } else { @@ -187,7 +200,7 @@ if (oee == null || oee.compareTo(BigDecimal.ZERO) == 0) { mdcCommonVo.setValue("0"); } else { - mdcCommonVo.setValue(oee.divide(new BigDecimal(equipmentIdList.size()), 4, RoundingMode.HALF_UP).multiply(new BigDecimal("100")).setScale(2, RoundingMode.HALF_UP).toString()); + mdcCommonVo.setValue(CollectionUtils.isNotEmpty(equipmentIdList) ? oee.divide(new BigDecimal(equipmentIdList.size()), 4, RoundingMode.HALF_UP).multiply(new BigDecimal("100")).setScale(2, RoundingMode.HALF_UP).toString() : "0"); } } result.add(mdcCommonVo); @@ -200,8 +213,8 @@ * 璁惧OEE鍜屽埄鐢ㄧ巼缁熻鏌辩姸鍥� */ @Override - public Map<String, Object> getEquipmentMonthStatistics(String userId, String key) { - List<String> equipmentIdList = mdcEquipmentService.getEquipmentIdsProduction(userId, key); + public Map<String, Object> getEquipmentMonthStatistics(String productionId) { + List<String> equipmentIdList = mdcEquipmentService.getEquipmentIdsProduction(productionId); Map<String, Object> result = new HashMap<>(); Date end = DateUtils.toDate(LocalDate.now().plusMonths(-1).toString(), DateUtils.STR_DATE); Date start = DateUtils.toDate(LocalDate.now().plusMonths(-12).toString(), DateUtils.STR_DATE); @@ -241,7 +254,7 @@ if (oee == null || oee.compareTo(BigDecimal.ZERO) == 0) { mdcCommonOeeVo.setValue("0"); } else { - mdcCommonOeeVo.setValue(oee.divide(new BigDecimal(equipmentIdList.size()), 4, RoundingMode.HALF_UP).multiply(new BigDecimal("100")).setScale(2, RoundingMode.HALF_UP).toString()); + mdcCommonOeeVo.setValue(CollectionUtils.isNotEmpty(equipmentIdList) ? oee.divide(new BigDecimal(equipmentIdList.size()), 4, RoundingMode.HALF_UP).multiply(new BigDecimal("100")).setScale(2, RoundingMode.HALF_UP).toString() : "0"); } } utilizationList.add(mdcCommonUtilizationVo); @@ -257,34 +270,21 @@ * 宸ユ绾у墠涓冨ぉ鍒╃敤鐜囨姌绾垮浘 */ @Override - public Map<String, Object> getEquipmentDayUtilizationStatistics(String userId, String key) { + public Map<String, Object> getEquipmentDayUtilizationStatistics(String productionId) { Map<String, Object> result = new HashMap<>(); - List<String> equipmentIdList = mdcEquipmentService.getEquipmentIdsProduction(userId, key); - //鑾峰彇鍓嶄竷澶╂棩鏈熼泦鍚� - String start = DateUtils.format(DateUtils.toDate(LocalDate.now().plusDays(-7).toString(), DateUtils.STR_DATE), DateUtils.STRDATE); - String end = DateUtils.format(DateUtils.toDate(LocalDate.now().plusDays(-1).toString(), DateUtils.STR_DATE), DateUtils.STRDATE); - if (equipmentIdList != null && !equipmentIdList.isEmpty()) { - List<MdcEquipment> mdcEquipmentList = mdcEquipmentService.list(new LambdaQueryWrapper<MdcEquipment>().in(MdcEquipment::getEquipmentId, equipmentIdList)); - result.put("mdcEquipmentList", mdcEquipmentList); - List<MdcEquipmentStatisticalInfo> mdcEquipmentStatisticalInfoList = mdcHomeMapper.getEquipmentSevenUtilizationStatistics(equipmentIdList, start, end); - List<EquipmentDayUtilizationVo> dataList = new ArrayList<>(); - if (mdcEquipmentStatisticalInfoList != null && !mdcEquipmentStatisticalInfoList.isEmpty()) { - for (MdcEquipmentStatisticalInfo mdcEquipmentStatisticalInfo : mdcEquipmentStatisticalInfoList) { - EquipmentDayUtilizationVo equipmentDayUtilizationVo = new EquipmentDayUtilizationVo(); - equipmentDayUtilizationVo.setEquipmentId(mdcEquipmentStatisticalInfo.getEquipmentId()); - equipmentDayUtilizationVo.setUtilizationRate(mdcEquipmentStatisticalInfo.getProcessLong().divide(new BigDecimal("864"), 4, RoundingMode.HALF_UP).divide(new BigDecimal(mdcEquipmentStatisticalInfoList.size()), 4, RoundingMode.HALF_UP).setScale(2, RoundingMode.HALF_UP)); - if (BigDecimal.ZERO.compareTo(mdcEquipmentStatisticalInfo.getOpenLong()) == -1) { - equipmentDayUtilizationVo.setOpenRate(mdcEquipmentStatisticalInfo.getProcessLong().divide(mdcEquipmentStatisticalInfo.getOpenLong(), 4, RoundingMode.HALF_UP).multiply(new BigDecimal("100")).setScale(2, RoundingMode.HALF_UP)); - equipmentDayUtilizationVo.setStartRate(mdcEquipmentStatisticalInfo.getOpenLong().divide(new BigDecimal("864"), 4, RoundingMode.HALF_UP).divide(new BigDecimal(mdcEquipmentStatisticalInfoList.size()), 4, RoundingMode.HALF_UP).setScale(2, RoundingMode.HALF_UP)); - } - dataList.add(equipmentDayUtilizationVo); - } - } - result.put("dataList", dataList); - } - /*List<String> dayBetween = DateUtils.getDatesStringList2(start, end); + + List<String> equipmentIdList = mdcEquipmentService.getEquipmentIdsProduction(productionId); + Date startDate = DateUtils.toDate(LocalDate.now().plusDays(-15).toString(), DateUtils.STR_DATE); + String start = DateUtils.format(startDate, DateUtils.STRDATE); + Date endDate = DateUtils.toDate(LocalDate.now().plusDays(-1).toString(), DateUtils.STR_DATE); + String end = DateUtils.format(endDate, DateUtils.STRDATE); + List<MdcEquipmentStatisticalInfo> mdcEquipmentStatisticalInfos = mdcHomeMapper.getEquipmentSevenUtilizationStatistics(equipmentIdList, start, end); + Map<String, MdcEquipmentStatisticalInfo> mdcEquipmentStatisticalInfoMap = mdcEquipmentStatisticalInfos.stream().collect(Collectors.toMap(MdcEquipmentStatisticalInfo::getTheDate, mdcEquipmentStatisticalInfo -> mdcEquipmentStatisticalInfo, (v1, v2) -> v1)); + List<String> dayBetween = DateUtils.getDatesStringList2(startDate, endDate); + List<String> dateList = new ArrayList<>(); List<EquipmentDayUtilizationVo> dataList = new ArrayList<>(); + for (String date : dayBetween) { EquipmentDayUtilizationVo equipmentDayUtilizationVo = new EquipmentDayUtilizationVo(); String item = date.substring(4); @@ -292,42 +292,34 @@ item = item.substring(1); String sub = item.substring(1); if (sub.startsWith("0")) { - item = item.substring(0, 1) + "鏈�" + sub.substring(1) + "鏃�"; + item = item.substring(0, 1) + "-" + sub.substring(1); } else { - item = item.substring(0, 1) + "鏈�" + item.substring(1) + "鏃�"; + item = item.substring(0, 1) + "-" + item.substring(1); } } else { String sub = item.substring(2); if (sub.startsWith("0")) { - item = item.substring(0, 2) + "鏈�" + sub.substring(2) + "鏃�"; + item = item.substring(0, 2) + "-" + sub.substring(2); } else { - item = item.substring(0, 2) + "鏈�" + item.substring(2) + "鏃�"; + item = item.substring(0, 2) + "-" + item.substring(2); } } dateList.add(item); equipmentDayUtilizationVo.setDate(item); - if (equipmentIdList != null && !equipmentIdList.isEmpty()) { - //鑾峰彇鍓嶄竷澶╁埄鐢ㄧ巼鏁版嵁 - List<MdcEquipmentStatisticalInfo> mdcEquipmentStatisticalInfos = mdcHomeMapper.getEquipmentDayUtilizationStatistics(equipmentIdList, dayBetween); - if (mdcEquipmentStatisticalInfos != null && !mdcEquipmentStatisticalInfos.isEmpty()) { - for (MdcEquipmentStatisticalInfo mdcEquipmentStatisticalInfo : mdcEquipmentStatisticalInfos) { - if (mdcEquipmentStatisticalInfo.getTheDate().equals(date)) { - equipmentDayUtilizationVo.setUtilizationRate(mdcEquipmentStatisticalInfo.getProcessLong().divide(new BigDecimal("864"), 4, RoundingMode.HALF_UP).divide(new BigDecimal(equipmentIdList.size()), 4, RoundingMode.HALF_UP).setScale(2, RoundingMode.HALF_UP)); - if (BigDecimal.ZERO.compareTo(mdcEquipmentStatisticalInfo.getOpenLong()) == -1) { - equipmentDayUtilizationVo.setOpenRate(mdcEquipmentStatisticalInfo.getProcessLong().divide(mdcEquipmentStatisticalInfo.getOpenLong(), 4, RoundingMode.HALF_UP).multiply(new BigDecimal("100")).setScale(2, RoundingMode.HALF_UP)); - equipmentDayUtilizationVo.setStartRate(mdcEquipmentStatisticalInfo.getOpenLong().divide(new BigDecimal("864"), 4, RoundingMode.HALF_UP).divide(new BigDecimal(equipmentIdList.size()), 4, RoundingMode.HALF_UP).setScale(2, RoundingMode.HALF_UP)); - } - } - } - } else { - dataList.add(equipmentDayUtilizationVo); + + if (null != mdcEquipmentStatisticalInfoMap && mdcEquipmentStatisticalInfoMap.containsKey(date)) { + //鑾峰彇褰撳墠鏃ユ湡涓嬬殑鍒╃敤鐜囨暟鎹� + MdcEquipmentStatisticalInfo mdcEquipmentStatisticalInfo = mdcEquipmentStatisticalInfoMap.get(date); + equipmentDayUtilizationVo.setUtilizationRate(CollectionUtils.isNotEmpty(equipmentIdList) ? mdcEquipmentStatisticalInfo.getProcessLong().divide(new BigDecimal("864"), 4, RoundingMode.HALF_UP).divide(new BigDecimal(equipmentIdList.size()), 4, RoundingMode.HALF_UP).setScale(2, RoundingMode.HALF_UP) : BigDecimal.ZERO); + if (BigDecimal.ZERO.compareTo(mdcEquipmentStatisticalInfo.getOpenLong()) == -1) { + equipmentDayUtilizationVo.setOpenRate(mdcEquipmentStatisticalInfo.getProcessLong().divide(mdcEquipmentStatisticalInfo.getOpenLong(), 4, RoundingMode.HALF_UP).multiply(new BigDecimal("100")).setScale(2, RoundingMode.HALF_UP)); + equipmentDayUtilizationVo.setStartRate(CollectionUtils.isNotEmpty(equipmentIdList) ? mdcEquipmentStatisticalInfo.getOpenLong().divide(new BigDecimal("864"), 4, RoundingMode.HALF_UP).divide(new BigDecimal(equipmentIdList.size()), 4, RoundingMode.HALF_UP).setScale(2, RoundingMode.HALF_UP) : BigDecimal.ZERO); } - } else { - dataList.add(equipmentDayUtilizationVo); } + dataList.add(equipmentDayUtilizationVo); } result.put("dateList", dateList); - result.put("dataList", dataList);*/ + result.put("dataList", dataList); return result; } @@ -505,4 +497,13 @@ public List<MdcFeedback> getFeedbackList(String key) { return mdcFeedbackService.getFeedbackList(key); } + + @Override + public List<MdcProduction> getAllWorkShop() { + List<MdcProduction> list = mdcProductionService.list(new LambdaQueryWrapper<MdcProduction>().eq(MdcProduction::getOrgType, "2")); + if (CollectionUtils.isEmpty(list)) { + return null; + } + return list; + } } -- Gitblit v1.9.3