From 26f660405066fdb85084ae86a364156c97c55d87 Mon Sep 17 00:00:00 2001
From: “linengliang” <vanSuperEnergy@163.com>
Date: 星期五, 15 九月 2023 11:50:05 +0800
Subject: [PATCH] 预测性维护方案
---
lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEfficiencyReportServiceImpl.java | 492 ++++++++++++++++++++++++++++++++++++++++++++++++++----
1 files changed, 455 insertions(+), 37 deletions(-)
diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEfficiencyReportServiceImpl.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEfficiencyReportServiceImpl.java
index 13d6e58..f7c0b2d 100644
--- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEfficiencyReportServiceImpl.java
+++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEfficiencyReportServiceImpl.java
@@ -1,12 +1,10 @@
package org.jeecg.modules.mdc.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import net.sf.saxon.expr.Component;
import org.apache.commons.lang3.StringUtils;
-import org.jeecg.modules.mdc.dto.MdcEfficiencyDto;
-import org.jeecg.modules.mdc.dto.MdcEfficiencyListDto;
-import org.jeecg.modules.mdc.dto.MdcEfficiencyResultDto;
+import org.jeecg.common.constant.CommonConstant;
+import org.jeecg.common.exception.JeecgBootException;
+import org.jeecg.modules.mdc.dto.*;
import org.jeecg.modules.mdc.entity.MdcEquipment;
import org.jeecg.modules.mdc.entity.MdcUtilizationRate;
import org.jeecg.modules.mdc.mapper.MdcEfficiencyReportMapper;
@@ -14,14 +12,16 @@
import org.jeecg.modules.mdc.service.IMdcUtilizationRateService;
import org.jeecg.modules.mdc.service.MdcEfficiencyReportService;
import org.jeecg.modules.mdc.util.DateUtils;
-import org.jeecg.modules.mdc.vo.MdcEfficiencyReportQueryVo;
-import org.jeecg.modules.mdc.vo.MdcEfficiencyVo;
+import org.jeecg.modules.mdc.vo.*;
+import org.jeecg.modules.system.entity.MdcProduction;
+import org.jeecg.modules.system.entity.SysDepart;
+import org.jeecg.modules.system.service.IMdcProductionService;
+import org.jeecg.modules.system.service.ISysDepartService;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.util.*;
-import java.util.stream.Collectors;
/**
* @author: LiuS
@@ -38,6 +38,12 @@
@Resource
private IMdcUtilizationRateService mdcUtilizationRateService;
+
+ @Resource
+ private ISysDepartService sysDepartService;
+
+ @Resource
+ private IMdcProductionService mdcProductionService;
/**
* 鍒╃敤鐜囨姤琛�
@@ -76,49 +82,462 @@
vo.setEquipmentIdList(equipmentIds);
}
- // 鏌ヨ鍒╃敤鐜囨暟鎹�
- List<MdcEfficiencyDto> efficiencyList = mdcEfficiencyReportMapper.efficiencyList(vo);
- // 鍒╃敤鐜囩瓑绾�
- List<MdcUtilizationRate> mdcUtilizationRateList = mdcUtilizationRateService.listByType("lyl");
-
- //灏佽缁撴灉
- List<MdcEquipment> equipmentList = mdcEquipmentService.list(new LambdaQueryWrapper<MdcEquipment>().in(MdcEquipment::getEquipmentId, vo.getEquipmentIdList()));
-
List<String> dates = DateUtils.getDatesStringList2(DateUtils.getShortDate2(vo.getStartTime()), DateUtils.getShortDate2(vo.getEndTime()));
-
- for (MdcEquipment mdcEquipment : equipmentList) {
- MdcEfficiencyListDto mdcEfficiencyListDto = new MdcEfficiencyListDto();
- mdcEfficiencyListDto.setEquipmentId(mdcEquipment.getEquipmentId());
- mdcEfficiencyListDto.setEquipmentName(mdcEquipment.getEquipmentName());
- mdcEfficiencyListDto.setEquipmentType(mdcEquipment.getEquipmentType());
- List<MdcEfficiencyResultDto> list = new ArrayList<>();
- for (String date : dates) {
- list.add(this.efficiencyRate(efficiencyList, date, mdcEquipment, mdcUtilizationRateList));
- }
- mdcEfficiencyListDto.setDataList(list);
- listDtos.add(mdcEfficiencyListDto);
- }
-
- result.setMdcEfficiencyList(listDtos);
result.setDates(dates);
+
+ if (vo.getEquipmentIdList() == null || vo.getEquipmentIdList().isEmpty()) {
+ result.setMdcEfficiencyList(listDtos);
+ } else {
+ // 鏌ヨ鍒╃敤鐜囨暟鎹�
+ List<MdcEfficiencyDto> efficiencyList = mdcEfficiencyReportMapper.efficiencyList(vo);
+ // 鍒╃敤鐜囩瓑绾�
+ List<MdcUtilizationRate> mdcUtilizationRateList = mdcUtilizationRateService.listByType("lyl");
+
+ // 灏佽缁撴灉
+ if ("2".equals(vo.getTypeTree())) {
+ // 閮ㄩ棬灞傜骇
+ List<MdcEquDepDto> equipmentList = mdcEquipmentService.findEquDepList(vo.getEquipmentIdList());
+ // 鏌ヨ鎵�鏈夐儴闂ㄤ俊鎭�
+ List<SysDepart> departList = sysDepartService.list(new LambdaQueryWrapper<SysDepart>().ne(SysDepart::getDelFlag, CommonConstant.DEL_FLAG_1.toString()));
+
+ for (MdcEquDepDto mdcEquDepDto : equipmentList) {
+ MdcEfficiencyListDto mdcEfficiencyListDto = new MdcEfficiencyListDto();
+ mdcEfficiencyListDto.setEquipmentId(mdcEquDepDto.getEquipmentId());
+ mdcEfficiencyListDto.setEquipmentName(mdcEquDepDto.getEquipmentName());
+ mdcEfficiencyListDto.setEquipmentType(mdcEquDepDto.getEquipmentType());
+ switch (mdcEquDepDto.getOrgType()) {
+ case "1":
+ mdcEfficiencyListDto.setLevel1(mdcEquDepDto.getDepartName());
+ break;
+ case "2":
+ mdcEfficiencyListDto.setLevel2(mdcEquDepDto.getDepartName());
+ break;
+ case "3":
+ mdcEfficiencyListDto.setLevel3(mdcEquDepDto.getDepartName());
+ break;
+ default:
+ }
+
+ SysDepart sysDepart = departList.stream().filter(depart -> depart.getId().equals(mdcEquDepDto.getParentId())).findAny().orElse(null);
+ if (sysDepart != null) {
+ switch (sysDepart.getOrgType()) {
+ case "1":
+ mdcEfficiencyListDto.setLevel1(sysDepart.getDepartName());
+ break;
+ case "2":
+ mdcEfficiencyListDto.setLevel2(sysDepart.getDepartName());
+ break;
+ case "3":
+ mdcEfficiencyListDto.setLevel3(sysDepart.getDepartName());
+ break;
+ default:
+ }
+ if (StringUtils.isNotEmpty(sysDepart.getParentId())) {
+ departList.stream().filter(depart -> depart.getId().equals(sysDepart.getParentId())).findAny().ifPresent(depart1 -> {
+ switch (depart1.getOrgType()) {
+ case "1":
+ mdcEfficiencyListDto.setLevel1(depart1.getDepartName());
+ break;
+ case "2":
+ mdcEfficiencyListDto.setLevel2(depart1.getDepartName());
+ break;
+ case "3":
+ mdcEfficiencyListDto.setLevel3(depart1.getDepartName());
+ break;
+ default:
+ }
+ });
+ }
+ }
+ List<MdcEfficiencyResultDto> list = new ArrayList<>();
+ for (String date : dates) {
+ list.add(this.efficiencyRate(efficiencyList, date, mdcEquDepDto.getEquipmentId(), mdcUtilizationRateList));
+ }
+ mdcEfficiencyListDto.setDataList(list);
+ listDtos.add(mdcEfficiencyListDto);
+ }
+ } else {
+ // 浜х嚎灞傜骇
+ List<MdcEquProDto> equipmentList = mdcEquipmentService.findEquProList(vo.getEquipmentIdList());
+ // 鏌ヨ鎵�鏈変骇绾夸俊鎭�
+ List<MdcProduction> productionList = mdcProductionService.list(new LambdaQueryWrapper<MdcProduction>().ne(MdcProduction::getDelFlag, CommonConstant.DEL_FLAG_1.toString()));
+
+ for (MdcEquProDto mdcEquProDto : equipmentList) {
+ MdcEfficiencyListDto mdcEfficiencyListDto = new MdcEfficiencyListDto();
+ mdcEfficiencyListDto.setEquipmentId(mdcEquProDto.getEquipmentId());
+ mdcEfficiencyListDto.setEquipmentName(mdcEquProDto.getEquipmentName());
+ mdcEfficiencyListDto.setEquipmentType(mdcEquProDto.getEquipmentType());
+ switch (mdcEquProDto.getOrgType()) {
+ case "1":
+ mdcEfficiencyListDto.setLevel1(mdcEquProDto.getProductionName());
+ break;
+ case "2":
+ mdcEfficiencyListDto.setLevel2(mdcEquProDto.getProductionName());
+ break;
+ case "3":
+ mdcEfficiencyListDto.setLevel3(mdcEquProDto.getProductionName());
+ break;
+ default:
+ }
+ MdcProduction mdcProduction = productionList.stream().filter(production -> production.getId().equals(mdcEquProDto.getParentId())).findAny().orElse(null);
+ if (mdcProduction != null) {
+ switch (mdcProduction.getOrgType()) {
+ case "1":
+ mdcEfficiencyListDto.setLevel1(mdcProduction.getProductionName());
+ break;
+ case "2":
+ mdcEfficiencyListDto.setLevel2(mdcProduction.getProductionName());
+ break;
+ case "3":
+ mdcEfficiencyListDto.setLevel3(mdcProduction.getProductionName());
+ break;
+ default:
+ }
+ if (StringUtils.isNotEmpty(mdcProduction.getParentId())) {
+ productionList.stream().filter(production -> production.getId().equals(mdcProduction.getParentId())).findAny().ifPresent(production1 -> {
+ switch (production1.getOrgType()) {
+ case "1":
+ mdcEfficiencyListDto.setLevel1(production1.getProductionName());
+ break;
+ case "2":
+ mdcEfficiencyListDto.setLevel2(production1.getProductionName());
+ break;
+ case "3":
+ mdcEfficiencyListDto.setLevel3(production1.getProductionName());
+ break;
+ default:
+ }
+ });
+ }
+ }
+ List<MdcEfficiencyResultDto> list = new ArrayList<>();
+ for (String date : dates) {
+ list.add(this.efficiencyRate(efficiencyList, date, mdcEquProDto.getEquipmentId(), mdcUtilizationRateList));
+ }
+ mdcEfficiencyListDto.setDataList(list);
+ listDtos.add(mdcEfficiencyListDto);
+ }
+ }
+
+ result.setMdcEfficiencyList(listDtos);
+ }
return result;
}
+ /**
+ * 寮�鏈虹巼鎶ヨ〃
+ *
+ * @param userId
+ * @param vo
+ * @return
+ */
@Override
- public MdcEfficiencyVo shiftEfficiencyList(String userId, MdcEfficiencyReportQueryVo vo) {
- return null;
+ public MdcEfficiencyVo efficiencyPOList(String userId, MdcEfficiencyReportQueryVo vo) {
+ MdcEfficiencyVo result = new MdcEfficiencyVo();
+ List<MdcEfficiencyListDto> listDtos = new ArrayList<>();
+ List<String> equipmentIds = new ArrayList<>();
+ if (StringUtils.isNotEmpty(vo.getParentId()) && StringUtils.isEmpty(vo.getEquipmentId())) {
+ if ("2".equals(vo.getTypeTree())) {
+ // 閮ㄩ棬灞傜骇
+ equipmentIds = mdcEquipmentService.getEquipmentIdsByDepart(userId, vo.getParentId());
+ } else {
+ // 浜х嚎灞傜骇
+ equipmentIds = mdcEquipmentService.getEquipmentIdsProduction(userId, vo.getParentId());
+ }
+ } else if (StringUtils.isNotEmpty(vo.getEquipmentId())) {
+ // 鍗曞彴璁惧淇℃伅
+ vo.setEquipmentIdList(Collections.singletonList(vo.getEquipmentId()));
+ } else {
+ // 鏌ヨ鐢ㄦ埛鎷ユ湁鐨勬墍鏈夎澶囦俊鎭�
+ if ("2".equals(vo.getTypeTree())) {
+ // 閮ㄩ棬灞傜骇
+ equipmentIds = mdcEquipmentService.getEquipmentIdsByDepart(userId, null);
+ } else {
+ // 浜х嚎灞傜骇
+ equipmentIds = mdcEquipmentService.getEquipmentIdsProduction(userId, null);
+ }
+ }
+ if (vo.getEquipmentIdList() == null || vo.getEquipmentIdList().isEmpty()) {
+ vo.setEquipmentIdList(equipmentIds);
+ }
+
+ List<String> dates = DateUtils.getDatesStringList2(DateUtils.getShortDate2(vo.getStartTime()), DateUtils.getShortDate2(vo.getEndTime()));
+ result.setDates(dates);
+
+ if (vo.getEquipmentIdList() == null || vo.getEquipmentIdList().isEmpty()) {
+ result.setMdcEfficiencyList(listDtos);
+ } else {
+ // 鏌ヨ鍒╃敤鐜囨暟鎹�
+ List<MdcEfficiencyDto> efficiencyList = mdcEfficiencyReportMapper.efficiencyPOList(vo);
+ // 鍒╃敤鐜囩瓑绾�
+ List<MdcUtilizationRate> mdcUtilizationRateList = mdcUtilizationRateService.listByType("kdl");
+
+ // 灏佽缁撴灉
+ if ("2".equals(vo.getTypeTree())) {
+ // 閮ㄩ棬灞傜骇
+ List<MdcEquDepDto> equipmentList = mdcEquipmentService.findEquDepList(vo.getEquipmentIdList());
+ // 鏌ヨ鎵�鏈夐儴闂ㄤ俊鎭�
+ List<SysDepart> departList = sysDepartService.list(new LambdaQueryWrapper<SysDepart>().ne(SysDepart::getDelFlag, CommonConstant.DEL_FLAG_1.toString()));
+
+ for (MdcEquDepDto mdcEquDepDto : equipmentList) {
+ MdcEfficiencyListDto mdcEfficiencyListDto = new MdcEfficiencyListDto();
+ mdcEfficiencyListDto.setEquipmentId(mdcEquDepDto.getEquipmentId());
+ mdcEfficiencyListDto.setEquipmentName(mdcEquDepDto.getEquipmentName());
+ mdcEfficiencyListDto.setEquipmentType(mdcEquDepDto.getEquipmentType());
+ switch (mdcEquDepDto.getOrgType()) {
+ case "1":
+ mdcEfficiencyListDto.setLevel1(mdcEquDepDto.getDepartName());
+ break;
+ case "2":
+ mdcEfficiencyListDto.setLevel2(mdcEquDepDto.getDepartName());
+ break;
+ case "3":
+ mdcEfficiencyListDto.setLevel3(mdcEquDepDto.getDepartName());
+ break;
+ default:
+ }
+
+ SysDepart sysDepart = departList.stream().filter(depart -> depart.getId().equals(mdcEquDepDto.getParentId())).findAny().orElse(null);
+ if (sysDepart != null) {
+ switch (sysDepart.getOrgType()) {
+ case "1":
+ mdcEfficiencyListDto.setLevel1(sysDepart.getDepartName());
+ break;
+ case "2":
+ mdcEfficiencyListDto.setLevel2(sysDepart.getDepartName());
+ break;
+ case "3":
+ mdcEfficiencyListDto.setLevel3(sysDepart.getDepartName());
+ break;
+ default:
+ }
+ if (StringUtils.isNotEmpty(sysDepart.getParentId())) {
+ departList.stream().filter(depart -> depart.getId().equals(sysDepart.getParentId())).findAny().ifPresent(depart1 -> {
+ switch (depart1.getOrgType()) {
+ case "1":
+ mdcEfficiencyListDto.setLevel1(depart1.getDepartName());
+ break;
+ case "2":
+ mdcEfficiencyListDto.setLevel2(depart1.getDepartName());
+ break;
+ case "3":
+ mdcEfficiencyListDto.setLevel3(depart1.getDepartName());
+ break;
+ default:
+ }
+ });
+ }
+ }
+ List<MdcEfficiencyResultDto> list = new ArrayList<>();
+ for (String date : dates) {
+ list.add(this.efficiencyRate(efficiencyList, date, mdcEquDepDto.getEquipmentId(), mdcUtilizationRateList));
+ }
+ mdcEfficiencyListDto.setDataList(list);
+ listDtos.add(mdcEfficiencyListDto);
+ }
+ } else {
+ // 浜х嚎灞傜骇
+ List<MdcEquProDto> equipmentList = mdcEquipmentService.findEquProList(vo.getEquipmentIdList());
+ // 鏌ヨ鎵�鏈変骇绾夸俊鎭�
+ List<MdcProduction> productionList = mdcProductionService.list(new LambdaQueryWrapper<MdcProduction>().ne(MdcProduction::getDelFlag, CommonConstant.DEL_FLAG_1.toString()));
+
+ for (MdcEquProDto mdcEquProDto : equipmentList) {
+ MdcEfficiencyListDto mdcEfficiencyListDto = new MdcEfficiencyListDto();
+ mdcEfficiencyListDto.setEquipmentId(mdcEquProDto.getEquipmentId());
+ mdcEfficiencyListDto.setEquipmentName(mdcEquProDto.getEquipmentName());
+ mdcEfficiencyListDto.setEquipmentType(mdcEquProDto.getEquipmentType());
+ switch (mdcEquProDto.getOrgType()) {
+ case "1":
+ mdcEfficiencyListDto.setLevel1(mdcEquProDto.getProductionName());
+ break;
+ case "2":
+ mdcEfficiencyListDto.setLevel2(mdcEquProDto.getProductionName());
+ break;
+ case "3":
+ mdcEfficiencyListDto.setLevel3(mdcEquProDto.getProductionName());
+ break;
+ default:
+ }
+ MdcProduction mdcProduction = productionList.stream().filter(production -> production.getId().equals(mdcEquProDto.getParentId())).findAny().orElse(null);
+ if (mdcProduction != null) {
+ switch (mdcProduction.getOrgType()) {
+ case "1":
+ mdcEfficiencyListDto.setLevel1(mdcProduction.getProductionName());
+ break;
+ case "2":
+ mdcEfficiencyListDto.setLevel2(mdcProduction.getProductionName());
+ break;
+ case "3":
+ mdcEfficiencyListDto.setLevel3(mdcProduction.getProductionName());
+ break;
+ default:
+ }
+ if (StringUtils.isNotEmpty(mdcProduction.getParentId())) {
+ productionList.stream().filter(production -> production.getId().equals(mdcProduction.getParentId())).findAny().ifPresent(production1 -> {
+ switch (production1.getOrgType()) {
+ case "1":
+ mdcEfficiencyListDto.setLevel1(production1.getProductionName());
+ break;
+ case "2":
+ mdcEfficiencyListDto.setLevel2(production1.getProductionName());
+ break;
+ case "3":
+ mdcEfficiencyListDto.setLevel3(production1.getProductionName());
+ break;
+ default:
+ }
+ });
+ }
+ }
+ List<MdcEfficiencyResultDto> list = new ArrayList<>();
+ for (String date : dates) {
+ list.add(this.efficiencyRate(efficiencyList, date, mdcEquProDto.getEquipmentId(), mdcUtilizationRateList));
+ }
+ mdcEfficiencyListDto.setDataList(list);
+ listDtos.add(mdcEfficiencyListDto);
+ }
+ }
+
+ result.setMdcEfficiencyList(listDtos);
+ }
+
+ return result;
}
- private MdcEfficiencyResultDto efficiencyRate(List<MdcEfficiencyDto> efficiencyList, String date, MdcEquipment mdcEquipment, List<MdcUtilizationRate> mdcUtilizationRateList) {
+ /**
+ * 鐝鍒╃敤鐜囨姤琛�
+ *
+ * @param userId
+ * @param vo
+ * @return
+ */
+ @Override
+ public MdcEfficiencyShiftVo efficiencyShiftList(String userId, MdcEfficiencyReportShiftQueryVo vo) {
+ MdcEfficiencyShiftVo result = new MdcEfficiencyShiftVo();
+ List<MdcEfficiencyShiftListDto> listDtos = new ArrayList<>();
+ List<String> equipmentIds = new ArrayList<>();
+ if (StringUtils.isNotEmpty(vo.getParentId()) && StringUtils.isEmpty(vo.getEquipmentId())) {
+ if ("2".equals(vo.getTypeTree())) {
+ // 閮ㄩ棬灞傜骇
+ equipmentIds = mdcEquipmentService.getEquipmentIdsByDepart(userId, vo.getParentId());
+ } else {
+ // 浜х嚎灞傜骇
+ equipmentIds = mdcEquipmentService.getEquipmentIdsProduction(userId, vo.getParentId());
+ }
+ } else if (StringUtils.isNotEmpty(vo.getEquipmentId())) {
+ // 鍗曞彴璁惧淇℃伅
+ vo.setEquipmentIdList(Collections.singletonList(vo.getEquipmentId()));
+ } else {
+ // 鏌ヨ鐢ㄦ埛鎷ユ湁鐨勬墍鏈夎澶囦俊鎭�
+ if ("2".equals(vo.getTypeTree())) {
+ // 閮ㄩ棬灞傜骇
+ equipmentIds = mdcEquipmentService.getEquipmentIdsByDepart(userId, null);
+ } else {
+ // 浜х嚎灞傜骇
+ equipmentIds = mdcEquipmentService.getEquipmentIdsProduction(userId, null);
+ }
+ }
+ if (vo.getEquipmentIdList() == null || vo.getEquipmentIdList().isEmpty()) {
+ vo.setEquipmentIdList(equipmentIds);
+ }
+
+ List<String> dates = DateUtils.getDatesStringList2(DateUtils.getShortDate2(vo.getStartTime()), DateUtils.getShortDate2(vo.getEndTime()));
+ result.setDates(dates);
+
+ if (vo.getEquipmentIdList() == null || vo.getEquipmentIdList().isEmpty()) {
+ result.setMdcEfficiencyList(listDtos);
+ } else {
+ // 鐝鍒╃敤鐜囩瓑绾�
+ List<MdcUtilizationRate> mdcUtilizationRateList = mdcUtilizationRateService.listByType("kdl");
+
+ }
+
+ return result;
+ }
+
+ /**
+ * 缁熻鍒嗘瀽鍒楄〃
+ *
+ * @param userId
+ * @param vo
+ * @return
+ */
+ @Override
+ public StatisticalAnalysisVo dayStatisticalRate(String userId, MdcEfficiencyReportQueryVo vo) {
+ StatisticalAnalysisVo result = new StatisticalAnalysisVo();
+ List<String> equipmentIds = new ArrayList<>();
+ if (StringUtils.isNotEmpty(vo.getParentId()) && StringUtils.isEmpty(vo.getEquipmentId())) {
+ if ("2".equals(vo.getTypeTree())) {
+ // 閮ㄩ棬灞傜骇
+ equipmentIds = mdcEquipmentService.getEquipmentIdsByDepart(userId, vo.getParentId());
+ } else {
+ // 浜х嚎灞傜骇
+ equipmentIds = mdcEquipmentService.getEquipmentIdsProduction(userId, vo.getParentId());
+ }
+ } else if (StringUtils.isNotEmpty(vo.getEquipmentId())) {
+ // 鍗曞彴璁惧淇℃伅
+ vo.setEquipmentIdList(Collections.singletonList(vo.getEquipmentId()));
+ } else {
+ // 鏌ヨ鐢ㄦ埛鎷ユ湁鐨勬墍鏈夎澶囦俊鎭�
+ if ("2".equals(vo.getTypeTree())) {
+ // 閮ㄩ棬灞傜骇
+ equipmentIds = mdcEquipmentService.getEquipmentIdsByDepart(userId, null);
+ } else {
+ // 浜х嚎灞傜骇
+ equipmentIds = mdcEquipmentService.getEquipmentIdsProduction(userId, null);
+ }
+ }
+ if (vo.getEquipmentIdList() == null || vo.getEquipmentIdList().isEmpty()) {
+ vo.setEquipmentIdList(equipmentIds);
+ }
+ if (vo.getEquipmentIdList() == null || vo.getEquipmentIdList().isEmpty()) {
+ return result;
+ }
+
+ if (!StringUtils.isNotEmpty(vo.getDateTime())) {
+ throw new JeecgBootException("璇疯緭鍏ユ煡璇㈡潯浠舵椂闂�");
+ }
+ vo.setStartTime(vo.getDateTime());
+ vo.setEndTime(vo.getDateTime());
+ List<MdcEfficiencyDto> efficiencyList = mdcEfficiencyReportMapper.efficiencyList(vo);
+ if (efficiencyList == null || efficiencyList.isEmpty()) {
+ return result;
+ }
+ result = this.efficiencyStatisticalRate(efficiencyList);
+ if (result.getOpenRate().compareTo(new BigDecimal("0")) > 0) {
+ result.setOpenRate(result.getOpenRate().multiply(new BigDecimal("100")).divide(new BigDecimal(equipmentIds.size()), 2, BigDecimal.ROUND_HALF_UP));
+ }
+ if (result.getUtilizationRate().compareTo(new BigDecimal("0")) > 0) {
+ result.setUtilizationRate(result.getUtilizationRate().multiply(new BigDecimal(100)).divide(new BigDecimal(equipmentIds.size()), 2, BigDecimal.ROUND_HALF_UP));
+ }
+ if (result.getOpenLong().compareTo(new BigDecimal(0)) > 0 && result.getProcessLong().compareTo(new BigDecimal(0)) > 0) {
+ result.setUsedOpenRate(result.getProcessLong().divide(result.getOpenLong(), 4, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(100)));
+ }
+ return result;
+ }
+
+ private StatisticalAnalysisVo efficiencyStatisticalRate(List<MdcEfficiencyDto> efficiencyList) {
+ StatisticalAnalysisVo vo = new StatisticalAnalysisVo();
+ for (MdcEfficiencyDto mdcEfficiencyDto : efficiencyList) {
+ vo.setUtilizationRate(vo.getUtilizationRate().add(mdcEfficiencyDto.getUtilizationRate()));
+ vo.setOpenRate(vo.getOpenRate().add(mdcEfficiencyDto.getOpenRate()));
+ vo.setOpenLong(vo.getOpenLong().add(mdcEfficiencyDto.getOpenLong()));
+ vo.setProcessLong(vo.getProcessLong().add(mdcEfficiencyDto.getProcessLong()));
+ vo.setWaitLong(vo.getWaitLong().add(mdcEfficiencyDto.getWaitLong()));
+ vo.setCloseLong(vo.getCloseLong().add(mdcEfficiencyDto.getCloseLong()));
+ }
+ return vo;
+ }
+
+ private MdcEfficiencyResultDto efficiencyRate(List<MdcEfficiencyDto> efficiencyList, String date, String equipmentId, List<MdcUtilizationRate> mdcUtilizationRateList) {
MdcEfficiencyResultDto mdcEfficiencyResultDto = new MdcEfficiencyResultDto();
if (efficiencyList != null && !efficiencyList.isEmpty()) {
for (MdcEfficiencyDto efficiencyDto : efficiencyList) {
- if (date.equals(efficiencyDto.getTheDate()) && efficiencyDto.getEquipmentId().equals(mdcEquipment.getEquipmentId())) {
+ if (date.equals(efficiencyDto.getTheDate()) && efficiencyDto.getEquipmentId().equals(equipmentId)) {
mdcEfficiencyResultDto.setTheDate(efficiencyDto.getTheDate());
mdcEfficiencyResultDto.setProcessLong(efficiencyDto.getProcessLong());
mdcEfficiencyResultDto.setUtilizationRate(efficiencyDto.getUtilizationRate());
- mdcEfficiencyResultDto.setStartRate(efficiencyDto.getStartRate());
mdcEfficiencyResultDto.setStartRate(efficiencyDto.getStartRate());
mdcEfficiencyResultDto.setOpenRate(efficiencyDto.getOpenRate());
mdcEfficiencyResultDto.setOpenLong(efficiencyDto.getOpenLong());
@@ -136,7 +555,6 @@
mdcEfficiencyResultDto.setTheDate(date);
mdcEfficiencyResultDto.setProcessLong(new BigDecimal("0"));
mdcEfficiencyResultDto.setUtilizationRate(new BigDecimal("0"));
- mdcEfficiencyResultDto.setStartRate(new BigDecimal("0"));
mdcEfficiencyResultDto.setStartRate(new BigDecimal("0"));
mdcEfficiencyResultDto.setOpenRate(new BigDecimal("0"));
mdcEfficiencyResultDto.setOpenLong(new BigDecimal("0"));
--
Gitblit v1.9.3