From 4145b630b96a4a8b6c24d996a23f1acf282ef711 Mon Sep 17 00:00:00 2001 From: "bo.wu@finesys.com.cn" Date: Fri, 16 May 2025 14:45:06 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A4=A7=E5=B1=8F=E6=98=BE=E7=A4=BA=E5=A4=84?= =?UTF-8?q?=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/wms/controller/MonitorController.java | 67 ++++++++++++++----- .../entity/app/monitor/LocationUseDetail.java | 10 ++- .../java/com/wms/mapper/LocationMapper.java | 2 + .../com/wms/mapper/WorkSummaryMapper.java | 9 ++- .../java/com/wms/service/LocationService.java | 3 + .../com/wms/service/WorkSummaryService.java | 7 ++ .../LocationServiceImplements.java | 6 ++ .../WorkSummaryServiceImpl.java | 15 +++++ src/main/resources/mapper/LocationMapper.xml | 30 ++++++++- .../resources/mapper/WorkSummaryMapper.xml | 18 ++++- 10 files changed, 144 insertions(+), 23 deletions(-) diff --git a/src/main/java/com/wms/controller/MonitorController.java b/src/main/java/com/wms/controller/MonitorController.java index 87b3396..5ae4ab3 100644 --- a/src/main/java/com/wms/controller/MonitorController.java +++ b/src/main/java/com/wms/controller/MonitorController.java @@ -23,10 +23,7 @@ import org.springframework.web.bind.annotation.ResponseBody; import java.time.LocalDate; import java.time.format.DateTimeFormatter; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.Objects; +import java.util.*; import static com.wms.utils.StringUtils.convertJsonString; @@ -42,7 +39,6 @@ public class MonitorController { private final WorkFlowService workFlowService; private final WorkSummaryService workSummaryService; private final StandService standService; - /** * 请求库位使用情况 * @return 库位使用情况 @@ -52,15 +48,19 @@ public class MonitorController { public String getLocationUseDetail() { LocationUseDetail response = new LocationUseDetail(); try { - int allSize = (int) locationService.count(); - int emptySize = (int) locationService.count(new LambdaQueryWrapper() - .eq(Location::getIsLock, 0) - .eq(Location::getLocationStatus, 0)); - response.setUsed(allSize - emptySize); - response.setEmpty(emptySize); +// //总库位 +// int allSize = (int) locationService.count(); +// //空库位 +// int emptySize = (int) locationService.count(new LambdaQueryWrapper() +// .eq(Location::getIsLock, 0) +// .eq(Location::getLocationStatus, 0)); + response = locationService.statisticLocationList(); + + } catch (Exception e) { response.setUsed(0); response.setEmpty(0); + response.setEmptyUsed(0); } return convertJsonString(response); } @@ -72,18 +72,47 @@ public class MonitorController { @GetMapping("/getAnalysis7Days") @ResponseBody public String getAnalysis7Days() { + //记录开始时间戳 + long startTime = System.currentTimeMillis(); + System.out.println("开始执行getAnalysis7Days方法:"+startTime); Analysis7Days response = new Analysis7Days(); List dateList = new ArrayList<>(); WorkInfoByStand works = new WorkInfoByStand(); try { // 获取当前日期 - LocalDate now = LocalDate.now(); +// LocalDate now = LocalDate.now(); // 创建一个列表来存储日期 - List dates = new ArrayList<>(); - // 添加最近7天的日期到列表中 - for (int i = 6; i >= 0; i--) { - dates.add(now.minusDays(i)); +// List dates = new ArrayList<>(); + + //List allWorkSummaries = workSummaryService.list(); + List workDays = workSummaryService.getRecentWorkDays(); // + Collections.reverse(workDays); + // List allWorkSummaries = workSummaryService.getByWorkDays(workDays); + Map param = new HashMap<>(); + param.put("startDate", workDays.get(0)); + if(workDays.size() == 1){ + param.put("endDate", workDays.get(0)); + }else { + param.put("endDate", workDays.get(workDays.size() - 1)); } + List allWorkSummaries = workSummaryService.getByWorkDays(param); +// int dayOffset = 0; +// while (dates.size() < 7) { +// LocalDate targetDate = now.minusDays(dayOffset++); +// List dayWorkSummaryList = allWorkSummaries.stream() +// .filter(ws -> Objects.equals(ws.getWorkDate().toLocalDate(), targetDate)) +// .toList(); +// +// long totalCount = dayWorkSummaryList.size(); +// if (totalCount > 0) { +// dates.add(0, targetDate); // 注意插入头部,保持时间顺序 +// } +// } + // 添加最近7天的日期到列表中 +// for (int i = 6; i >= 0; i--) { +// dates.add(now.minusDays(i)); +// } + // 9个站台的信息 List stand1 = new ArrayList<>(); List stand2 = new ArrayList<>(); @@ -95,9 +124,8 @@ public class MonitorController { List stand8 = new ArrayList<>(); List stand9 = new ArrayList<>(); // 获取所有的工作总结 - List allWorkSummaries = workSummaryService.list(); // 循环日期 - for (LocalDate date : dates) { + for (LocalDate date : workDays) { dateList.add(date.format(DateTimeFormatter.ofPattern("MM-dd"))); // 获取当日的工作总结 List dayWorkSummaryList = allWorkSummaries.stream().filter(workSummary -> Objects.equals(workSummary.getWorkDate().toLocalDate(), date)).toList(); @@ -145,6 +173,9 @@ public class MonitorController { } response.setWorks(works); response.setDate(dateList); + //记录总用时 + long totalTime = System.currentTimeMillis() - startTime; + System.out.println("总用时:" + totalTime); return convertJsonString(response); } diff --git a/src/main/java/com/wms/entity/app/monitor/LocationUseDetail.java b/src/main/java/com/wms/entity/app/monitor/LocationUseDetail.java index 29fdf94..77d938c 100644 --- a/src/main/java/com/wms/entity/app/monitor/LocationUseDetail.java +++ b/src/main/java/com/wms/entity/app/monitor/LocationUseDetail.java @@ -6,13 +6,19 @@ import lombok.Data; @Data public class LocationUseDetail { /** - * 占用 + * 有货占用 */ @JsonProperty("used") private Integer used; /** - * 空闲 + * 空库位 */ @JsonProperty("empty") private Integer empty; + + /** + * 空托盘占用 + */ + @JsonProperty("emptyUsed") + private Integer emptyUsed; } diff --git a/src/main/java/com/wms/mapper/LocationMapper.java b/src/main/java/com/wms/mapper/LocationMapper.java index 8bfb04d..166ba8d 100644 --- a/src/main/java/com/wms/mapper/LocationMapper.java +++ b/src/main/java/com/wms/mapper/LocationMapper.java @@ -1,10 +1,12 @@ package com.wms.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.wms.entity.app.monitor.LocationUseDetail; import com.wms.entity.table.Location; import org.apache.ibatis.annotations.Mapper; @Mapper public interface LocationMapper extends BaseMapper { + LocationUseDetail statisticLocationList(); } diff --git a/src/main/java/com/wms/mapper/WorkSummaryMapper.java b/src/main/java/com/wms/mapper/WorkSummaryMapper.java index 404b32e..9644504 100644 --- a/src/main/java/com/wms/mapper/WorkSummaryMapper.java +++ b/src/main/java/com/wms/mapper/WorkSummaryMapper.java @@ -4,10 +4,17 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.wms.entity.table.WorkSummary; import org.apache.ibatis.annotations.Mapper; +import java.time.LocalDate; +import java.util.List; +import java.util.Map; + /** * 工作总结mapper */ @Mapper public interface WorkSummaryMapper extends BaseMapper { -} \ No newline at end of file + List getRecentWorkDays(); + + List getByWorkDays(Map params); +} diff --git a/src/main/java/com/wms/service/LocationService.java b/src/main/java/com/wms/service/LocationService.java index 7dc5e48..e58fe10 100644 --- a/src/main/java/com/wms/service/LocationService.java +++ b/src/main/java/com/wms/service/LocationService.java @@ -1,6 +1,7 @@ package com.wms.service; import com.baomidou.mybatisplus.extension.service.IService; +import com.wms.entity.app.monitor.LocationUseDetail; import com.wms.entity.table.Location; import java.util.Map; @@ -17,4 +18,6 @@ public interface LocationService extends IService { * @return 结果 nextLocationId, preTaskId */ Map getOneLocation(String inPoint, String vehicleId, String goodsId); + + LocationUseDetail statisticLocationList(); } diff --git a/src/main/java/com/wms/service/WorkSummaryService.java b/src/main/java/com/wms/service/WorkSummaryService.java index d727e4a..0b35f0f 100644 --- a/src/main/java/com/wms/service/WorkSummaryService.java +++ b/src/main/java/com/wms/service/WorkSummaryService.java @@ -3,8 +3,15 @@ package com.wms.service; import com.baomidou.mybatisplus.extension.service.IService; import com.wms.entity.table.WorkSummary; +import java.time.LocalDate; +import java.util.List; +import java.util.Map; + /** * 工作总结服务接口 */ public interface WorkSummaryService extends IService { + List getRecentWorkDays(); + + List getByWorkDays(Map params); } diff --git a/src/main/java/com/wms/service/serviceImplements/LocationServiceImplements.java b/src/main/java/com/wms/service/serviceImplements/LocationServiceImplements.java index f01ded3..a9a925e 100644 --- a/src/main/java/com/wms/service/serviceImplements/LocationServiceImplements.java +++ b/src/main/java/com/wms/service/serviceImplements/LocationServiceImplements.java @@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.wms.constants.enums.StockStatus; import com.wms.constants.enums.TaskType; import com.wms.constants.enums.WmsTaskStatus; +import com.wms.entity.app.monitor.LocationUseDetail; import com.wms.entity.table.*; import com.wms.mapper.*; import com.wms.service.LocationService; @@ -146,6 +147,11 @@ public class LocationServiceImplements extends ServiceImpl implements WorkSummaryService { + @Autowired + private WorkSummaryMapper workSummaryMapper; + @Override + public List getRecentWorkDays() { + return workSummaryMapper.getRecentWorkDays(); + } + + @Override + public List getByWorkDays(Map params) { + return workSummaryMapper.getByWorkDays(params); + } } diff --git a/src/main/resources/mapper/LocationMapper.xml b/src/main/resources/mapper/LocationMapper.xml index 94952d7..1ec9bfd 100644 --- a/src/main/resources/mapper/LocationMapper.xml +++ b/src/main/resources/mapper/LocationMapper.xml @@ -2,5 +2,33 @@ + + diff --git a/src/main/resources/mapper/WorkSummaryMapper.xml b/src/main/resources/mapper/WorkSummaryMapper.xml index c46bf26..bf6dc5d 100644 --- a/src/main/resources/mapper/WorkSummaryMapper.xml +++ b/src/main/resources/mapper/WorkSummaryMapper.xml @@ -2,5 +2,21 @@ + + +