From dbfe06e01e1dd97675b5889588ed058c1817a8c6 Mon Sep 17 00:00:00 2001 From: liriming <1343021927@qq.com> Date: 星期五, 28 三月 2025 08:33:46 +0800 Subject: [PATCH] 计划修正 --- ansteel-biz/src/main/java/com/iailab/module/ansteel/api/dto/PlanDataChartReqVO.java | 3 +++ ansteel-biz/src/main/java/com/iailab/module/ansteel/api/service/impl/DataServiceImpl.java | 52 +++++++++++++++++++++++++++++++++++++++++++++++----- 2 files changed, 50 insertions(+), 5 deletions(-) diff --git a/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/dto/PlanDataChartReqVO.java b/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/dto/PlanDataChartReqVO.java index 1e469a0..f4a91fb 100644 --- a/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/dto/PlanDataChartReqVO.java +++ b/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/dto/PlanDataChartReqVO.java @@ -27,4 +27,7 @@ @Schema(description = "预测时间") private String predictTime; + + @Schema(description = "右侧长度") + private int lengthRight; } \ No newline at end of file diff --git a/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/service/impl/DataServiceImpl.java b/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/service/impl/DataServiceImpl.java index 6aaace5..34ad0dd 100644 --- a/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/service/impl/DataServiceImpl.java +++ b/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/service/impl/DataServiceImpl.java @@ -185,6 +185,34 @@ result[2] = endTime; return result; } + + private Date[] calResultTime2(Date predictTimeReq,String startTimeReq, String endTimeReq, int lengthLeft, int lengthRight) { + Date[] result = new Date[2]; + Date predictTime = predictTimeReq; + Date startTime = new Date(); + if (startTimeReq == null) { + Calendar calendar = Calendar.getInstance(); + calendar.setTime(predictTime); + calendar.add(Calendar.SECOND, -1 * lengthLeft * 60); + startTime = calendar.getTime(); + } + Date endTime = new Date(); + if (endTimeReq == null) { + Calendar calendar = Calendar.getInstance(); + calendar.setTime(predictTime); + calendar.add(Calendar.SECOND, lengthRight * 60); + endTime = calendar.getTime(); + } + if (endTime.getTime() <= startTime.getTime()) { + Calendar calendar = Calendar.getInstance(); + calendar.setTime(startTime); + calendar.add(Calendar.SECOND, lengthRight * 60); + endTime = calendar.getTime(); + } + result[0] = startTime; + result[1] = endTime; + return result; + } /** * 查询原始计划、修正计划数据 */ @@ -203,10 +231,23 @@ if (planCode == null) { return null; } + String itemCode = tMap.get(CommonConstant.ITEM_CODE); + if (itemCode == null) { + return null; + } - Date startTime = DateUtils.parse(reqVO.getStartTime(), DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND); - Date endTime = DateUtils.parse(reqVO.getEndTime(), DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND); - Date predictTime = DateUtils.parse(reqVO.getPredictTime(), DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND); + PreDataSingleChartReqVO queryDto = new PreDataSingleChartReqVO(); + queryDto.setChartCode(reqVO.getChartCode()); + PreDataSingleChartRespVO chartData = mcsApi.getPreDataSingleChart(queryDto); + + Date predictTime = chartData.getPredictTime(); + int lengthLeft = new BigDecimal(tMap.get(CommonConstant.LENGTH_LEFT)).intValue(); + int lengthRight = reqVO.getLengthRight(); + + Date[] timeArray = calResultTime2(predictTime, reqVO.getStartTime(), reqVO.getEndTime(), lengthLeft, lengthRight); + Date startTime = timeArray[0]; + Date endTime = timeArray[1]; + // 原始计划数据 LinkedHashMap<String, List<String[]>> planData = getRealPlanData(planCode, startTime, endTime, predictTime); @@ -222,7 +263,8 @@ public LinkedHashMap<String, List<String[]>> getRealPlanData(String planCode, Date startTime, Date endTime, Date predictTime) { LinkedHashMap<String, List<String[]>> result = new LinkedHashMap<>(); ApiDataQueryDTO apiDataQueryDTO = new ApiDataQueryDTO(); - apiDataQueryDTO.setItemNo(planCode); + List<String> itemList = Arrays.asList(planCode.toString().split(",")); + apiDataQueryDTO.setItemNos(itemList); apiDataQueryDTO.setStart(startTime); apiDataQueryDTO.setEnd(endTime); LinkedHashMap<String, List<ApiPlanDataDTO>> planData = planItemApi.queryPlanItemRecordValue(apiDataQueryDTO); @@ -251,7 +293,7 @@ PreDataSingleChartReqVO queryDto = new PreDataSingleChartReqVO(); queryDto.setChartCode(charCode); queryDto.setStartTime(startTime); - queryDto.setEndTime(startTime); + queryDto.setEndTime(endTime); PreDataSingleChartRespVO chartData = mcsApi.getPreDataSingleChart(queryDto); if (CollectionUtils.isEmpty(chartData.getDataView().getPreDataN())) { return result; -- Gitblit v1.9.3