From c45790a3da8fa480091be24e0775e9f8dbab927c Mon Sep 17 00:00:00 2001 From: lius <Lius2225@163.com> Date: 星期二, 25 七月 2023 14:30:43 +0800 Subject: [PATCH] 班次利用率定时任务算法 --- lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentRunningSectionServiceImpl.java | 62 ++++++++++++++++++++++++++++++ 1 files changed, 61 insertions(+), 1 deletions(-) diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentRunningSectionServiceImpl.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentRunningSectionServiceImpl.java index 865fa7e..afefa7a 100644 --- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentRunningSectionServiceImpl.java +++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentRunningSectionServiceImpl.java @@ -519,8 +519,68 @@ return result; } + /** + * 璁$畻涓�娈垫椂闂村唴鐨勬暟鎹� + */ + @Override + public List<MdcEquipmentRunningSection> listEquipmentRunningSection(String equipmentid, long start, long end) { + return this.baseMapper.listEquipmentRunningSection(equipmentid, start, end); + } + + @Override + public List<MdcEquipmentRunningSection> listRunningSectionFromLog(String equipmentid, long start, long end) { + if (StringUtils.isBlank(equipmentid) || start <= 0 || end <= 0) { + return null; + } + Date startTime = DateUtils.toDate(DateUtils.longToDate(start), DateUtils.STR_DATE_TIME_SMALL); + Date endTime = DateUtils.toDate(DateUtils.longToDate(end), DateUtils.STR_DATE_TIME_SMALL); + EquipmentLog equipmentLog = equipmentLogService.getRow(equipmentid, startTime); + if (equipmentLog == null) { + return null; + } + List<EquipmentLog> logList = new ArrayList<>(); + EquipmentLog equipmentOne = new EquipmentLog(); + equipmentOne.setEquipmentId(equipmentid); + equipmentOne.setOporation(equipmentLog.getOporation()); + equipmentOne.setCollectTime(startTime); + logList.add(equipmentOne); + List<EquipmentLog> logListLast = equipmentLogService.findEquipmentLogByEndTime(equipmentid, startTime); + if (logListLast == null || logListLast.isEmpty()) { + EquipmentLog two = new EquipmentLog(); + two.setEquipmentId(equipmentid); + two.setOporation(equipmentLog.getOporation()); + two.setCollectTime(endTime); + logList.add(two); + } else { + for (EquipmentLog log : logListLast) { + if (log.getCollectTime().getTime() <= endTime.getTime()) { + logList.add(log); + } + } + } + if (logList.get(logList.size() - 1).getCollectTime().getTime() < endTime.getTime()) { + EquipmentLog two = new EquipmentLog(); + two.setEquipmentId(equipmentid); + two.setOporation(logList.get(logList.size() - 1).getOporation()); + two.setCollectTime(endTime); + logList.add(two); + } + //鐐规暟鎹浆涓烘鏁版嵁 + List<MdcEquipmentRunningSection> erts = parseLogToRunningTrace(logList); + if (erts.isEmpty()) { + return Collections.emptyList(); + } + //鏁村悎鍔犲伐鍜屽緟鏈烘椂闂村皬浜巒绉掔殑鏁版嵁 + erts = mergeLessMinTimeRecords(erts, null); + List<MdcEquipmentRunningSection> running = mergeRunningTrace(erts); + if (running != null || !running.isEmpty()) { + this.ergodicTrim(running); + } + return running; + } + private Map<String, List<MdcEquipmentRunningSectionDto>> logCharts(MdcEquipmentRunningSectionVo equipmentRunningSectionVo, String date) { - Map<String, List<MdcEquipmentRunningSectionDto>> map = new HashMap<>(); + Map<String, List<MdcEquipmentRunningSectionDto>> map = new HashMap<>(); List<MdcEquipmentRunningSectionDto> normal = new ArrayList<>(); List<MdcEquipmentRunningSectionDto> waring = new ArrayList<>(); //杩愯 -- Gitblit v1.9.3