From 1a2258c4eca2e7514b6096004fa1c3e0036b402b Mon Sep 17 00:00:00 2001 From: qushaowei <qushaowei@163.com> Date: 星期四, 28 三月 2024 14:04:24 +0800 Subject: [PATCH] Merge branch 'master' of http://117.34.109.166:18448/r/mdc_430 into develop --- lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentStatisticalShiftInfoServiceImpl.java | 96 +++++++++++++++++++++++++++++------------------- 1 files changed, 58 insertions(+), 38 deletions(-) diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentStatisticalShiftInfoServiceImpl.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentStatisticalShiftInfoServiceImpl.java index cc27400..0b5c5b2 100644 --- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentStatisticalShiftInfoServiceImpl.java +++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentStatisticalShiftInfoServiceImpl.java @@ -18,6 +18,7 @@ import javax.annotation.Resource; import java.math.BigDecimal; +import java.math.RoundingMode; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.*; @@ -74,6 +75,24 @@ } } + /** + * 鏌ヨ涓昏酱杩愯鏃堕棿 + * + * @param equipmentId + * @param validDate + * @return + */ + @Override + public BigDecimal findSpindleRunDuration(String equipmentId, String validDate) { + validDate = validDate.replaceAll("-", ""); + BigDecimal duration = this.baseMapper.findSpindleRunDuration(equipmentId, validDate); + if (duration != null && duration.compareTo(BigDecimal.ZERO) != 0) { + return duration.divide(new BigDecimal("60"), 0, RoundingMode.HALF_UP); + } else { + return new BigDecimal("0"); + } + } + @Transactional(readOnly = true) List<MdcEquipmentStatisticalShiftInfo> equipmentShiftStatisticalProcess(Equipment equipment, String dateTime) { Date initDate = null; @@ -113,7 +132,7 @@ } //鏌ヨ鐝埗鐝淇℃伅 Map<String, List<MdcDeviceCalendarVo>> listMap = this.mdcDeviceCalendarMap(equipment.getEquipmentid(), stringDates); - if (listMap.isEmpty()) { + if (listMap == null || listMap.isEmpty()) { listMap = new HashMap<>(); } List<MdcEquipmentStatisticalShiftInfo> resultList = new ArrayList<>(); @@ -143,6 +162,7 @@ equipmentStatisticalShiftInfo.setCloseLong(equipmentStatisticalShiftInfo.getCloseLong().add(shiftInfo.getCloseLong())); equipmentStatisticalShiftInfo.setOpenLong(equipmentStatisticalShiftInfo.getOpenLong().add(shiftInfo.getOpenLong())); equipmentStatisticalShiftInfo.setErrorLong(equipmentStatisticalShiftInfo.getErrorLong().add(shiftInfo.getErrorLong())); + equipmentStatisticalShiftInfo.setTotalLong(equipmentStatisticalShiftInfo.getTotalLong().add(shiftInfo.getTotalLong())); } resultList.add(equipmentStatisticalShiftInfo); } @@ -172,10 +192,10 @@ MdcEquipmentStatisticalShiftInfo shiftInfo = mdcRateEquipment(equipmentid, dates.getStartDate(), dates.getEndDate()); return shiftInfo; } else { - if (repairList.size() == 1 ) { + if (repairList.size() == 1) { long start = repairList.get(0).getStartTime().getTime(); long end = repairList.get(0).getEndTime().getTime(); - if ( start > dates.getStart() && end < dates.getEnd() ) { + if (start > dates.getStart() && end < dates.getEnd()) { MdcDateVo d1 = new MdcDateVo(); d1.setStartTime(dates.getStartDate()); d1.setEndTime(repairList.get(0).getStartTime()); @@ -184,7 +204,7 @@ d2.setStartTime(repairList.get(0).getEndTime()); d2.setEndTime(dates.getEndDate()); dateList.add(d2); - } else if (start == dates.getStart() && end < dates.getEnd()){ + } else if (start == dates.getStart() && end < dates.getEnd()) { MdcDateVo d2 = new MdcDateVo(); d2.setStartTime(repairList.get(0).getEndTime()); d2.setEndTime(dates.getEndDate()); @@ -207,11 +227,11 @@ } } else { long s = dates.getStartDate().getTime(); - for (int i = 0 ; i < repairList.size(); i ++) { + for (int i = 0; i < repairList.size(); i++) { long start = repairList.get(i).getStartTime().getTime(); long end = repairList.get(i).getEndTime().getTime(); - if (start > s ) { + if (start > s) { MdcDateVo d = new MdcDateVo(); d.setStartTime(dates.getStartDate()); d.setEndTime(repairList.get(i).getStartTime()); @@ -222,8 +242,8 @@ } else if (start == s) { dates.setStartDate(repairList.get(i).getEndTime()); } - if(i == repairList.size() -1 ) { - if(dates.getStartDate().getTime() >= end) { + if (i == repairList.size() - 1) { + if (dates.getStartDate().getTime() >= end) { MdcDateVo d = new MdcDateVo(); d.setStartTime(repairList.get(i).getEndTime()); d.setEndTime(dates.getEndDate()); @@ -258,7 +278,7 @@ if (runningSections == null || runningSections.isEmpty()) { runningSections = mdcEquipmentRunningSectionService.listRunningSectionFromLog(equipmentid, startDate.getTime(), endDate.getTime()); } - if(runningSections == null || runningSections.isEmpty()) { + if (runningSections == null || runningSections.isEmpty()) { runningSections = new ArrayList<>(); } List<MdcEquipmentRunningSection> sectionErrors = mdcEquipmentRunningSectionService.listEquipmentRunningSectionError(equipmentid, startDate.getTime(), endDate.getTime()); @@ -298,7 +318,7 @@ /*鏁呴殰鏃堕棿 errs => 鍏虫満鏁版嵁 + 鎶ヨ鏁版嵁 */ BigDecimal faultLong = new BigDecimal("0"); - faultLong = faultLongInfo(errs); + faultLong = faultLongInfo(errs); //鎶ヨ鏁版嵁 List<MdcEquipmentRunningSection> alarms = errs.stream().filter(section -> section.getStatus() == 22).collect(Collectors.toList()); @@ -380,75 +400,75 @@ //TODO return null; } - Long startMdc = mdcDate.getStartTime().getTime(); - Long endMdc = mdcDate.getEndTime().getTime(); + Long startMdc = mdcDate.getStartTime().getTime(); + Long endMdc = mdcDate.getEndTime().getTime(); if (sRun != null && !sRun.isEmpty()) { - for (int i = 0 ; i < sRun.size() ; i ++) { + for (int i = 0; i < sRun.size(); i++) { Long start = sRun.get(i).getStartTime().getTime(); - Long end = sRun.get(i).getEndTime().getTime(); - if (startMdc <= start ) { - sRun.get(i).setStartTime( sRun.get(i).getStartTime()); + Long end = sRun.get(i).getEndTime().getTime(); + if (startMdc <= start) { + sRun.get(i).setStartTime(sRun.get(i).getStartTime()); } else { sRun.get(i).setStartTime(mdcDate.getStartTime()); } if (endMdc >= end) { - sRun.get(i).setEndTime( sRun.get(i).getEndTime()); + sRun.get(i).setEndTime(sRun.get(i).getEndTime()); } else { sRun.get(i).setEndTime(mdcDate.getEndTime()); } - Long sen = DateUtils.differentSecond( sRun.get(i).getStartTime(), + Long sen = DateUtils.differentSecond(sRun.get(i).getStartTime(), sRun.get(i).getEndTime()); if (sen <= 0) { sRun.remove(i); i--; } else { sRun.get(i).setDuration(sen); - sRun.get(i).setStartLong( sRun.get(i).getStartTime().getTime()); - sRun.get(i).setEndLong( sRun.get(i).getEndTime().getTime()); + sRun.get(i).setStartLong(sRun.get(i).getStartTime().getTime()); + sRun.get(i).setEndLong(sRun.get(i).getEndTime().getTime()); } } } //閮ㄥ垎鏁版嵁鏄淮淇� 1銆佽繍琛岀姸鎬佷笅鎶ヨ鎯呭喌 List<MdcEquipmentRunningSection> faultRun = new ArrayList<>(); //鍒跺害鏃堕棿娈靛唴鎶ヨ鏁版嵁 - if (errors != null && !errors.isEmpty() ) { - for (int i = 0 ; i < errors.size() ; i ++) { + if (errors != null && !errors.isEmpty()) { + for (int i = 0; i < errors.size(); i++) { Long start = errors.get(i).getStartTime().getTime(); - Long end = errors.get(i).getEndTime().getTime(); - if (startMdc <= start ) { - errors.get(i).setStartTime( errors.get(i).getStartTime()); + Long end = errors.get(i).getEndTime().getTime(); + if (startMdc <= start) { + errors.get(i).setStartTime(errors.get(i).getStartTime()); } else { errors.get(i).setStartTime(mdcDate.getStartTime()); } if (endMdc >= end) { - errors.get(i).setEndTime( errors.get(i).getEndTime()); + errors.get(i).setEndTime(errors.get(i).getEndTime()); } else { errors.get(i).setEndTime(mdcDate.getEndTime()); } - Long sen = DateUtils.differentSecond( errors.get(i).getStartTime(), + Long sen = DateUtils.differentSecond(errors.get(i).getStartTime(), errors.get(i).getEndTime()); if (sen <= 0) { errors.remove(i); i--; } else { errors.get(i).setDuration(sen); - errors.get(i).setStartLong( errors.get(i).getStartTime().getTime()); - errors.get(i).setEndLong( errors.get(i).getEndTime().getTime()); + errors.get(i).setStartLong(errors.get(i).getStartTime().getTime()); + errors.get(i).setEndLong(errors.get(i).getEndTime().getTime()); } } //鎶婅繍琛屼腑瀛樺湪鐨勬姤璀﹀墧闄ゆ帀 for (MdcEquipmentRunningSection se : sRun) { long runStart = se.getStartTime().getTime(); - long runEnd = se.getEndTime().getTime(); + long runEnd = se.getEndTime().getTime(); if (se.getStatus() == 3) { - if (errors != null && !errors.isEmpty() ) { + if (errors != null && !errors.isEmpty()) { //澶勭悊鎶ヨ鏁版嵁 - for (int i = 0 ; i < errors.size(); i ++ ) { + for (int i = 0; i < errors.size(); i++) { long errStart = errors.get(i).getStartTime().getTime(); long errEnd = errors.get(i).getEndTime().getTime(); // 鎶ヨ寮�濮� 灏忎簬 杩愯寮�濮� 鎶ヨ缁撴潫 灏忎簬杩愯缁撴潫 鎶ヨ缁撴潫 澶т簬 杩愯寮�濮� - if ( errStart < runStart && errEnd <= runEnd && errEnd > runStart ) { + if (errStart < runStart && errEnd <= runEnd && errEnd > runStart) { errors.get(i).setEndTime(se.getStartTime()); Long sen = DateUtils.differentSecond(errors.get(i).getStartTime(), errors.get(i).getEndTime()); @@ -457,7 +477,7 @@ errors.get(i).setEndLong(errors.get(i).getEndTime().getTime()); } // 鎶ヨ寮�濮� 澶т簬 杩愯寮�濮� 锛� 鎶ヨ寮�濮� 灏忎簬 杩愯缁撴潫 锛屾姤璀︾粨鏉� 澶т簬 杩愯缁撴潫 - else if (errStart >= runStart && errStart < runEnd && errEnd > runEnd ) { + else if (errStart >= runStart && errStart < runEnd && errEnd > runEnd) { errors.get(i).setStartTime(se.getEndTime()); Long sen = DateUtils.differentSecond(errors.get(i).getStartTime(), errors.get(i).getEndTime()); @@ -467,13 +487,13 @@ } // 鎶ヨ寮�濮� 澶т簬 杩愯寮�濮� 锛� 鎶ヨ寮�濮� 灏忎簬 杩愯缁撴潫 锛屾姤璀︾粨鏉� 澶т簬 杩愯寮�濮嬶紝鎶ヨ缁撴潫 灏忎簬 杩愯缁撴潫 else if (errStart >= runStart && errStart < runEnd && - errEnd > runStart && errEnd <= runEnd ){ + errEnd > runStart && errEnd <= runEnd) { errors.remove(i); i--; } //濡傛灉瓒呭嚭鑼冨洿 else if (errStart <= runStart && errStart < runEnd && - errEnd > runStart && errEnd >= runEnd ) { + errEnd > runStart && errEnd >= runEnd) { MdcEquipmentRunningSection errOne = new MdcEquipmentRunningSection(); errOne.setEndTime(errors.get(i).getEndTime()); @@ -497,9 +517,9 @@ errOne.setEndLong(errOne.getEndTime().getTime()); if (sen <= 0) { errors.remove(i); - errors.add(i,errOne); + errors.add(i, errOne); } else { - errors.add(i+1,errOne); + errors.add(i + 1, errOne); i++; } } else { -- Gitblit v1.9.3