From 69e1073d459f31033d141ab3433d4fbf7b4a9106 Mon Sep 17 00:00:00 2001
From: guoyujie <guoyujie@ng.com>
Date: 星期四, 18 十二月 2025 10:52:39 +0800
Subject: [PATCH] 入库报表添加时间查询

---
 north-glass-erp/src/main/java/com/example/erp/service/mm/FinishedGoodsInventoryService.java |   58 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 56 insertions(+), 2 deletions(-)

diff --git a/north-glass-erp/src/main/java/com/example/erp/service/mm/FinishedGoodsInventoryService.java b/north-glass-erp/src/main/java/com/example/erp/service/mm/FinishedGoodsInventoryService.java
index 478ac43..bdeadde 100644
--- a/north-glass-erp/src/main/java/com/example/erp/service/mm/FinishedGoodsInventoryService.java
+++ b/north-glass-erp/src/main/java/com/example/erp/service/mm/FinishedGoodsInventoryService.java
@@ -38,6 +38,8 @@
 import java.text.SimpleDateFormat;
 import java.time.LocalDate;
 import java.time.LocalDateTime;
+import java.time.LocalTime;
+import java.time.format.DateTimeFormatter;
 import java.util.*;
 
 @Service
@@ -702,8 +704,8 @@
         }
 
         Map<String, Object> map = new HashMap<>();
-        map.put("data", finishedOperateLogMapper.getSelectFinishedOperateLogReport(offset, pageSize,startDate, endDate, finishedOperateLog,type));
-        map.put("total", finishedOperateLogMapper.getSelectFinishedOperateLogReportPageTotal(offset, pageSize,startDate, endDate, finishedOperateLog,type));
+        map.put("data", finishedOperateLogMapper.getSelectFinishedOperateLogReport(offset, pageSize,startDate, endDate, finishedOperateLog,type,"date"));
+        map.put("total", finishedOperateLogMapper.getSelectFinishedOperateLogReportPageTotal(offset, pageSize,startDate, endDate, finishedOperateLog,type,"date"));
         List<String> list = new ArrayList<>();
         list.add(startDate);
         list.add(endDate);
@@ -1463,4 +1465,56 @@
 
         return map;
     }
+
+    public Map<String, Object> getSelectFinishedOperateLogReportByDateTime(String type, Integer pageNum, Integer pageSize, List<String> selectDate, String reportTime, FinishedOperateLog finishedOperateLog) {
+        Integer offset = (pageNum-1)*pageSize;
+        String startDate = toReportTime(LocalDate.now().minusDays(7).toString(), reportTime);
+        String endDate   = toReportTime(LocalDate.now().toString(), reportTime);
+
+        // 濡傛灉鍓嶇浼犱簡鏃堕棿锛屽氨鐢ㄥ墠绔棩鏈� + reportTime
+        if (selectDate != null && selectDate.size() == 2) {
+            if (selectDate.get(0) != null && !selectDate.get(0).isEmpty()) {
+                startDate = toReportTime(selectDate.get(0), reportTime);
+            }
+            if (selectDate.get(1) != null && !selectDate.get(1).isEmpty()) {
+                endDate = toReportTime(selectDate.get(1), reportTime);
+            }
+        }
+
+        Map<String, Object> map = new HashMap<>();
+        map.put("data", finishedOperateLogMapper.getSelectFinishedOperateLogReport(offset, pageSize,startDate, endDate, finishedOperateLog,type,"datetime"));
+        map.put("total", finishedOperateLogMapper.getSelectFinishedOperateLogReportPageTotal(offset, pageSize,startDate, endDate, finishedOperateLog,type,"datetime"));
+        List<String> list = new ArrayList<>();
+        list.add(startDate);
+        list.add(endDate);
+        map.put("selectDate",list);
+        return map;
+    }
+
+    private static final DateTimeFormatter DATE_TIME_FMT =
+            DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
+
+    private String toReportTime(String dateStr, String reportTime) {
+        if (dateStr == null || dateStr.isEmpty()) {
+            return null;
+        }
+
+        // 鍙繚鐣� yyyy-MM-dd锛岄槻姝㈠墠绔紶瀹屾暣鏃堕棿瀵艰嚧 parse 寮傚父
+        String onlyDate = dateStr.length() > 10 ? dateStr.substring(0, 10) : dateStr;
+
+
+        String[] parts = reportTime.split(":");
+        int hour   = Integer.parseInt(parts[0]);
+        int minute = parts.length > 1 ? Integer.parseInt(parts[1]) : 0;
+        int second = parts.length > 2 ? Integer.parseInt(parts[2]) : 0;
+
+        LocalDate date = LocalDate.parse(onlyDate);
+        LocalTime time = LocalTime.of(hour, minute, second);
+
+        return LocalDateTime.of(date, time).format(DATE_TIME_FMT);
+    }
+
+    public List<FinishedOperateLogDTO>  exportFinishedOperateLogReportByDatetime(List<String> dates, String type) {
+        return finishedOperateLogMapper.exportFinishedOperateLogReportByDatetime(dates,type);
+    }
 }

--
Gitblit v1.8.0