From fea22e82e7e49691f6e0c20a29b228d0ab3173e9 Mon Sep 17 00:00:00 2001
From: zxl <763096477@qq.com>
Date: 星期三, 29 十月 2025 17:08:38 +0800
Subject: [PATCH] 修改问题

---
 ycl-server/src/main/java/com/ycl/platform/service/impl/WorkOrderServiceImpl.java |   39 ++++++++++++++++++++++++++++++++++-----
 1 files changed, 34 insertions(+), 5 deletions(-)

diff --git a/ycl-server/src/main/java/com/ycl/platform/service/impl/WorkOrderServiceImpl.java b/ycl-server/src/main/java/com/ycl/platform/service/impl/WorkOrderServiceImpl.java
index cf248f7..99411d5 100644
--- a/ycl-server/src/main/java/com/ycl/platform/service/impl/WorkOrderServiceImpl.java
+++ b/ycl-server/src/main/java/com/ycl/platform/service/impl/WorkOrderServiceImpl.java
@@ -119,7 +119,14 @@
         WorkOrderServiceImpl self = applicationContext.getBean(WorkOrderServiceImpl.class);
         return self.batchAddWorkOrder(workOrderList);
     }
-
+    private boolean isSameDay(Date date1, Date date2) {
+        if (date1 == null || date2 == null) {
+            return false;
+        }
+        LocalDate localDate1 = date1.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
+        LocalDate localDate2 = date2.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
+        return localDate1.isEqual(localDate2);
+    }
     @Transactional(rollbackFor = Exception.class)
     public Boolean batchAddWorkOrder(List<WorkOrder> workOrderList) {
         int total = workOrderList.size();
@@ -164,6 +171,15 @@
         for (WorkOrder workOrder : workOrderList) {
             WorkOrder databaseWorkOrder = mapping.get(workOrder.getSerialNumber());
             if (Objects.nonNull(databaseWorkOrder)) {
+                //鍒ゆ柇鏄惁鏄粖澶╃殑宸ュ崟
+                if (!isSameDay(databaseWorkOrder.getCreateTime(), now)) {
+                    // 鑻ヤ负鍓嶄竴澶╃殑宸ュ崟锛屼笉鏇存柊锛岀洿鎺ュ綋浣滄柊宸ュ崟鏂板
+                    workOrder.setCreateTime(now);
+                    workOrder.setUpdateTime(now);
+                    waitAddList.add(workOrder);
+                    continue; // 璺宠繃鍚庣画鐨勬洿鏂伴�昏緫
+                }
+
                 List<String> errorNameList = databaseWorkOrder.getErrorTypeList();
                 List<String> errorTypes = workOrder.getErrorTypeList();
                 if (errorNameList.containsAll(errorTypes)) {
@@ -1287,10 +1303,23 @@
         }
 
         // 鏄惁鎶ュ
-        boolean hasReport = new LambdaQueryChainWrapper<>(reportMapper)
-                .eq(Report::getSerialNumber, workOrder.getSerialNumber())
-                .exists();
-        workOrder.setHasReport(hasReport);
+        Date target = workOrder.getCreateTime();
+
+        Report reports = new LambdaQueryChainWrapper<>(reportMapper)
+                .eq(Report::getSerialNumber,workOrder.getWorkOrderNo())
+                .eq(Report::getStatus,1)
+                .orderByDesc(Report::getCreateTime)
+                .last("LIMIT 1")
+                .one();
+        boolean isInRange = false;
+        if (reports != null){
+            Date start = reports.getBeginCreateTime();
+            Date end = reports.getEndCreateTime();
+            isInRange = target.after(start) || target.equals(start)  // target >= start
+                    && target.before(end) || target.equals(end);
+        }
+
+        workOrder.setHasReport(isInRange);
         // 鏁呴殰绫诲瀷
         List<SysDictData> errorList = workOrderErrorTypeService.getBaseMapper().getErrorList(workOrder.getWorkOrderNo());
         List<String> errList = errorList.stream().map(SysDictData::getDictLabel).collect(Collectors.toList());

--
Gitblit v1.8.0