From 5a1af386c43bb89588b33eb02cd579e1448d23ba Mon Sep 17 00:00:00 2001 From: yinq <1345442242@qq.com> Date: Fri, 9 Dec 2022 16:20:59 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B5=84=E6=BA=90=E8=B4=9F=E8=8D=B7=E7=8E=87?= =?UTF-8?q?=E6=8A=A5=E8=A1=A8(=E4=B8=8A=E5=B7=A5=E5=BA=8F=E5=B7=B2?= =?UTF-8?q?=E5=AE=8C=E6=88=90)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../anomaly/controller/ReportController.java | 14 ++ .../mesnac/anomaly/mapper/ReportMapper.java | 7 + .../mesnac/anomaly/service/ReportService.java | 8 ++ .../service/impl/ReportServiceImpl.java | 85 ++++++++++++ .../main/resources/mapper/ReportMapper.xml | 123 ++++++++++++++++++ 5 files changed, 237 insertions(+) diff --git a/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/controller/ReportController.java b/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/controller/ReportController.java index 4966d41c..54f5b955 100644 --- a/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/controller/ReportController.java +++ b/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/controller/ReportController.java @@ -289,6 +289,20 @@ public class ReportController { } } + /** + * 资源负荷率报表(上工序已完成) + * @param paramMap + * @return + */ + @GetMapping("/loadRatePreviousCompletedReport") + public R loadRatePreviousCompletedReport(@RequestParam(required = false) Map paramMap){ + try{ + return R.ok(reportService.loadRatePreviousCompletedReport(paramMap)); + }catch (Exception e){ + return R.failed(e.getMessage()); + } + } + /** * 资源负荷率报表(周维度) * @param paramMap diff --git a/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/mapper/ReportMapper.java b/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/mapper/ReportMapper.java index 6cf9b205..9fefcca0 100644 --- a/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/mapper/ReportMapper.java +++ b/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/mapper/ReportMapper.java @@ -297,4 +297,11 @@ public interface ReportMapper { * @return */ Map findAbnormalDutyBySFCAndStepId(@Param("site") String site,@Param("sfc") String sfc,@Param("stepId") String stepId); + + /** + * 资源负荷率报表(上工序已完成) + * @param paramMap + * @return + */ + List> loadRatePreviousCompletedReport(Map paramMap); } diff --git a/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/service/ReportService.java b/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/service/ReportService.java index 86ae2e4b..8c43fe4c 100644 --- a/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/service/ReportService.java +++ b/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/service/ReportService.java @@ -299,4 +299,12 @@ public interface ReportService { * @return */ Map financialWorkHoursBoard(Map paramMap); + + /** + * 资源负荷率报表(上工序已完成) + * @param paramMap + * @return + */ + List> loadRatePreviousCompletedReport(Map paramMap); + } diff --git a/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/service/impl/ReportServiceImpl.java b/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/service/impl/ReportServiceImpl.java index 0f09d9bb..3ba4264f 100644 --- a/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/service/impl/ReportServiceImpl.java +++ b/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/service/impl/ReportServiceImpl.java @@ -26,6 +26,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.text.SimpleDateFormat; +import java.time.Duration; import java.time.LocalDateTime; import java.time.LocalTime; import java.time.format.DateTimeFormatter; @@ -1595,6 +1596,90 @@ public class ReportServiceImpl implements ReportService { return result; } + /** + * 资源负荷率报表(上工序已完成) + * @param paramMap + * @return + */ + @Override + public List> loadRatePreviousCompletedReport(Map paramMap) { + String site = CommonMethods.getSite(); + paramMap.put("site", site); + paramMap.put("locale", LocaleContextHolder.getLocale().getLanguage()); + Integer restOfTheWeek = 1 ; + if (String.valueOf(paramMap.get("week")).equals("true")){ + LocalDateTime now = LocalDateTime.now(); + DateTimeFormatter fmt = DateTimeFormatter.ofPattern("yyyy-MM-dd"); + int dayOfWeek = now.getDayOfWeek().getValue(); + LocalDateTime weekStart = now.minusDays(dayOfWeek - 1).with(LocalTime.MIN); + LocalDateTime weekEnd = now.plusDays(7 * 8 - dayOfWeek).with(LocalTime.MAX); + List> weekOfDate = DateReportUtils.getWeekOfDate3(weekStart.format(fmt), weekEnd.format(fmt)); + return weekOfDate; + }else { + LocalDateTime now = LocalDateTime.now(); + int dayOfWeek = now.getDayOfWeek().getValue(); + restOfTheWeek = 7 - dayOfWeek + 1; + } + List> resultList = reportMapper.loadRatePreviousCompletedReport(paramMap); + HashMap countMap = new HashMap<>(); + countMap.put("workCenterDescription","总计:"); + Float tardinessWork = 0.00f; + Float weekCapacity = 0.00f; + Float dayCapacity = 0.00f; + Float OverdueAddWeek = 0.00f; + Float unWorkHours1 = 0.00f; + Float unWorkHours2 = 0.00f; + Float unWorkHours3 = 0.00f; + Float unWorkHours4 = 0.00f; + Float unWorkHours5 = 0.00f; + Float unWorkHours6 = 0.00f; + Float unWorkHours7 = 0.00f; + Float unWorkHours8 = 0.00f; + + for (Map map : resultList) { + tardinessWork += Float.valueOf(String.valueOf(map.get("tardinessWork"))); + if (!StringUtils.isBlank(map.get("weekCapacity"))){ + weekCapacity += Float.valueOf(String.valueOf(map.get("weekCapacity"))); + } + if (!StringUtils.isBlank(map.get("dayCapacity"))){ + dayCapacity += Float.valueOf(String.valueOf(map.get("dayCapacity"))); + } + OverdueAddWeek += Float.valueOf(String.valueOf(map.get("OverdueAddWeek"))); + unWorkHours1 += Float.valueOf(String.valueOf(map.get("unWorkHours1"))); + unWorkHours2 += Float.valueOf(String.valueOf(map.get("unWorkHours2"))); + unWorkHours3 += Float.valueOf(String.valueOf(map.get("unWorkHours3"))); + unWorkHours4 += Float.valueOf(String.valueOf(map.get("unWorkHours4"))); + unWorkHours5 += Float.valueOf(String.valueOf(map.get("unWorkHours5"))); + unWorkHours6 += Float.valueOf(String.valueOf(map.get("unWorkHours6"))); + unWorkHours7 += Float.valueOf(String.valueOf(map.get("unWorkHours7"))); + unWorkHours8 += Float.valueOf(String.valueOf(map.get("unWorkHours8"))); + + } + countMap.put("tardinessWork",String.format("%.2f",tardinessWork)); + countMap.put("weekCapacity",String.format("%.2f",weekCapacity)); + countMap.put("dayCapacity",String.format("%.2f",dayCapacity)); + countMap.put("OverdueAddWeek",String.format("%.2f",OverdueAddWeek)); + countMap.put("unWorkHours1",String.format("%.2f",unWorkHours1)); + countMap.put("unWorkHours2",String.format("%.2f",unWorkHours2)); + countMap.put("unWorkHours3",String.format("%.2f",unWorkHours3)); + countMap.put("unWorkHours4",String.format("%.2f",unWorkHours4)); + countMap.put("unWorkHours5",String.format("%.2f",unWorkHours5)); + countMap.put("unWorkHours6",String.format("%.2f",unWorkHours6)); + countMap.put("unWorkHours7",String.format("%.2f",unWorkHours7)); + countMap.put("unWorkHours8",String.format("%.2f",unWorkHours8)); + countMap.put("weekRate1",String.format("%.2f", (OverdueAddWeek + unWorkHours1) / (dayCapacity * restOfTheWeek) * 100 ) + "%"); + countMap.put("weekRate2",String.format("%.2f",unWorkHours2 / weekCapacity * 100 ) + "%"); + countMap.put("weekRate3",String.format("%.2f",unWorkHours3 / weekCapacity * 100 ) + "%"); + countMap.put("weekRate4",String.format("%.2f",unWorkHours4 / weekCapacity * 100 ) + "%"); + countMap.put("weekRate5",String.format("%.2f",unWorkHours5 / weekCapacity * 100 ) + "%"); + countMap.put("weekRate6",String.format("%.2f",unWorkHours6 / weekCapacity * 100 ) + "%"); + countMap.put("weekRate7",String.format("%.2f",unWorkHours7 / weekCapacity * 100 ) + "%"); + countMap.put("weekRate8",String.format("%.2f",unWorkHours8 / weekCapacity * 100 ) + "%"); + resultList.add(countMap); + + return resultList; + } + /** * 工时统计报表 * @param paramMap diff --git a/anomaly/src/main/resources/mapper/ReportMapper.xml b/anomaly/src/main/resources/mapper/ReportMapper.xml index 341daf72..e71b5dc9 100644 --- a/anomaly/src/main/resources/mapper/ReportMapper.xml +++ b/anomaly/src/main/resources/mapper/ReportMapper.xml @@ -3065,6 +3065,129 @@ SELECT zab.CREATED_DATE_TIME, WHERE ZSS.SITE = #{site} AND ZSS.SPLIT_SFC = #{sfc} AND NST.STEP_ID = #{stepId} GROUP BY NST.SITE, NST.SFC,ZSS.SPLIT_SFC, NST.STEP_ID + \ No newline at end of file