From efc5dece153d8e51f9e18e136a35558c4ae8a894 Mon Sep 17 00:00:00 2001 From: Lius <Lius2225@163.com> Date: 星期四, 09 五月 2024 14:47:33 +0800 Subject: [PATCH] update --- lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/ProcessCountServiceImpl.java | 106 ++++++++++++++++++++++++++++++++--------------------- 1 files changed, 64 insertions(+), 42 deletions(-) diff --git a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/ProcessCountServiceImpl.java b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/ProcessCountServiceImpl.java index 16dd654..b948630 100644 --- a/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/ProcessCountServiceImpl.java +++ b/lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/ProcessCountServiceImpl.java @@ -1,10 +1,10 @@ package org.jeecg.modules.mdc.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.apache.commons.lang.StringUtils; import org.jeecg.modules.mdc.dto.MdcEquipmentDto; import org.jeecg.modules.mdc.dto.MdcProcessCountDto; -import org.jeecg.modules.mdc.entity.MdcDeviceCalendar; import org.jeecg.modules.mdc.entity.MdcEquipment; import org.jeecg.modules.mdc.entity.MdcEquipmentRunningSection; import org.jeecg.modules.mdc.entity.MdcProcessCount; @@ -21,6 +21,7 @@ import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import java.math.BigDecimal; +import java.time.LocalDate; import java.util.*; /** @@ -53,14 +54,12 @@ public void runningProcessCount() { // 鑾峰彇鎵�鏈夎澶� //List<MdcEquipment> mdcEquipmentList = mdcEquipmentService.list(new LambdaQueryWrapper<MdcEquipment>().eq(MdcEquipment::getEquipmentId, "2140198")); - List<MdcEquipment> mdcEquipmentList = mdcEquipmentService.list(); + List<MdcEquipment> mdcEquipmentList = mdcEquipmentService.list(new LambdaQueryWrapper<MdcEquipment>().eq(MdcEquipment::getDriveType, "FANUC")); List<MdcProcessCount> result = new ArrayList<>(); for (MdcEquipment mdcEquipment : mdcEquipmentList) { - if ("FANUC".equals(mdcEquipment.getDriveType())) { - List<MdcProcessCount> mdcProcessCountList = processCount(mdcEquipment); - if (mdcProcessCountList != null && !mdcProcessCountList.isEmpty()) { - result.addAll(mdcProcessCountList); - } + List<MdcProcessCount> mdcProcessCountList = processCount(mdcEquipment); + if (mdcProcessCountList != null && !mdcProcessCountList.isEmpty()) { + result.addAll(mdcProcessCountList); } } if (!result.isEmpty()) { @@ -123,7 +122,6 @@ return result == null ? BigDecimal.ZERO : result; } -// @Transactional(readOnly = true) List<MdcProcessCount> processCount(MdcEquipment mdcEquipment) { Date initDate = null; //鍙栨渶鍚庣殑缁熻鏁版嵁 @@ -132,11 +130,9 @@ initDate = DateUtils.toDate(lastData.getTheDate(), DateUtils.STRDATE); initDate = DateUtils.plusTime(initDate, 1); } else { - //鍒濇鍙栧�� 鍙栨渶鏃╂椂闂� - MdcDeviceCalendar mdcDeviceCalendar = mdcDeviceCalendarService.getFirstData(mdcEquipment.getEquipmentId()); - if (mdcDeviceCalendar != null) { - initDate = DateUtils.toDate(mdcDeviceCalendar.getEffectiveDate(), DateUtils.STRDATE); - } + //鍒濇鍙栧�� 鍙栧綋鍓嶆椂闂村線鍓嶆帹涓�涓湀鏃堕棿 +// MdcDeviceCalendar mdcDeviceCalendar = mdcDeviceCalendarService.getFirstData(mdcEquipment.getEquipmentId()); + initDate = DateUtils.toDate(LocalDate.now().plusMonths(-1).toString(), DateUtils.STR_DATE); } if (initDate == null) { return null; @@ -153,7 +149,7 @@ // 鑾峰彇璁惧鐝淇℃伅 Map<String, List<MdcDeviceCalendarVo>> listMap = this.mdcDeviceCalendarMap(mdcEquipment.getEquipmentId(), stringDates); if (listMap == null || listMap.isEmpty()) { - listMap = new HashMap<>(); + return null; } List<MdcProcessCount> resultList = new ArrayList<>(); for (String stringDate : stringDates) { @@ -162,11 +158,17 @@ // 澶勭悊鐝埗鐝鏃堕棿 MdcDateVo mdcDateVo = this.handleDeviceCalendar(mdcDeviceCalendarVos); // 鏌ユ壘璁惧鍗曡〃杩愯鏁版嵁 - List<Map<String, Object>> mdcEquipmentDtoList = equipmentWorkLineService.findRunningData(mdcEquipment.getSaveTableName(), mdcDateVo.getStartTime(), mdcDateVo.getEndTime()); - if (mdcEquipmentDtoList == null || mdcEquipmentDtoList.isEmpty()) { + List<String> productCountList = new ArrayList<>(); + try { + productCountList = equipmentWorkLineService.findRunningData(mdcEquipment.getSaveTableName(), mdcDateVo.getStartTime(), mdcDateVo.getEndTime()); + } catch (Exception e) { continue; } - Map<String, Object> firstMap = new HashMap<>(mdcEquipmentDtoList.get(0)); + + if (productCountList == null || productCountList.isEmpty()) { + continue; + } +/* Map<String, Object> firstMap = new HashMap<>(mdcEquipmentDtoList.get(0)); Map<String, Object> mdcEquipmentDtoMap = mdcEquipmentDtoList.get(0); for (int i = 1; i < mdcEquipmentDtoList.size(); i++) { String productCount1 = mdcEquipmentDtoList.get(i).get("ProductCount").toString(); @@ -180,6 +182,9 @@ //鏍规嵁productCount鍊兼煡璇㈠紑濮嬫椂闂� String productCount = mdcEquipmentDtoList.get(i - 1).get("ProductCount").toString(); MdcEquipmentDto mdcEquipmentDto = equipmentWorkLineService.findProductCountStartTime(mdcEquipment.getSaveTableName(), productCount); + if (mdcEquipmentDto == null) { + continue; + } start = mdcEquipmentDto.getCollectTime(); //绋嬪簭鍙� sequenceNumber = mdcEquipmentDtoList.get(i - 1).get("Sequencenumber").toString(); @@ -190,36 +195,53 @@ } mdcEquipmentDtoMap.put("ProductCount", mdcEquipmentDtoList.get(i).get("ProductCount").toString()); mdcEquipmentDtoMap.put("CollectTime", mdcEquipmentDtoList.get(i).get("CollectTime").toString()); - - List<MdcEquipmentRunningSection> equipmentRunningSectionList = mdcEquipmentRunningSectionService.selectRunningData(mdcEquipment.getEquipmentId(), start, end); - if (equipmentRunningSectionList != null && !equipmentRunningSectionList.isEmpty()) { - //鏃堕棿淇 - if (equipmentRunningSectionList.get(0).getStartTime().before(start)) { - equipmentRunningSectionList.get(0).setStartTime(start); + } + }*/ + for (String productCount : productCountList) { + MdcEquipmentDto mdcEquipmentDtoFirst = equipmentWorkLineService.findProductCountStartTime(mdcEquipment.getSaveTableName(), productCount, mdcDateVo.getStartTime(), mdcDateVo.getEndTime()); + if (mdcEquipmentDtoFirst == null) { + continue; + } + Date start = mdcEquipmentDtoFirst.getCollectTime(); + MdcEquipmentDto mdcEquipmentDtoLast = equipmentWorkLineService.findProductCountEndTime(mdcEquipment.getSaveTableName(), productCount, mdcDateVo.getStartTime(), mdcDateVo.getEndTime()); + if (mdcEquipmentDtoLast == null) { + continue; + } + Date end = mdcEquipmentDtoLast.getCollectTime(); + List<MdcEquipmentRunningSection> equipmentRunningSectionList = mdcEquipmentRunningSectionService.selectRunningData(mdcEquipment.getEquipmentId(), start, end); + if (equipmentRunningSectionList != null && !equipmentRunningSectionList.isEmpty()) { + //鏃堕棿淇 + if (equipmentRunningSectionList.get(0).getStartTime().before(start)) { + equipmentRunningSectionList.get(0).setStartTime(start); + } + if (equipmentRunningSectionList.size() > 1) { + if (equipmentRunningSectionList.get(equipmentRunningSectionList.size() - 1).getEndTime().after(end)) { + equipmentRunningSectionList.get(equipmentRunningSectionList.size() - 1).setEndTime(end); } - if (equipmentRunningSectionList.size() > 1) { - if (equipmentRunningSectionList.get(equipmentRunningSectionList.size() - 1).getEndTime().after(end)) { - equipmentRunningSectionList.get(equipmentRunningSectionList.size() - 1).setEndTime(end); - } + } else { + if (equipmentRunningSectionList.get(0).getEndTime().after(end)) { + equipmentRunningSectionList.get(0).setEndTime(end); + } + } + //璁$畻鍔犲伐鏃堕暱 + long duration = this.handleProcessDuration(equipmentRunningSectionList); + if (duration != 0 && duration < 100000) { + MdcProcessCount mdcProcessCount = new MdcProcessCount(); + mdcProcessCount.setEquipmentId(mdcEquipment.getEquipmentId()); + mdcProcessCount.setEquipmentName(mdcEquipment.getEquipmentName()); + if (StringUtils.isBlank(mdcEquipmentDtoFirst.getSequencenumber())) { + mdcProcessCount.setSequenceNumber(mdcEquipmentDtoLast.getSequencenumber()); } else { - if (equipmentRunningSectionList.get(0).getEndTime().after(end)) { - equipmentRunningSectionList.get(0).setEndTime(end); - } + mdcProcessCount.setSequenceNumber(mdcEquipmentDtoFirst.getSequencenumber()); } - //璁$畻鍔犲伐鏃堕暱 - long duration = this.handleProcessDuration(equipmentRunningSectionList); - if (duration != 0 && duration < 100000) { - MdcProcessCount mdcProcessCount = new MdcProcessCount(); - mdcProcessCount.setEquipmentId(mdcEquipment.getEquipmentId()); - mdcProcessCount.setEquipmentName(mdcEquipment.getEquipmentName()); - mdcProcessCount.setSequenceNumber(sequenceNumber); - mdcProcessCount.setDuration(duration); - mdcProcessCount.setTheDate(stringDate); - resultList.add(mdcProcessCount); - } + mdcProcessCount.setDuration(duration); + mdcProcessCount.setTheDate(stringDate); + resultList.add(mdcProcessCount); } } } + + } } return resultList; @@ -272,7 +294,7 @@ private Map<String, List<MdcDeviceCalendarVo>> mdcDeviceCalendarMap(String equipmentId, List<String> stringDates) { List<MdcDeviceCalendarVo> mdcDeviceCalendarVos = mdcDeviceCalendarService.listByEquipmentAndDate(equipmentId, stringDates); - if (mdcDeviceCalendarVos.isEmpty()) { + if (mdcDeviceCalendarVos == null || mdcDeviceCalendarVos.isEmpty()) { return null; } Map<String, List<MdcDeviceCalendarVo>> map = new HashMap<>(); -- Gitblit v1.9.3