From ee8c085bb0b2afe82bf74361d49949dfe91e6ef4 Mon Sep 17 00:00:00 2001 From: "castle.zang" Date: Mon, 23 Dec 2024 17:15:20 +0800 Subject: [PATCH] =?UTF-8?q?fix=20bug=2044022=20=E8=8A=9C=E6=B9=96=E6=AD=A3?= =?UTF-8?q?=E5=BC=8F=EF=BC=9A=E4=BA=A7=E7=BA=BF=E7=9C=8B=E6=9D=BF=EF=BC=8C?= =?UTF-8?q?=E9=9C=80=E8=A6=81=E5=85=B3=E8=81=94=E6=98=BE=E7=A4=BA=E5=BC=82?= =?UTF-8?q?=E5=B8=B8=E5=81=9C=E7=BA=BF=E6=97=B6=E9=97=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../board/MesWorkCenterBoardController.java | 2 - .../serviceimpl/board/IMesYfBoardServiceImpl.java | 48 ++++++++++++++++++++-- 2 files changed, 45 insertions(+), 5 deletions(-) diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/board/MesWorkCenterBoardController.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/board/MesWorkCenterBoardController.java index a84dbd9..968d63c 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/board/MesWorkCenterBoardController.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/controller/board/MesWorkCenterBoardController.java @@ -147,8 +147,6 @@ public class MesWorkCenterBoardController { ValidatorBean.beginValid(conditionModel) .notNull("workCenterCodeList", conditionModel.getWorkCenterCodeList()) .notNull("timeRangeIdentification", conditionModel.getTimeRangeIdentification()); - String organizeCode = AuthUtil.getOrganize().getOrganizeCode(); - conditionModel.setOrganizeCode(organizeCode); return ResultBean.success("查询异常停线时间").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()). setResultObject(mesYfBoardService.queryAbnormalDowntime(conditionModel)); } catch (ImppBusiException e) { diff --git a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/board/IMesYfBoardServiceImpl.java b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/board/IMesYfBoardServiceImpl.java index 4744d53..33b0abc 100644 --- a/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/board/IMesYfBoardServiceImpl.java +++ b/modules/i3plus-ext-mes-apiservice/src/main/java/cn/estsh/i3plus/ext/mes/apiservice/serviceimpl/board/IMesYfBoardServiceImpl.java @@ -18,6 +18,7 @@ import cn.estsh.i3plus.pojo.mes.repository.*; import cn.estsh.i3plus.pojo.mes.repository.wh.MesCimGmGepicsRepository; import cn.estsh.i3plus.pojo.mes.util.MesExtEnumUtil; import cn.estsh.impp.framework.boot.exception.ImppExceptionBuilder; +import com.xxl.job.core.util.DateUtil; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -61,6 +62,10 @@ public class IMesYfBoardServiceImpl implements IMesYfBoardService { @Autowired private MesCimGmGepicsRepository mesCimGmGepicsRepository; + @Autowired + private MesDowntimeRecordRepository mesDowntimeRecordRDao; + + private static final String START_TIME = "START_TIME"; private static final String END_TIME = "END_TIME"; @@ -339,9 +344,46 @@ public class IMesYfBoardServiceImpl implements IMesYfBoardService { public MesWorkCenterBoardResultModel queryAbnormalDowntime(MesWorkCenterBoardConditionModel conditionModel) { MesWorkCenterBoardResultModel resultModel = new MesWorkCenterBoardResultModel(); //获取查询时间区间(需求未明确,暂时注释,返回固定值) -// Map> timeZoneMap = getTimeZoneMap(conditionModel.getWorkCenterCodeList(), -// conditionModel.getTimeRangeIdentification(), conditionModel.getOrganizeCode()); - resultModel.setAbnormalDowntime("00:00"); + Map> timeZoneMap = getTimeZoneMap(conditionModel.getWorkCenterCodeList(), + conditionModel.getTimeRangeIdentification(), conditionModel.getOrganizeCode()); + + if(!timeZoneMap.isEmpty()){ + Set keySet = timeZoneMap.keySet(); + for (String key : keySet) { + Map map = timeZoneMap.get(key); + String startTime = map.get("START_TIME"); + String endTime = map.get("END_TIME"); + //根据产线查询停机记录表汇总 + DdlPackBean ddlPackBean = DdlPackBean.getDdlPackBean(conditionModel.getOrganizeCode()); + DdlPreparedPack.getStringSmallerPack(startTime,"createDatetime",ddlPackBean); + DdlPreparedPack.getStringBiggerPack(endTime,"createDatetime",ddlPackBean); + List recordList = mesDowntimeRecordRDao.findByHqlWhere(ddlPackBean); + //遍历recordList,汇总停机时间 + long total = 0L; + for (MesDowntimeRecord record : recordList) { + // 如果停机结束时间还在,则需要补充动态停机时间,否则需要有停机时间 + if (StringUtils.isEmpty(record.getModifyDatetime())) { + Date startTDateTime = DateUtil.parseDateTime(record.getCreateDatetime()); + Date currentTime = new Date(); + total += (currentTime.getTime() - startTDateTime.getTime())/(1000 * 60); + } else { + Date startTDateTime = DateUtil.parseDateTime(record.getCreateDatetime()); + Date endDateTime = DateUtil.parseDateTime(record.getModifyDatetime()); + total += (endDateTime.getTime() - startTDateTime.getTime())/(1000 * 60); + } + } + if (total > 0){ + //转换成小时分钟 + long minutes = total % 60; + long hours = total / 60; + resultModel.setAbnormalDowntime(String.format("%02d",hours)+":"+String.format("%02d",minutes)); + } + } + }else { + resultModel.setAbnormalDowntime("00:00"); + } + + return resultModel; }